Here be thy dotfiles. A collection of incantations, symlinks, and shell spells, forged in the fires of frustration and optimised through far too many late nights. Tread carefully, adventurer — what lies within may summon tiling windows, whisper zsh aliases, and open portals to the neovim void.
| Linux | Mac | |
|---|---|---|
| Machine | Intel NUC Hades Canyon | MacBook Pro |
| OS | Fedora | macOS |
| WM | i3 | AeroSpace |
- Dotfile Manager: GNU Stow
- Shell: zsh + znap
- Terminal: Ghostty
- Editor: Neovim + lazy.nvim
- Multiplexer: tmux + tpm; herdr for agent sessions
- Todos: shepherd todo board —
<leader>Tin nvim via nvim-shepherd - RSS: newsboat
- Theme: lackluster (nvim, ghostty, tmux, btop, delta)
- Font: Berkeley Mono
dotfiles/
├── common/ # configs for all platforms
│ ├── .config/
│ │ ├── bat/ # bat
│ │ ├── btop/ # btop system monitor
│ │ ├── gh/ # github cli
│ │ ├── ghostty/themes/ # shared ghostty colour theme
│ │ ├── herdr/ # herdr agent multiplexer
│ │ ├── lazygit/ # lazygit
│ │ ├── nvim/ # neovim
│ │ ├── ripgrep/ # ripgrep
│ │ ├── shepherd/ # shepherd todo board (config only)
│ │ ├── yazi/ # yazi file manager
│ │ └── zsh/ # aliases, functions, utils
│ ├── .newsboat/ # newsboat rss reader
│ ├── .ssh/
│ │ └── config.template # ssh config template
│ ├── .editorconfig
│ ├── .git-commit-template
│ ├── .gitconfig
│ ├── .gitconfig-work # work identity, included by remote url
│ ├── .gitignore # stowed as the global excludesfile
│ ├── .tmux.conf
│ ├── .zshenv
│ └── .zshrc
├── linux/ # fedora-specific configs
│ ├── .config/
│ │ ├── ghostty/ # ghostty terminal
│ │ ├── i3/ # i3 window manager
│ │ └── zsh/ # linux-only functions
│ ├── .local/bin/ # linux scripts (auto on PATH)
│ │ ├── update # update all packages + tools
│ │ ├── cleanup # free disk space
│ │ ├── disk-report
│ │ ├── journalctl-report
│ │ ├── system-ports
│ │ ├── systemctl-browser
│ │ ├── systemctl-failed
│ │ └── systemctl-logs
│ └── .zshrc.local
├── mac/ # macos-specific configs
│ ├── .config/
│ │ ├── ghostty/ # ghostty terminal
│ │ └── zsh/ # mac-only aliases
│ ├── .gnupg/ # gpg agent config
│ ├── .local/bin/ # mac scripts (auto on PATH)
│ │ ├── update # update all packages + tools
│ │ └── cleanup # free disk space
│ ├── .aerospace.toml
│ └── .zshrc.local
├── resources/ # wallpapers, gifs, icons
├── scripts/
│ ├── immich/
│ │ └── immich_add_unassigned_assets.sh
│ ├── install-packages-fedora.sh
│ ├── install-packages-mac.sh
│ └── macos-defaults.sh
└── install.sh
Ghostty's config is per-platform (fonts differ) but the colour theme lives in
common/. Stow only merges the two into one ~/.config/ghostty on a restow —
--adopt on a folded directory will silently keep the theme unlinked.
Clone into your home directory:
git clone git@github.com:jwarykowski/dotfiles.git ~/dotfiles
cd ~/dotfilesInstall packages then stow dotfiles:
./install.sh --packagesAdopt current configs into the repo, then stow:
./install.sh --adoptRe-apply dotfiles (safe, idempotent):
./install.sh- tmux plugins: open tmux and press
prefix + Ito install plugins via tpm - neovim plugins: open nvim — lazy.nvim installs automatically on first launch, mason installs LSPs
- zsh plugins: znap clones and caches plugins automatically on first shell start
- zsh default shell:
chsh -s $(which zsh) - ssh config: copy
~/.ssh/config.templateto~/.ssh/configand add your hosts - gh cli:
gh auth login—hosts.ymlis deliberately untracked, it can hold an oauth token