diff --git a/base/gui-programs.nix b/base/gui-programs.nix index 1815fe3..dfc4bfc 100644 --- a/base/gui-programs.nix +++ b/base/gui-programs.nix @@ -1,8 +1,26 @@ -{ pkgs, lib, config, ... }: +{ pkgs, lib, config, options, ... }: { - options.my.gui.enable = lib.mkEnableOption "System has some kind of screen attached"; + options.my.gui = { + enable = lib.mkEnableOption "System has some kind of screen attached"; + isNvidia = lib.mkEnableOption "System a NVIDIA GPU"; + }; config = lib.mkIf config.my.gui.enable { + my.displayManager.sddm.enable = true; + + services = { + xserver = { + enable = true; + # NOTE: could use `mkOptionDefault` but this feels more explicit + videoDrivers = options.services.xserver.videoDrivers.default + ++ lib.optional config.my.gui.isNvidia "nvidia"; + windowManager.i3.enable = true; + layout = "fr"; + xkbVariant = "us"; + libinput.enable = true; + }; + }; + environment.systemPackages = with pkgs; [ element-desktop feh diff --git a/hosts/boreal/default.nix b/hosts/boreal/default.nix index 439cde1..e41608f 100644 --- a/hosts/boreal/default.nix +++ b/hosts/boreal/default.nix @@ -91,18 +91,11 @@ in permitRootLogin = "no"; passwordAuthentication = false; }; - - xserver = { - enable = true; - videoDrivers = [ "nvidia" ]; - windowManager.i3.enable = true; - layout = "fr"; - xkbVariant = "us"; - libinput.enable = true; - }; }; - my.displayManager.sddm.enable = true; - my.gui.enable = true; + my.gui = { + enable = true; + isNvidia = true; + }; my.wakeonwlan.interfaces.phy0.methods = [ "magic-packet" diff --git a/hosts/zephyrus/default.nix b/hosts/zephyrus/default.nix index a66c770..659a6bb 100644 --- a/hosts/zephyrus/default.nix +++ b/hosts/zephyrus/default.nix @@ -46,13 +46,6 @@ in }; services = { - xserver = { - enable = true; - windowManager.i3.enable = true; - layout = "fr"; - xkbVariant = "us"; - libinput.enable = true; - }; tlp = { settings = { START_CHARGE_THRESH_BAT0 = 70; @@ -61,7 +54,6 @@ in }; fwupd.enable = true; }; - my.displayManager.sddm.enable = true; my.gui.enable = true; environment.systemPackages = with pkgs; [