Caution
These are my personal dotfiles. They are heavily opinionated and they are not meant to be used by anyone else,
but I am open to suggestions and improvements. I am not using any fancy dotfile manager, instead I am using a bunch of bash scripts and stow to create symlinks to the appropriate locations.
The following dependencies are needed to run the setup script:
curl- for downloading the setup scriptgit- for cloning the repositorybrew- for MacOs only.
For MacOS, we need homebrew installed... this is outside of the install script, so run this manually
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
The setup script will setup and configure the local development environment. Run the setup script. It will prompt for sudo password if one is needed.
curl -o- https://raw.githubusercontent.com/Michaelpalacce/.dotfiles/master/setup.sh | bashAfter running the setup script, you will need to run the following command to setup your ssh identity.
As this may contain sensitive information, it is not included in the main setup script.
Note: you need to have the correct age private key in ~/.config/sops/age/keys.txt for this to work. This is stored in a private place
curl -o- https://raw.githubusercontent.com/Michaelpalacce/.dotfiles/master/setup-identity.sh | bashWarning
ONLY DO THIS IF YOU HAVE A FINGERPRINT READER AND YOU'VE ENROLLED YOUR FINGERPRINT.
Read: https://wiki.archlinux.org/title/Fprint
Run fprintd-enroll to enroll your fingerprint.
Setup pam, as described in the wiki.
# Change to root
su root
# Navigate to dotfiles dir
rm -rf /etc/pam.d/sddm /etc/pam.d/system-auth /etc/pam.d/system-local-login && stow --target=/etc/pam.d pamI use these dotfiles on the following Operating Systems. Everything is setup to work together.
- Arch
- MacOS
Note: Will support whatever I work on.
There are of course differences in the two systems. MacOS will never look, feel and work like Arch/Linux and that's OK.
- Prioritize native keybindings and minimal plugin reliance. NeoVim being the plugin exception... I can't pass on the hot new thing
- Lazy load all resources.
- Ensure clear resource separation.
- Document extensively for future reference.
- Always prioritize speed.
aerospace- Tiling Manager for MacOSkarabiner- Keyboard remapping for macos
hyprland- Contains hyprland configuration for Arch Linuxhyprworm- Nice window switchersddm&&sddm-themes- Greeterrofi- Also an app launcerwaybar- Status Bar for Hyprlandwaycorner- Hot corners (like MacOS)waypaper- Wallpapers for Hyprlandxsettingsd- For themeseww- Widgets baby
alacritty- Contains my alacritty configurationsbin- Check out the #Scripts section for this,cheatsheets- this contains some local cheatsheets that I can access at any time withsceditorconfig- this contains my default editorconfig that gets used everywheregitignore- Default gitignore for common directories/files you want to ignoreimages- Images for the dotfilesnvim- Personalized Development Environment in NeoVimsetup- Setup scripts ran bysetup.shsh-zshconfigurationssh- Encrypted identitytmux-tmuxconfiguration
Neovim is heavily modified to match my needs. Those needs are admittedly constantly changing, so my configuration will end up changing with it.
I try to keep the native capabilities of vim and use them as much as possible, however a lot of quality of life changes are done.
I am not a big fan of using aliases, cause honestly I tend to forget what I set. My methodology includes using aliases for as little as possible.
The main aliases that get added would also be remaps in Neovim (this can be observed in the remaps.lua and .zsh_aliases).
stow is a symlink manager that allows us to create symlinks based on folders.
Example:
.dotfiles/
ββ nvim/
β ββ .config/
β β ββ nvim/
On the given folder structure, if you run stow nvim from .dotfiles, a Symlink will be created to ~/.config/nvim ( aka from the home dir, whatever the structure was inside the nvim folder )
A helper utility that will either query cheat.sh or open up local cheatsheets, defined in $HOME/.config/cheatsheets/
Provides functionality to delete and create cheatsheets.
A helper utility for switching different identities, for example: .npmrc, ~/.m2/settings.xml, etc. It utilizes symlinks and expects you to have put the
alternative identities with the originals. Example:
.npmrc
.npmrc.vmware
.npmrc.public
tmux-sshuttle-daddy is a utility tool designed to assist with VPN connections using sshuttle.
It requires sshuttle to be installed.
The utility reads your ~/.ssh/known_hosts file and prompts you to either select from the existing IPs or specify a new one."
Starts a new timer in a separate tmux window. Will prompt you for 2 arguments if they are not given.
Shows the weather forecast in another tmux windows.
Forces tmux if a normal terminal is opened. It will also ask which tmux session to attach to if there are multiple.















