default.nix
1 { 2 config, 3 lib, 4 pkgs, 5 ... 6 }: 7 let 8 inherit (lib) mkIf; 9 10 cfg = config.dusk.system.nixos.desktop.gnome; 11 in 12 { 13 imports = [ ./drone.nix ]; 14 15 config = mkIf cfg.enable { 16 environment.systemPackages = with pkgs; [ 17 gnome-monitor-config 18 gnomeExtensions.pop-shell 19 newsflash 20 ]; 21 22 home-manager.users.${config.dusk.username} = 23 { lib, ... }: 24 let 25 inherit (lib.hm.gvariant) mkUint32; 26 in 27 { 28 dconf = { 29 enable = true; 30 settings = { 31 "org/gnome/desktop/interface" = { 32 color-scheme = "prefer-dark"; 33 gtk-theme = "palenight"; 34 }; 35 36 "org/gnome/desktop/wm/keybindings" = { 37 close = [ "<Super>q" ]; 38 maximize = [ ]; 39 minimize = [ ]; 40 move-to-monitor-down = [ ]; 41 move-to-monitor-left = [ ]; 42 move-to-monitor-right = [ ]; 43 move-to-monitor-up = [ ]; 44 move-to-workspace-1 = [ "<Shift><Super>1" ]; 45 move-to-workspace-2 = [ "<Shift><Super>2" ]; 46 move-to-workspace-3 = [ "<Shift><Super>3" ]; 47 move-to-workspace-4 = [ "<Shift><Super>4" ]; 48 move-to-workspace-5 = [ "<Shift><Super>5" ]; 49 move-to-workspace-6 = [ "<Shift><Super>6" ]; 50 move-to-workspace-7 = [ "<Shift><Super>7" ]; 51 move-to-workspace-8 = [ "<Shift><Super>8" ]; 52 move-to-workspace-9 = [ "<Shift><Super>9" ]; 53 move-to-workspace-down = [ ]; 54 move-to-workspace-up = [ ]; 55 switch-to-workspace-1 = [ "<Super>1" ]; 56 switch-to-workspace-2 = [ "<Super>2" ]; 57 switch-to-workspace-3 = [ "<Super>3" ]; 58 switch-to-workspace-4 = [ "<Super>4" ]; 59 switch-to-workspace-5 = [ "<Super>5" ]; 60 switch-to-workspace-6 = [ "<Super>6" ]; 61 switch-to-workspace-7 = [ "<Super>7" ]; 62 switch-to-workspace-8 = [ "<Super>8" ]; 63 switch-to-workspace-9 = [ "<Super>9" ]; 64 switch-to-workspace-down = [ ]; 65 switch-to-workspace-left = [ ]; 66 switch-to-workspace-right = [ ]; 67 switch-to-workspace-up = [ ]; 68 toggle-fullscreen = [ "<Super>f" ]; 69 toggle-maximized = [ ]; 70 unmaximize = [ ]; 71 }; 72 73 "org/gnome/shell" = { 74 disable-user-extensions = false; 75 enabled-extensions = with pkgs.gnomeExtensions; [ pop-shell.extensionUuid ]; 76 favorite-apps = [ ]; 77 }; 78 79 "org/gnome/shell/extensions/pop-shell" = { 80 gap-inner = mkUint32 4; 81 gap-outer = mkUint32 4; 82 }; 83 84 "org/gnome/settings-daemon/plugins/media-keys" = { 85 screensaver = [ "<super>escape" ]; 86 www = [ "<super>b" ]; 87 terminal = [ "<super>enter" ]; 88 }; 89 }; 90 }; 91 92 gtk = { 93 enable = true; 94 95 cursorTheme = { 96 name = "Adwaita"; 97 package = pkgs.adwaita-icon-theme; 98 }; 99 100 iconTheme = { 101 name = "Papirus-Dark"; 102 package = pkgs.papirus-icon-theme; 103 }; 104 105 theme = { 106 name = "palenight"; 107 package = pkgs.palenight-theme; 108 }; 109 110 gtk3.extraConfig.gtk-application-prefer-dark-theme = true; 111 gtk4.extraConfig.gtk-application-prefer-dark-theme = true; 112 }; 113 }; 114 115 services = { 116 xserver = { 117 enable = true; 118 119 desktopManager.gnome.enable = true; 120 displayManager.gdm = { 121 enable = true; 122 wayland = true; 123 autoSuspend = false; 124 }; 125 }; 126 127 udev.packages = with pkgs; [ gnome-settings-daemon ]; 128 }; 129 130 xdg = { 131 portal = { 132 enable = true; 133 134 extraPortals = with pkgs; [ 135 xdg-desktop-portal-gnome 136 xdg-desktop-portal-gtk 137 xdg-desktop-portal-wlr 138 ]; 139 }; 140 }; 141 }; 142 }