mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-08-21 10:43:56 +02:00
At login the xdg-autostart-generator starts apps at graphical-session.target, racing the portal user services. Sandboxed apps (nixpak firefox/telegram) end up with broken FileChooser/OpenURI until manually restarted. Add a template drop-in on app-@autostart.service that makes every autostart app wait for the portal stack.
Desktop Environment Configurations
This directory contains desktop environment and window manager configurations managed by Home Manager.
Available Configurations
Window Managers
- niri: Niri compositor configuration with custom settings, keybindings, spawn-at-startup rules, and window rules
Base Desktop Environment
- base: Common desktop configurations shared across all environments, including:
- Noctalia Shell: All-in-one Wayland desktop shell (replaces gammastep, swaylock, anyrun, mako, waybar, wallpaper-switcher, wlogout, and other desktop tools)
- Creative tools and media applications
- Development tools
- Fcitx5 input method framework
- Games and gaming utilities
- GTK theme configurations
- Immutable file handling
- Note-taking applications
- Wayland applications
- XDG desktop configurations
Editor Configurations
- editors: Text editor configurations and integrations
Why install Desktop Environments in Home Manager instead of NixOS Module?
-
Configuration Location: Desktop environment configuration files are located in
~/.config, which can be easily managed by Home Manager. -
User-specific Services: User-specific systemd services (noctalia-shell, fcitx5, hypridle, etc.) can be easily managed by Home Manager. If desktop environments were configured via NixOS Module, these user-level services might fail to start automatically. With Home Manager modules, we can control systemd service dependency order more effectively.
-
System Benefits: By minimizing package installation through NixOS Module:
- Makes the NixOS system more secure and stable
- Increases portability to non-NixOS systems, as Home Manager can be installed on any Linux system
- Allows for easier switching between different window managers without system-level changes