Files
dotfiles/.memory/decisions.md
2026-03-12 12:14:33 +00:00

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_toggle for 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.md is NOT a symlink (it's the global OpenCode config file, distinct from the per-project AGENTS.md pattern)
  • See OpenCode Architecture for details

Waybar CPU Monitor: Ghostty (not Kitty)

  • Observation: cpu module in Waybar opens ghostty -e htop on 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-credential as 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_ed25519 is tracked — implies this repo may use filesystem permissions for security