forked from aylac.top/nixcfg
this repo has no description
at main 5.7 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: { 7 options.myHome.desktop.gnome = { 8 enable = lib.mkEnableOption "GNOME desktop environment"; 9 }; 10 11 config = lib.mkIf config.myHome.desktop.gnome.enable { 12 dconf = { 13 enable = true; 14 15 settings = let 16 defaultApps = { 17 terminal = config.myHome.profiles.defaultApps.terminal.exec or (lib.getExe pkgs.gnome-console); 18 webBrowser = 19 config.myHome.profiles.defaultApps.webBrowser.exec 20 or (lib.getExe config.programs.firefox.finalPackage); 21 fileManager = config.myHome.profiles.defaultApps.fileManager.exec or (lib.getExe pkgs.nautilus); 22 editor = config.myHome.profiles.defaultApps.editor.exec or (lib.getExe pkgs.gnome-text-editor); 23 archiveViewer = config.myHome.profiles.defaultApps.archiveViewer.exec or (lib.getExe pkgs.file-roller); 24 }; 25 in { 26 "org/gnome/desktop/datetime".automatic-timezone = true; 27 28 "org/gnome/desktop/interface" = { 29 clock-format = "24h"; 30 enable-hot-corners = false; 31 }; 32 33 "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; 34 "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { 35 binding = "<Super>Return"; 36 command = "${defaultApps.terminal}${lib.optionalString (config.myHome.profiles.defaultApps.terminal.package == pkgs.ptyxis) " --new-window"}"; 37 name = "Terminal"; 38 }; 39 40 "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { 41 binding = "<Super>e"; 42 command = "${defaultApps.fileManager}"; 43 name = "File Manager"; 44 }; 45 46 "org/gnome/shell" = { 47 welcome-dialog-last-shown-version = "9999999999"; # No welcome dialog. 48 }; 49 50 "org/gnome/shell/keybindings" = { 51 switch-to-application-1 = []; 52 switch-to-application-2 = []; 53 switch-to-application-3 = []; 54 switch-to-application-4 = []; 55 switch-to-application-5 = []; 56 switch-to-application-6 = []; 57 switch-to-application-7 = []; 58 switch-to-application-8 = []; 59 switch-to-application-9 = []; 60 switch-to-application-10 = []; 61 }; 62 63 "org/gnome/system/location".enabled = false; 64 65 "org/gnome/desktop/wm/keybindings" = { 66 move-to-monitor-down = ["<Ctrl><Shift><Super>Down"]; 67 move-to-monitor-left = ["<Ctrl><Shift><Super>Left"]; 68 move-to-monitor-right = ["<Ctrl><Shift><Super>Right"]; 69 move-to-monitor-up = ["<Ctrl><Shift><Super>Up"]; 70 move-to-workspace-1 = ["<Shift><Super>1"]; 71 move-to-workspace-10 = ["<Shift><Super>0"]; 72 move-to-workspace-2 = ["<Shift><Super>2"]; 73 move-to-workspace-3 = ["<Shift><Super>3"]; 74 move-to-workspace-4 = ["<Shift><Super>4"]; 75 move-to-workspace-5 = ["<Shift><Super>5"]; 76 move-to-workspace-6 = ["<Shift><Super>6"]; 77 move-to-workspace-7 = ["<Shift><Super>7"]; 78 move-to-workspace-8 = ["<Shift><Super>8"]; 79 move-to-workspace-9 = ["<Shift><Super>9"]; 80 switch-to-workspace-1 = ["<Super>1"]; 81 switch-to-workspace-10 = ["<Super>0"]; 82 switch-to-workspace-2 = ["<Super>2"]; 83 switch-to-workspace-3 = ["<Super>3"]; 84 switch-to-workspace-4 = ["<Super>4"]; 85 switch-to-workspace-5 = ["<Super>5"]; 86 switch-to-workspace-6 = ["<Super>6"]; 87 switch-to-workspace-7 = ["<Super>7"]; 88 switch-to-workspace-8 = ["<Super>8"]; 89 switch-to-workspace-9 = ["<Super>9"]; 90 switch-to-workspace-down = []; 91 switch-to-workspace-left = ["<Ctrl><Super>Left"]; 92 switch-to-workspace-right = ["<Ctrl><Super>Right"]; 93 switch-to-workspace-up = []; 94 toggle-fullscreen = ["<Super>w"]; 95 }; 96 97 "org/gnome/desktop/wm/preferences".button-layout = "appmenu:close"; 98 }; 99 }; 100 101 programs = { 102 firefox.nativeMessagingHosts = [pkgs.gnome-browser-connector]; 103 104 gnome-shell = { 105 enable = true; 106 107 extensions = [ 108 {package = pkgs.gnomeExtensions.appindicator;} 109 {package = pkgs.gnomeExtensions.night-theme-switcher;} 110 {package = pkgs.gnomeExtensions.gsconnect;} 111 {package = pkgs.gnomeExtensions.just-perfection;} 112 {package = pkgs.gnomeExtensions.caffeine;} 113 ]; 114 }; 115 }; 116 117 home.packages = with pkgs; [ 118 gnome-tweaks 119 adw-gtk3 120 gnome-extension-manager 121 morewaita-icon-theme 122 ]; 123 124 myHome.profiles.defaultApps = { 125 archiveViewer = { 126 package = lib.mkDefault pkgs.file-roller; 127 icon = lib.mkDefault "org.gnome.FileRoller"; 128 }; 129 audioPlayer = { 130 package = lib.mkDefault config.programs.mpv.finalPackage; 131 icon = lib.mkDefault "mpv"; 132 }; 133 editor = { 134 package = lib.mkDefault pkgs.gnome-text-editor; 135 icon = lib.mkDefault "org.gnome.TextEditor"; 136 }; 137 fileManager = { 138 package = lib.mkDefault pkgs.nautilus; 139 icon = lib.mkDefault "org.gnome.Nautilus"; 140 }; 141 imageViewer = { 142 package = lib.mkDefault pkgs.loupe; 143 icon = lib.mkDefault "org.gnome.Loupe"; 144 }; 145 pdfViewer = { 146 package = lib.mkDefault pkgs.papers; 147 icon = lib.mkDefault "org.gnome.Papers"; 148 }; 149 terminal = { 150 package = lib.mkDefault pkgs.gnome-console; 151 icon = lib.mkDefault "org.gnome.Terminal"; 152 }; 153 videoPlayer = { 154 package = lib.mkDefault config.programs.mpv.finalPackage; 155 icon = lib.mkDefault "mpv"; 156 }; 157 }; 158 }; 159}