This repo contains any and all dotfiles, configuration files, etc.
Each application follows a similar structure:
dotfiles
└── app
├── dots -> The app's actual dotfiles/config files/etc.
├── README.md -> Useful for
└── setup.sh -> Symlinks dotfiles to where they need to be; usually ~/.config/${appName}.
Most dots directories are flat, but some are more complicated. For example, I've set up neovim to choose its dotfiles by the current machine's $HOST.
shell: zsh
editor: neovim
- Window manager:
hyprland. It's the best I've ever used by a mile. - Bar:
waybar. Pretty good, might move toeww. - I'm using
hyprlockandhypridlefor screen lock and sleep, respectively, as well askanshifor dynamically turning on/off my laptop display on my Thinkpad X1 Carbon when plugging into my 4k display (I like using one display, no more, no less). Unfortunately turning off the external display causes...something to crash (not sure if the problem lies withkanshi,hyprlock, orhyprlanditself), resulting in the Wayland "red screen of death," so that's fun. For now, I'm just careful, I guess.
- Window manager: I achieve tiling functionality via Phoenix. I tried
yabai/skhd,Aerospace, etc, but I didn't click with them -- they all feel "tacked on," nowhere near as smooth as a native tiling window manager on Linux. Global key bindings are configured via Hammerspoon. I used to use it for window tiling as well, but it doesn't handle snapping non-native apps as well as Phoenix. I use Rectangle with all key commands disabled so that mouse-driven, Windows-esque window snapping is available when needed. Previously, I used Karabiner-Elements to remap Caps Lock to "Hyper" (Command + Control) when held down, and Escape when tapped. However, this never worked quite perfectly -- for example, some apps will capture the Escape signal no matter what, sometimes cancelling out of focused windows. Ultimately there were too many edge cases bugging me, so I got rid of it, but my config is still available for those interested. - Bar: I use Bartender to clean up the Menu Bar, but might switch to Ice.
- I use Contexts in place of
Cmd+Tab; this is, unfortunately, not configured via dotfiles, but it's a great app so it's worth mentioning.
komorebiis handling the tiling window management and bar. My setup is very close to stock.
- Share environment variables, aliases, etc between shells. Sources:
- Update setup script to match new style:
- hyprland