Files
nixos-config/home/features/desktop/AGENTS.md
2026-01-02 15:12:26 +01:00

2.4 KiB

DESKTOP FEATURES (home-manager)

Wayland/Hyprland environment with color-coordinated tooling

OVERVIEW

12 modular desktop features with nix-colors (Dracula) integration across all components.

STRUCTURE

desktop/
├── default.nix       # Imports + XDG + Kitty config
├── coding.nix        # Development tools (VSCode, etc.)
├── crypto.nix        # Crypto wallets/tools
├── fonts.nix         # Font packages
├── gaming.nix        # Gaming tools/Steam
├── hyprland.nix      # Hyprland WM configuration
├── media.nix         # Media players/editors
├── office.nix        # LibreOffice, document tools
├── rofi.nix          # Application launcher
├── theme.nix         # GTK/Qt theming
├── wayland.nix       # Wayland utilities
└── webapps.nix       # Browser-based apps

WHERE TO LOOK

Task Location Notes
Add desktop app Relevant feature .nix Update home.packages
Configure Hyprland hyprland.nix Window manager settings
Fix colors Check colorScheme references Uses config.colorScheme.palette.base*
Add font fonts.nix Increases system closure size

CONVENTIONS

Color Scheme Integration

All color-aware tools reference config.colorScheme.palette.base00 through base0F:

  • base00-07: Grayscale (dark to light)
  • base08: Red/errors
  • base09: Orange
  • base0A: Yellow/strings
  • base0B: Green/functions
  • base0C: Cyan
  • base0D: Blue/types
  • base0E: Purple/constants
  • base0F: Brown

Template:

foreground = "#${config.colorScheme.palette.base05}";
background = "#${config.colorScheme.palette.base00}";

Session Variables

Set in default.nix for Wayland/Hyprland:

NIXOS_OZONE_WL = "1";
QT_QPA_PLATFORM = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland";

XDG Defaults

  • PDF: okular
  • Text: nvim
  • Browser: Zen (io.github.zen_browser.zen)
  • Archive: file-roller

ANTI-PATTERNS

  • DON'T hardcode hex colors - use colorScheme palette
  • DON'T install fonts globally - keep in user packages
  • DON'T bypass XDG defaults - set in mimeApps

NOTES

  • Kitty terminal configured in default.nix (not separate file)
  • Bibata-Modern-Ice cursor theme hardcoded
  • Session path includes cargo, npm-global, bun
  • Desktop features are always-enabled (no feature flags in this dir)