Skip to content

Latest commit

 

History

143 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Theme

Everything runs Catppuccin Mocha, dark, with mauve (#cba6f7) as the accent — no per-app themes, no light mode. fastfetch and other TUI apps without a theme of their own inherit the palette from ghostty's ANSI overrides.

Touch points (a flavor switch touches exactly these):

App File Carries color
ghostty common/.config/ghostty/common.conf theme =
zed common/.config/zed/settings.json theme, icon_theme
nvim common/.config/nvim/lua/plugins/colorscheme.lua flavour
herdr common/.config/herdr/config.toml theme.name
btop common/.config/btop/btop.conf vendored theme file
waybar linux/.config/waybar/mocha.css @import in style.css
fuzzel linux/.config/fuzzel/catppuccin-mocha.ini include= in fuzzel.ini
swaylock linux/.config/swaylock/config whole file
niri linux/.config/niri/cfg/layout.kdl focus-ring colors

Vendored files are verbatim from the official catppuccin ports — don't hand-edit them. Future direction: a theme script here flips the waybar @import and fuzzel include to sibling flavor files and rewrites the few remaining references. Deliberately no home-manager; catppuccin/nix's home-manager modules were considered and rejected for that reason.

GNU stow dotfiles for all machines, organized into per-scope packages:

Machine OS Managed by Stow packages
Odin (home Mac) macOS nix-darwin via everything-nix common mac personal
Thor (home PC) NixOS NixOS via everything-nix common linux personal
Ivaldi (server) NixOS NixOS via everything-nix common linux personal (optional)

System-level config (packages, fonts, services) for the nix machines lives in ~/everything-nix — this repo only manages $HOME dotfiles.

Layout

common/    stowed everywhere — zsh modules (~/.config/zsh), starship, ghostty,
           nvim, btop, fastfetch, wezterm, zed, pnpm, git ignore, herdr
mac/       stowed on macOS — gnupg (pinentry-mac), zsh extras (darwin.zsh),
           reproducible launchers for terminal apps
linux/     stowed on Linux — niri, zsh extras (linux.zsh)
personal/  stowed on personal machines — personal pi agent-system

zsh has no native XDG support, so a two-line ~/.zshenv bootstrap points ZDOTDIR at ~/.config/zsh; every other zsh file — .zshrc, modules and all — lives there. .zshrc sources the shared modules, then the platform extras and any optional work.zsh supplied by an external Stow package, so the installed packages decide the machine's behavior.

Requirements

Odin and Thor: git, zsh, stow. Ivaldi's user package set is deferred until its server role is designed.

Odin / Thor: CLI tools (stow, starship, zoxide, fzf, lsd, ghostty, pnpm, …) are installed by everything-nix. Thor's Wayland desktop packages (Waybar, Fuzzel, and Swaylock) are installed by its host configuration. Ivaldi's package set is intentionally deferred. Two gaps to be aware of:

  • neovim and bat are not in everything-nix yet; the nvim config here is inert and the cat alias degrades gracefully until you add them

Git setup (per machine, intentionally not tracked)

~/.gitconfig is machine-local so each machine can use the appropriate identity:

git config --global user.name "Andrei Kukharau"
git config --global user.email "contact@druce.dev"
git config --global init.defaultBranch main

Install

Clone this repository to ~/.dotfiles, then stow the packages for the machine:

git clone git@github.com:drucedev/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
stow --no-folding common mac personal   # adjust per machine, see table above

On macOS, install the Cliamp Spotlight/Finder launcher after stowing. This creates a real app bundle in ~/Applications and opens Cliamp in Ghostty:

install-macos-apps

Run the command again after changing its app metadata or launcher. Cliamp must be available on the login shell's PATH, and Ghostty must be installed in /Applications.

--no-folding makes stow create real directories and link only files, so apps that write state into ~/.config/... never write into this repo. Use the same flag if you ever unstow (stow -D --no-folding ...).

Upgrading a machine from the monolithic layout

Machines stowed before the modular ~/.config/zsh layout still carry ~/.zshrc, ~/.zprofile, ~/.aliases and possibly ~/.zshrc.darwin or ~/.zshrc.linux as stow symlinks. After pulling this repo they dangle (the package files are gone), and a dangling ~/.zshrc would shadow nothing but still clutter — remove them, restow, and clean up the stale pre-XDG history file:

cd ~/.dotfiles && git pull
rm -f ~/.zshrc ~/.zprofile ~/.aliases ~/.zshrc.darwin ~/.zshrc.linux \
      ~/.zsh_history
stow --no-folding <packages>   # see table above
./test/zsh.sh                  # sandboxed, safe to run anywhere

Then open a new shell.

The personal Pi agent-system directory is self-contained because Pi treats the real directory containing definitions.json as a trust boundary.

Then open a new shell. zinit clones itself and its plugins on first run. Verify the shell with test/zsh.sh — it builds a sandbox home, so it is safe to run on any machine.


Notes

  • fastfetch expects an optional logo at ~/Pictures/logo.png; missing file just means no logo.
  • Ghostty keeps shared settings in common/.config/ghostty/common.conf; the macOS and Linux packages provide the platform wrapper. macOS starts Ghostty maximized, while Linux leaves window state to the compositor.
  • The uu alias upgrades the whole machine and differs per package manager: nix-darwin rebuild on macOS and NixOS rebuild on Linux.

About

Dotfiles of all machines

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages