Files
dotfiles/CLAUDE.md
T
mpuchstein 119c396efc nu: add Alt+. last-arg keybinding and nushell-book doc submodule
- keybindings block in config.nu with Alt+. → insert last token from history
- nushell.github.io added as external_nushell-book submodule under dot_local/share/docs
- CLAUDE.md local docs table updated
2026-05-17 17:31:14 +02:00

2.9 KiB

CLAUDE.md — chezmoi dotfiles

Chezmoi source tree for a Linux desktop (Hyprland + Neovim + Zsh/Zim).

Commands

chezmoi diff          # preview pending changes
chezmoi apply         # render templates and apply to $HOME
chezmoi status        # show managed file status

After applying, reload the affected tool:

  • Hyprland: hyprctl reload
  • Waybar: pkill waybar && waybar &
  • Neovim: reopen or :source
  • Zsh: exec zsh

Chezmoi file naming

Prefix/Suffix Meaning
dot_ maps to . (e.g. dot_config/~/.config/)
executable_ sets executable bit
private_ restricts permissions (600/700)
symlink_ creates a symlink
.tmpl Go template rendered at apply time
##hostname.<name> host-specific variant

Template data (chezmoi.toml)

Config lives at ~/.config/chezmoi/chezmoi.toml (not tracked). Access tags via .chezmoi.config.data.tags.<tag>.

Current tags: desktop, laptop, hyprland, waybar, pipewire, dev, entertainment, cs2, bluetooth

  • microphone is only present when pipewire = true — guard with {{- if (index $tags "pipewire") }}.
  • data.monitors is an array; number of entries varies by machine.

Architecture

  • dot_config/hypr/ — Hyprland. Entry point: hyprland.conf. Modular includes in hyprland.d/. New settings go in the appropriate hyprland.d/ file.
  • dot_config/nvim/ — Neovim (Lua + lazy.nvim). init.lua bootstraps lazy. Plugins: lazy_setup.lua. General settings: polish.lua. 2-space indents; see dot_stylua.toml + selene.toml.
  • dot_config/waybar/ — Waybar config and styles. Host-specific variants via ##hostname.<name>.
  • dot_config/zsh/ — Zsh + Zim + Powerlevel10k. Aliases: aliases.zsh.
  • dot_local/bin/ — User scripts (all executable_ prefixed).
  • .chezmoiscripts/run_onchange_* hooks run on chezmoi apply.

Theming — apex-aeon / apex-neon

Two custom themes (apex-aeon dark, apex-neon neon) are applied across nvim, zsh, waybar, alacritty, kitty, ghostty, btop, fuzzel, gtk4, spicetify, swaync, wezterm, zathura, zed.

Theme files are not edited by hand — they are synced from ~/Dev/Themes/apex/dist using:

refresh-apex-themes

This copies built theme artifacts into the appropriate dot_config/*/themes/ directories.

Local documentation

Topic Path
chezmoi ~/.local/share/docs/chezmoi-docs/
Hyprland ~/.local/share/docs/hyprland.wiki/
Waybar ~/.local/share/docs/waybar.wiki/ (also man 5 waybar)
Nushell ~/.local/share/docs/nushell-book/
Ghostty /usr/share/ghostty

Commit convention

scope: imperative subject

Examples: hypr: adjust keybinds, waybar: tweak clock format, nvim: add plugin

For visual/UI changes include screenshots in the PR description, along with affected paths.