{ inputs, ... }: { flake.modules.nixos.gnome = {pkgs, ... }: { services = { desktopManager.gnome.enable = true; displayManager.gdm = { enable = true; wayland = true; banner = "Welcome to John's NixOS implementation"; }; udev.packages = [ pkgs.gnome-settings-daemon # For gnome systray icons ]; }; # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 systemd.services."getty@tty1".enable = false; systemd.services."autovt@tty1".enable = false; }; flake.modules.homeManager.gnome = { config, pkgs, ... }: { gtk = { enable = true; theme = { name = "Orchis-Dark"; package = pkgs.orchis-theme; }; gtk4.theme = config.gtk.theme; }; home.packages = with pkgs; [ gnome-tweaks gnomeExtensions.appindicator # For gnome systray icons gnomeExtensions.dash-to-panel gnomeExtensions.gtile gnomeExtensions.space-bar gnomeExtensions.switcher gnomeExtensions.tactile gnomeExtensions.vitals ]; dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; "org/gnome/shell" = { disable-user-extensions = false; # `gnome-extensions list` for a list enabled-extensions = with pkgs.gnomeExtensions; [ appindicator.extensionUuid gtile.extensionUuid space-bar.extensionUuid switcher.extensionUuid tactile.extensionUuid vitals.extensionUuid dash-to-panel.extensionUuid ]; }; "org/gnome/desktop/wm/preferences" = { button-layout = ":minimize,close"; }; "org/gnome/desktop/wm/keybindings" = { "switch-to-workspace-1" = ["1"]; "switch-to-workspace-2" = ["2"]; "switch-to-workspace-3" = ["3"]; "switch-to-workspace-4" = ["4"]; "move-to-workspace-1" = ["1"]; "move-to-workspace-2" = ["2"]; "move-to-workspace-3" = ["3"]; "move-to-workspace-4" = ["4"]; }; "org/gnome/settings-daemon/plugins/media-keys" = { custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/edit-nix/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch-browser/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ad-dev/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/shutdown/" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/edit-nix" = { binding = "n"; command = "code /etc/nixos"; name = "Edit Nix config"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/launch-browser" = { binding = "b"; command = "brave"; name = "Launch Brave browser"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ad-dev" = { binding = "d"; command = ''code --file-uri "vscode-remote://ssh-remote+ad-nix/etc/nixos/ad-nix.code-workspace"''; name = "Launch AppDaemon Development over Tailscale"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ws1" = { binding = "1"; command = "wmctrl -s 0"; name = "Switch to workspace 1"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/shutdown" = { binding = "p"; command = "gnome-session-quit --power-off --force"; name = "Shutdown immediately"; }; }; }; }