{ config, options, lib, pkgs, ... }: let niriConf = config.modules.desktop.niri; device = config.modules.device; defaultApps = config.modules.desktop.defaultApplications.apps; configDir = config.nixosConfig.configDir; in { options.modules.desktop.niri = { enable = lib.mkOption { type = lib.types.bool; default = false; }; }; config = lib.mkIf (niriConf.enable) (lib.mkMerge [ { programs.niri.enable = true; programs.waybar.enable = true; programs.xwayland.enable = true; home.manager.services.polkit-gnome.enable = true; fonts.packages = with pkgs; [ adwaita-fonts ]; home.packages = with pkgs; [ libnotify killall wdisplays xwayland-satellite wofi mako jq swww adwaita-icon-theme adwaita-icon-theme-legacy ]; home.manager.xdg.configFile."niri/config.kdl".source = "${configDir}/niri/${config.networking.hostName}.kdl"; programs.regreet = { enable = true; theme.name = "Adwaita"; cursorTheme.name = "Adwaita"; }; home.file.".icons/default".source = "${pkgs.adwaita-icon-theme}/share/icons/Adwaita"; modules.device.displayProtocol = "wayland"; environment.sessionVariables.NIXOS_OZONE_WL = "1"; home.manager.gtk.cursorTheme = { name = "Adwaita"; size = 12; }; system.userActivationScripts.linkwaybar.text = '' if [[ ! -h "$HOME/.config/waybar" ]]; then ln -s "${configDir}/waybar" "$HOME/.config/waybar" fi ''; } (lib.mkIf (config.modules.desktop.greetd.enable) { }) ]); }