Files
nix-config/home/linux/gui/base/README.md
T
Ryan Yin 1324131c6d docs: correct statements that no longer match the configuration
Assisted-by: DeepSeek Harness 0.2.1-rc.2 (claude-opus-5-5)
2026-10-21 20:59:07 +08:00

5.0 KiB

Base Desktop Environment Configuration

This directory contains base configurations for Linux desktop environments.

Overview

The configuration is split into modules:

  • Desktop shell: Noctalia Shell
  • Applications: desktop tools, browsers, editors, media players
  • Development tools: IDEs and development utilities
  • System integration: input methods, theming, XDG specifications, GPU settings

Noctalia

Noctalia (v5) is a native C++/Wayland desktop shell that replaces multiple separate tools. It is installed through the upstream programs.noctalia Home Manager module.

Configuration

Noctalia merges every *.toml in the config directory (~/.config/noctalia/), sorted alphabetically, and then layers the state directory's settings.toml on top:

Layer Location Notes
Config ~/.config/noctalia/*.toml Merged alphabetically; [include] supported; host-specific overrides
State ~/.local/state/noctalia/settings.toml Written by the Settings UI; loads last and wins

The shared baseline (noctalia/config/config.toml) is deployed as an out-of-store symlink, so manual edits hot-reload without a home-manager switch. Noctalia never rewrites files in the config layer, so volatile runtime data (wallpaper rotation, widget geometry) stays in the state file and out of the repository.

noctalia config export prints the merged user config and noctalia config validate checks a file. Application theming stays with catppuccin/nix, so Noctalia's theme templates are disabled.

Component Replacement

Noctalia consolidates functionality that previously required multiple tools:

Traditional Component Purpose Noctalia counterpart
gammastep Blue light filter [nightlight]
swaylock Screen locker built-in lock screen ([lockscreen])
anyrun Application launcher launcher panel ([shell.launcher])
mako Notification daemon [notification]
waybar Status bar [bar] + [widget.*]
wallpaper-switcher Wallpaper management [wallpaper]
wlogout Session menu [shell.session]
wl-clipboard Clipboard management built-in clipboard (encrypted history)
grim/slurp/satty Screenshots + annotation built-in [shell.screenshot] + annotation editor

Configuration Modules

Desktop Shell

  • noctalia/default.nix: enables the upstream programs.noctalia module and symlinks the baseline out of store

  • noctalia/config/config.toml: declarative baseline (v5 TOML), tracked in the repo and hot-reloaded

    Covers the bar and widgets, control center, desktop widgets, night light, wallpaper, session panel, screenshots with annotation, system monitor, audio/volume, brightness, calendar/weather, color schemes, dock, notifications, OSD, and clipboard.

  • hypridle/: Idle management

Desktop Environment

  • gtk.nix: GTK theme configuration
  • xdg/: XDG specifications

Input & Localization

  • fcitx5/: Fcitx5 input method with Rime (Chinese), Mozc (Japanese), and Hangul (Korean) engines
  • vinput/: Voice input on ai (OpenVINO) and shoukei (CPU)

Applications

  • desktop-tools.nix: Wayland session tools (clipboard, brightness, screen recording, auto-mount, virt-manager/virt-viewer, wlogout emergency fallback)
  • browsers.nix: Web browsers
  • vscode.nix: VS Code
  • media.nix: Audio control, mpv, go-musicfox, an image viewer, GPU video diagnostics, Zoom (x86_64 only), and EasyEffects loudness normalization
  • gaming.nix: Gaming applications
  • creative.nix: Creative software
  • note-taking.nix: Note-taking apps

Development

System Utilities

  • misc.nix: Misc GUI apps (e-book reader, remote desktop, hardened IM clients)