diff --git a/nixos/common/desktop/default.nix b/nixos/common/desktop/default.nix index 41e7b25..aac4970 100644 --- a/nixos/common/desktop/default.nix +++ b/nixos/common/desktop/default.nix @@ -1,7 +1,4 @@ -{ pkgs, config, lib, ... }: { - imports = [ - ./desktop-env.nix - ]; +{ pkgs, ... }: { # Bootloader. boot = { kernelPackages = pkgs.linuxPackages_latest; @@ -17,6 +14,9 @@ }; }; + # Enable my config for the gnome desktop environment + services.v.gnome.enable = true; + # Set your time zone. time.timeZone = "Europe/Amsterdam"; @@ -82,4 +82,9 @@ # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; }; + + # Networking + networking.networkmanager.enable = true; + networking.firewall.checkReversePath = false; + networking.firewall.enable = false; } diff --git a/nixos/common/desktop/desktop-env.nix b/nixos/common/desktop/desktop-env.nix deleted file mode 100644 index 4062535..0000000 --- a/nixos/common/desktop/desktop-env.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ pkgs, ...}: { - # TODO: Create Module - services.xserver.enable = true; - services.xserver.excludePackages = [ pkgs.xterm ]; - - # Configure keymap in X11 - services.xserver = { - layout = "us"; - xkbVariant = "altgr-intl"; - }; - - # Enable the GNOME Desktop Environment. - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; - services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; - environment.gnome.excludePackages = - (with pkgs; [ gnome-photos gnome-tour gnome-connections ]) - ++ (with pkgs.gnome; [ - atomix # puzzle game - epiphany # web browser - geary # email reader - gedit # text editor - gnome-calendar - gnome-clocks - gnome-contacts - gnome-maps - gnome-music - gnome-notes - gnome-terminal - gnome-weather - hitori # sudoku game - iagno # go game - simple-scan # document scanner - tali # poker game - totem # video player - ]); - - # Services required for gnome - programs.dconf.enable = true; - services.dbus.enable = true; - services.udisks2.enable = true; - - # Extra gnome packages - environment.systemPackages = with pkgs; [ - gnome.gnome-tweaks - gnome.gnome-boxes - ]; -} diff --git a/nixos/common/modules/default.nix b/nixos/common/modules/default.nix index 3680ca0..3e78f27 100644 --- a/nixos/common/modules/default.nix +++ b/nixos/common/modules/default.nix @@ -2,6 +2,7 @@ imports = [ ./dns.nix ./flood.nix + ./gnome ./unpackerr.nix ./vault.nix ]; diff --git a/nixos/hosts/thalassa/aoife/home/dconf.nix b/nixos/common/modules/gnome/dconf.nix similarity index 97% rename from nixos/hosts/thalassa/aoife/home/dconf.nix rename to nixos/common/modules/gnome/dconf.nix index 9b1e575..14fa0b9 100644 --- a/nixos/hosts/thalassa/aoife/home/dconf.nix +++ b/nixos/common/modules/gnome/dconf.nix @@ -19,7 +19,7 @@ in { dconf.settings = { "org/gnome/desktop/input-sources" = { sources = [ (mkTuple [ "xkb" "us+altgr-intl" ]) ]; - xkb-options = [ "terminate:ctrl_alt_bksp" "caps:swapescape" ]; + xkb-options = [ "terminate:ctrl_alt_bksp" ]; }; "org/gnome/desktop/peripherals/touchpad" = { diff --git a/nixos/common/modules/gnome/default.nix b/nixos/common/modules/gnome/default.nix new file mode 100644 index 0000000..4b72f6b --- /dev/null +++ b/nixos/common/modules/gnome/default.nix @@ -0,0 +1,59 @@ +{ config, pkgs, lib, flat_hosts, ... }: +with lib; +let cfg = config.services.v.gnome; + +in { + options.services.v.gnome = { enable = mkEnableOption "v.gnome"; }; + + config = mkIf cfg.enable { + services.xserver.enable = true; + services.xserver.excludePackages = [ pkgs.xterm ]; + + home-manager.sharedModules = [ + ./dconf.nix + ]; + + # Configure keymap in X11 + services.xserver = { + layout = "us"; + xkbVariant = "altgr-intl"; + }; + + # Enable the GNOME Desktop Environment. + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome.enable = true; + services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; + environment.gnome.excludePackages = + (with pkgs; [ gnome-photos gnome-tour gnome-connections ]) + ++ (with pkgs.gnome; [ + atomix # puzzle game + epiphany # web browser + geary # email reader + gedit # text editor + gnome-calendar + gnome-clocks + gnome-contacts + gnome-maps + gnome-music + gnome-notes + gnome-terminal + gnome-weather + hitori # sudoku game + iagno # go game + simple-scan # document scanner + tali # poker game + totem # video player + ]); + + # Services required for gnome + programs.dconf.enable = true; + services.dbus.enable = true; + services.udisks2.enable = true; + + # Extra gnome packages + environment.systemPackages = with pkgs; [ + gnome.gnome-tweaks + gnome.gnome-boxes + ]; + }; +} diff --git a/nixos/hosts/thalassa/aoife/configuration.nix b/nixos/hosts/thalassa/aoife/configuration.nix index 1dd5b4d..29ed1f3 100644 --- a/nixos/hosts/thalassa/aoife/configuration.nix +++ b/nixos/hosts/thalassa/aoife/configuration.nix @@ -8,7 +8,6 @@ ./hardware-configuration.nix inputs.nixos-hardware.nixosModules.lenovo-thinkpad-z ./hardware.nix - ./networking.nix ]; # Bootloader. diff --git a/nixos/hosts/thalassa/aoife/home/default.nix b/nixos/hosts/thalassa/aoife/home/default.nix index c2421ba..84adb33 100644 --- a/nixos/hosts/thalassa/aoife/home/default.nix +++ b/nixos/hosts/thalassa/aoife/home/default.nix @@ -12,7 +12,10 @@ in { home.homeDirectory = "/home/victor"; home.stateVersion = "23.05"; - imports = [ ./dconf.nix ./theme.nix ./neovim.nix ]; + imports = [ ./theme.nix ./neovim.nix ]; + + # Custom dconf settings + dconf.settings."org/gnome/desktop/input-sources".xkb-options = [ "caps:swapescape"]; home.packages = with pkgs; [ btop diff --git a/nixos/hosts/thalassa/aoife/networking.nix b/nixos/hosts/thalassa/aoife/networking.nix deleted file mode 100644 index 826668a..0000000 --- a/nixos/hosts/thalassa/aoife/networking.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - networking.networkmanager.enable = true; - networking.firewall.checkReversePath = false; - networking.firewall.enable = false; -} diff --git a/nixos/hosts/thalassa/eevee/configuration.nix b/nixos/hosts/thalassa/eevee/configuration.nix index cd7294e..69d17a9 100644 --- a/nixos/hosts/thalassa/eevee/configuration.nix +++ b/nixos/hosts/thalassa/eevee/configuration.nix @@ -7,7 +7,6 @@ ../../../common/desktop ./hardware-configuration.nix ./hardware.nix - ./networking.nix ]; home-manager = { diff --git a/nixos/hosts/thalassa/eevee/home/dconf.nix b/nixos/hosts/thalassa/eevee/home/dconf.nix deleted file mode 100644 index 32c102d..0000000 --- a/nixos/hosts/thalassa/eevee/home/dconf.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ lib, ... }: - -with lib.hm.gvariant; -let - inherit (builtins) attrNames map; - inherit (lib.attrsets) mapAttrs' nameValuePair; - generate_custom_keybindings = binds: - { - "org/gnome/settings-daemon/plugins/media-keys" = { - custom-keybindings = map (name: - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}/") - (attrNames binds); - }; - } // mapAttrs' (name: - nameValuePair - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}") - binds; -in { - dconf.settings = { - "org/gnome/desktop/input-sources" = { - sources = [ (mkTuple [ "xkb" "us+altgr-intl" ]) ]; - }; - - "org/gnome/desktop/peripherals/mouse" = { - accel-profile = "flat"; - }; - - "org/gnome/desktop/peripherals/touchpad" = { - tap-to-click = true; - two-finger-scrolling-enabled = true; - }; - - "org/gnome/mutter" = { - attach-modal-dialogs = true; - dynamic-workspaces = false; - edge-tiling = true; - focus-change-on-pointer-rest = true; - workspaces-only-on-primary = true; - }; - - "org/gnome/mutter/keybindings" = { - toggle-tiled-left = [ "bracketleft" ]; - toggle-tiled-right = [ "bracketright" ]; - }; - - "org/gnome/shell/keybindings" = { toggle-overview = [ "d" ]; }; - - "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; - - "org/gnome/desktop/wm/preferences" = { - auto-raise = false; - num-workspaces = 6; - focus-mode = "sloppy"; - }; - - "org/gnome/desktop/wm/keybindings" = { - raise-or-lower = [ "s" ]; - switch-applications = [ "Tab" ]; - switch-applications-backward = [ "Tab" ]; - move-to-workspace-1 = [ "exclam" ]; - move-to-workspace-2 = [ "at" ]; - move-to-workspace-3 = [ "numbersign" ]; - move-to-workspace-4 = [ "dollar" ]; - move-to-workspace-5 = [ "percent" ]; - move-to-workspace-6 = [ "asciicircum" ]; - switch-to-workspace-1 = [ "1" ]; - switch-to-workspace-2 = [ "2" ]; - switch-to-workspace-3 = [ "3" ]; - switch-to-workspace-4 = [ "4" ]; - switch-to-workspace-5 = [ "5" ]; - switch-to-workspace-6 = [ "6" ]; - toggle-fullscreen = [ "M" ]; - toggle-maximized = [ "m" ]; - }; - - "org/gnome/tweaks" = { show-extensions-notice = false; }; - - "org/gnome/boxes" = { first-run = false; }; - } // generate_custom_keybindings { - "terminal" = { - binding = "Return"; - command = "kgx"; - name = "Open Terminal"; - }; - "firefox" = { - binding = "f"; - command = "firefox"; - name = "Open Firefox"; - }; - }; -} diff --git a/nixos/hosts/thalassa/eevee/home/default.nix b/nixos/hosts/thalassa/eevee/home/default.nix index 4aaf26f..6bf9335 100644 --- a/nixos/hosts/thalassa/eevee/home/default.nix +++ b/nixos/hosts/thalassa/eevee/home/default.nix @@ -11,11 +11,11 @@ in { home.homeDirectory = "/home/victor"; home.stateVersion = "23.05"; - imports = [ - ./dconf.nix - ./theme.nix - ./neovim.nix - ]; + imports = [ ./theme.nix ./neovim.nix ]; + + dconf.settings."org/gnome/desktop/peripherals/mouse" = { + accel-profile = "flat"; + }; home.packages = with pkgs; [ btop diff --git a/nixos/hosts/thalassa/eevee/networking.nix b/nixos/hosts/thalassa/eevee/networking.nix deleted file mode 100644 index 826668a..0000000 --- a/nixos/hosts/thalassa/eevee/networking.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - networking.networkmanager.enable = true; - networking.firewall.checkReversePath = false; - networking.firewall.enable = false; -}