80 lines
2.4 KiB
Markdown
80 lines
2.4 KiB
Markdown
# 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:
|
|
```nix
|
|
foreground = "#${config.colorScheme.palette.base05}";
|
|
background = "#${config.colorScheme.palette.base00}";
|
|
```
|
|
|
|
### Session Variables
|
|
Set in default.nix for Wayland/Hyprland:
|
|
```nix
|
|
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)
|