{ config, ... }: { # Source niri config xdg.configFile."niri" = { source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/nix-config/modules/wm/niri/config"; }; # Additional setup services.polkit-gnome.enable = true; # WM Utilities (split out if they need additional config) programs.hyprlock.enable = true; # Additional Desktop Entries xdg.desktopEntries = { screenshot = { type = "Application"; name = "Screenshot"; exec = "niri msg action screenshot"; icon = "screenie"; }; screenshot-screen = { type = "Application"; name = "Screenshot Screen"; exec = "niri msg action screenshot-screen"; icon = "screenie"; }; color-pickers = { type = "Application"; name = "Color Picker"; exec = "hyprpicker -a -f=hex -n -l -q"; icon = "colorpicker"; }; notes = { type = "Application"; name = "Notes"; exec = "ghostty --working-directory=${config.home.homeDirectory}/notes -e nvim -c \":lua Snacks.picker('files')\""; icon = "gnotes"; }; lock = { type = "Application"; name = "Lock"; exec = "hyprlock"; icon = "lock-screen"; }; logout = { type = "Application"; name = "Logout"; exec = "niri msg action quit"; icon = "administration"; }; shutdown = { type = "Application"; name = "Shutdown"; exec = "shutdown now"; icon = "com.github.bcedu.shutdownscheduler"; }; }; }