Personal configuration files managed with GNU Stow.
Configs are split by platform with a shared global directory for cross-platform tools.
dotfiles/
├── global/ # Cross-platform configs
│ └── nvim/
├── linux/ # Linux-only configs
│ ├── alacritty/
│ ├── betterlockscreen/
│ ├── cava/
│ ├── hyprland/
│ ├── i3/
│ ├── kitty/
│ ├── nvim/
│ ├── picom/
│ ├── polybar/
│ ├── rofi/
│ ├── swaync/
│ ├── tmux/
│ ├── tmuxifier/
│ ├── waybar/
│ ├── wofi/
│ └── zsh/
└── macos/ # macOS-only configs
├── nvim/
├── supercat/
├── tmux/
└── zsh/
Each directory under a platform is a stow package — its contents mirror the structure of $HOME.
Install stow first:
# Arch Linux
sudo pacman -S stow
# macOS
brew install stowSymlink individual packages into your home directory:
# Stow a single package
stow -d ~/dotfiles/linux -t ~ zsh
stow -d ~/dotfiles/linux -t ~ hyprland
# Stow multiple packages at once
stow -d ~/dotfiles/linux -t ~ zsh tmux nvim hyprland waybar
# Stow all linux configs
stow -d ~/dotfiles/linux -t ~ */
# Global config (Neovim — cross-platform)
stow -d ~/dotfiles/global -t ~ nvim
# macOS
stow -d ~/dotfiles/macos -t ~ zsh tmux nvimTo remove symlinks (unstow):
stow -d ~/dotfiles/linux -t ~ -D zshTwo Nerd Fonts are used across configs. Install both for full compatibility.
- JetBrainsMono Nerd Font — Neovim, Kitty, Hyprland/Hyprlock
- SauceCodePro Nerd Font — Alacritty, i3, BetterLockScreen, Polybar
Install via your distro's nerd-fonts package, or download from nerdfonts.com.
A highly extensible terminal-based text editor built for keyboard-driven development.
global/nvimis the current maintained config.linux/nvimandmacos/nvimare older platform-specific variants.
bob— Neovim version manager (or installnvimdirectly)node/npm— required by Mason for LSP server installationpython3/pip— required by Python tooling
Mason auto-installs LSP servers and formatters on first launch:
| Type | Tools |
|---|---|
| LSP servers | ts_ls, html, cssls, tailwindcss, lua_ls, emmet_ls, pyright |
| Formatters | prettierd, stylua, black, isort, eslint_d |
| Linters | pylint |
A feature-rich Unix shell with extensive customization support via Oh My Zsh.
zsh- Oh My Zsh
- Powerlevel10k — shell prompt theme
- Plugins:
zsh-autosuggestions,zsh-syntax-highlighting(Linux also useszsh-bat) fzf— fuzzy finder used for file and history searchnvm— Node version managertmuxifier— required for project session aliases
The zsh config contains some work-specific aliases that can safely be removed.
A terminal multiplexer that lets you run multiple terminal sessions within a single window, with persistent sessions that survive disconnects.
tmux- TPM — Tmux Plugin Manager, install to
~/.tmux/plugins/tpm
Plugins are auto-installed by TPM on first launch (prefix + I):
catppuccin/tmux— Catppuccin color themetmux-plugins/tmux-resurrect— saves and restores sessions across reboots
A dynamic tiling Wayland compositor with smooth animations and extensive configuration.
hyprlandhyprpaper— wallpaper daemon for Hyprlandhyprlock— GPU-accelerated lock screen for Hyprlandhypridle— idle management daemon (triggers lock/sleep on inactivity)waybar— status bar (see below)swaync— notification daemon (see below)kitty— default terminal (see below)wofi— app launcher (see below)cava+pipewire— audio visualizer integrated into Waybar- A
polkitauthentication agent (e.g.,polkit-gnomeorhyprpolkitagent) - JetBrainsMono Nerd Font
A lightweight, keyboard-driven tiling window manager for X11.
i3picom— compositor adding transparency and shadows to X11 windowspolybar— status bar (see below)rofi— app launcher (see below)alacritty— terminal (see below)feh— lightweight image viewer used to set the desktop wallpaperxrandr— multi-monitor configuration tool- SauceCodePro Nerd Font
A highly customizable status bar for Wayland compositors. Displays workspaces, clock, system stats, and the Cava audio visualizer.
No additional dependencies beyond what Hyprland requires.
A flexible status bar for X11 window managers. Displays workspaces, system stats, and the Cava audio visualizer.
polybar
A fast, GPU-accelerated terminal emulator with extensive feature support including splits, tabs, and image rendering.
kitty- JetBrainsMono Nerd Font
A minimal, GPU-accelerated terminal emulator focused on simplicity and performance.
alacritty- SauceCodePro Nerd Font
An application launcher, window switcher, and dmenu replacement for X11.
rofi- Oranchelo icon theme
An application launcher and dmenu replacement for Wayland compositors.
wofi
A cross-platform audio spectrum visualizer for the terminal. Used here as an animated bar in Waybar and Polybar.
cavapipewire
A compositor for X11 that adds transparency, blur, shadows, and fade effects to windows.
picom
A notification daemon and control center for Wayland with support for Do Not Disturb mode and media controls.
swaync
A fast lock screen for X11 with support for blurred/dimmed wallpapers and custom styling.
betterlockscreenfeh
A tmux session and layout manager. Layouts define project-specific window and pane arrangements that can be launched by name.
tmuxifier— install to~/.tmuxifier
Session layouts are stored in linux/tmuxifier/.tmuxifier/layouts/. The zsh config includes aliases to launch them by name.