3.3 KiB
3.3 KiB
title, type, permalink
| title | type | permalink |
|---|---|---|
| decisions | note | dotfiles/decisions |
Dotfiles Decisions
Desktop Environment: Hyprland + Wayland
- Decision: Hyprland as primary compositor, full Wayland stack
- Rationale: Modern Wayland compositor with tiling, animations, and good HiDPI support
- Constraints: XWayland needed for legacy apps; special window rule to suppress maximize events
- Input: Caps Lock remapped to Super (
caps:super),alts_togglefor US/BR layout switching
Shell: Fish (not Bash/Zsh)
- Decision: Fish as primary interactive shell; bash/zsh configs retained for compatibility
- Rationale: Better autocompletion, syntax highlighting, friendly defaults
- Plugin manager: fisher (minimal, text-file-based)
- No
oh-my-fish— prefer minimal plugin set (just catppuccin theme)
Theme: Catppuccin Mocha (global)
- Decision: Single colorscheme (Catppuccin Mocha) applied uniformly across all tools
- Rationale: Consistent visual identity; official plugins available for Fish, Neovim, Kitty
- Other variants installed: Frappe, Macchiato, Mocha static — available in
fish/themes/but Mocha is active - No per-tool theming exceptions — all tools must use Catppuccin Mocha
Editor: Neovim with lazy.nvim
- Decision: Neovim (not VSCode or other) as primary editor
- Plugin manager: lazy.nvim (not packer, not vim-plug) — auto-bootstrapped from init.lua
- LSP strategy: mason.nvim for tooling installation + mason-lspconfig for auto-enable; capabilities injected globally via cmp_nvim_lsp
- Format strategy: conform.nvim with format-on-save (not LSP formatting directly); lsp_fallback=true for unconfigured filetypes
- No treesitter-based formatting — explicit per-filetype formatters in conform
OpenCode: Custom Multi-Agent Config
- Decision: Fully custom multi-agent configuration (not default OpenCode setup)
- 10 specialized agents each with tailored instructions, model, temperature, permissions
- Memory pattern:
.memory/directory tracked in git; agents write to.memory/*directly - Permission model: Full edit for lead/coder/librarian; all others restricted to
.memory/*writes (instruction-level enforcement, not tool-level) - AGENTS.md exception: In the opencode subdir,
AGENTS.mdis NOT a symlink (it's the global OpenCode config file, distinct from the per-projectAGENTS.mdpattern) - See OpenCode Architecture for details
Waybar CPU Monitor: Ghostty (not Kitty)
- Observation:
cpumodule in Waybar opensghostty -e htopon click — Ghostty may be installed as secondary terminal - Impact: Kitty is the primary terminal (SUPER+Return), but Ghostty is referenced in Waybar config
Git Credentials: gh CLI
- Decision: Use
gh auth git-credentialas credential helper for GitHub + Gist - Rationale: Centralizes auth through GitHub CLI; no plaintext tokens in git config
SSH Key Type: Ed25519
- Decision: Ed25519 for SSH key (not RSA)
- Rationale: Modern, fast, smaller key size
No Global .gitignore in Dotfiles
- Observation: No global gitignore file visible; tracking is managed per-repo
- Pattern: Sensitive SSH private key
.ssh/id_ed25519is tracked — implies this repo may use filesystem permissions for security