From e3eaebf08d8a08a7d2bc6e3c5a10d299409b3cb7 Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sat, 5 Oct 2024 14:06:34 +0200 Subject: [PATCH] Move x11 config into separate file --- modules/nixos/x11/default.nix | 56 +++++++++++++++++++++++++++ systems/x86_64-linux/aspi/default.nix | 36 ++--------------- 2 files changed, 59 insertions(+), 33 deletions(-) create mode 100644 modules/nixos/x11/default.nix diff --git a/modules/nixos/x11/default.nix b/modules/nixos/x11/default.nix new file mode 100644 index 0000000..289027b --- /dev/null +++ b/modules/nixos/x11/default.nix @@ -0,0 +1,56 @@ +{ + # Snowfall Lib provides a customized `lib` instance with access to your flake's library + # as well as the libraries available from your flake's inputs. + lib, + # An instance of `pkgs` with your overlays and packages applied is also available. + pkgs, + # You also have access to your flake's inputs. + inputs, + + # Additional metadata is provided by Snowfall Lib. + namespace, # The namespace used for your flake, defaulting to "internal" if not set. + system, # The system architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). + format, # A normalized name for the system target (eg. `iso`). + virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. + systems, # An attribute map of your defined hosts. + + # All other arguments come from the module system. + config, + ... +}: + +let + cfg = config.modules.x11; +in +{ + options.modules.x11 = { + enable = lib.mkOption { default = false; }; + }; + + config = lib.mkIf cfg.enable { + services.xserver.windowManager.i3.enable = true; + services.xserver.windowManager.i3.package = pkgs.i3-gaps; + + services.xserver.wacom.enable = true; + + # TODO: move into i3 module + programs.xss-lock = { + # responds to "loginctl lock-session" via dbus + enable = true; + lockerCommand = "${pkgs.i3lock}/bin/i3lock --ignore-empty-password --color=000000"; + }; + # services.xserver.xautolock = { # TODO: does not work + # enable = true; + # time = 1; + # }; + + # Configure keymap in X11 + services.xserver = { + enable = true; + displayManager.gdm.enable = true; + xkb.layout = "de"; + xkb.variant = ""; + }; + }; +} diff --git a/systems/x86_64-linux/aspi/default.nix b/systems/x86_64-linux/aspi/default.nix index 19a7f54..d93bb59 100644 --- a/systems/x86_64-linux/aspi/default.nix +++ b/systems/x86_64-linux/aspi/default.nix @@ -75,6 +75,7 @@ pcmanfm.enable = true; # wayland.enable = true; # hyprland.enable = true; + x11.enable = true; }; nix.settings.auto-optimise-store = true; @@ -105,51 +106,20 @@ options = "--delete-older-than 30d"; }; - # Enable the XFCE Desktop Environment. security.pam.services.gdm.enableGnomeKeyring = true; # services.displayManager.sddm.wayland.enable = true; - # services.xserver.desktopManager = { - # xterm.enable = false; - # xfce = { - # enable = true; - # noDesktop = true; - # enableXfwm = false; - # }; - # }; - # services.xserver.displayManager.gdm.enable = true; - services.xserver.windowManager.i3.enable = true; - services.xserver.windowManager.i3.package = pkgs.i3-gaps; - - services.xserver.wacom.enable = true; - services.blueman.enable = true; services.upower.enable = true; - # TODO: move into i3 module - programs.xss-lock = { - # responds to "loginctl lock-session" via dbus - enable = true; - lockerCommand = "${pkgs.i3lock}/bin/i3lock --ignore-empty-password --color=000000"; - }; - # services.xserver.xautolock = { # TODO: does not work - # enable = true; - # time = 1; - # }; + programs.steam.enable = true; + programs.dconf.enable = true; services.logind.lidSwitch = "lock"; services.logind.lidSwitchDocked = "lock"; programs.kdeconnect.enable = true; - # Configure keymap in X11 - services.xserver = { - enable = true; - displayManager.gdm.enable = true; - xkb.layout = "de"; - xkb.variant = ""; - }; - # Enable touchpad support (enabled default in most desktopManager). services.libinput.enable = true;