2.4 KiB
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)