Skip to content

Dotfiles

The dots/ tree holds all user-space configuration. Its children are symlinked into ~/.config/ with config.lib.file.mkOutOfStoreSymlink (see Impermanence), so edits apply live without a rebuild.

dots/
├── cava/                # audio visualizer: shaders + gradient themes
├── fastfetch/           # system info fetch (config.jsonc)
├── fuzzel/              # application launcher (fuzzel.ini + theme)
├── gemini/              # Gemini / Antigravity agent config (credentials git-ignored)
├── htop/                # process viewer (htoprc)
├── hypr/                # Hyprland: keybinds, idle/lock, shaders, quake, scripts
├── illogical-impulse/   # Quickshell theme engine: JSON themes + scripts + config.json
├── kitty/              # terminal: kitty.conf + tab_bar.py + current.conf
├── kitty_colorschemes/  # extra kitty colorschemes
├── quickshell/ii/       # bespoke Qt6/QML shell (modules, services, panel families)
├── starship/            # prompt (starship.toml)
└── wlogout/             # Wayland logout menu (layout + style.css)

Most of these are detailed in the Desktop section. A quick reference:

Dotfile Notable settings
hypr/ Keybinds route through Quickshell IPC with script fallbacks; idle/lock via hypridle/hyprlock; GLSL screen shaders; Kitty quake terminal
quickshell/ii/ ~45 QML backend services + ii/waffle panel families + color/AI/thumbnail scripts
illogical-impulse/ JSON theme engine (apply_theme.py); themes: amalgamation, petrified_spittoon, radioactive_slime
kitty/ PunkMono Nerd Font, fish shell, custom bottom tab bar, listen_on unix:@mykitty for live theming
fuzzel/ Google Sans Flex, overlay layer, rounded borders
wlogout/ Six session actions; kills client PIDs before logout/reboot/shutdown
cava/ Spectrum shaders + an 8-stop tricolor gradient theme
starship/ Two-line powerline prompt, neon palette, cmd_duration notifications
fastfetch/ Auto logo, full module list (os/host/kernel/cpu/gpu/memory/…)

Independent dotfiles history

dots/ can be published with its own history without a separate repository, using git subtree. The Makefile wraps the workflow:

make dots-log                       # history scoped to dots/ (no remote needed)
make dots-split                     # regenerate the dots-history projection branch
make dots-remote URL=<git-url>      # add the standalone 'dotfiles' remote (once)
make dots-push                      # publish dots/ to dotfiles/main
make dots-pull                      # merge changes back into dots/

No secrets in dots/

dots/ is public. The dots/gemini/ runtime credential files (oauth_creds.json, google_accounts.json, tokens, history/tmp/state) are git-ignored. Only declarative config is tracked.