From 119f588fb9c9d78ac3c49f19bdbc00f67d2cf6b2 Mon Sep 17 00:00:00 2001 From: Quentin Aristote Date: Wed, 1 Mar 2023 16:04:54 +0100 Subject: nixos: gui: add stylix --- modules/nixos/personal/gui.nix | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) (limited to 'modules/nixos/personal/gui.nix') diff --git a/modules/nixos/personal/gui.nix b/modules/nixos/personal/gui.nix index d4de375..2838863 100644 --- a/modules/nixos/personal/gui.nix +++ b/modules/nixos/personal/gui.nix @@ -1,11 +1,18 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, ... }@extraArgs: -let cfg = config.personal.gui; +let + cfg = config.personal.gui; + wallpaper = pkgs.personal.static.wallpapers.nga-1973-68-1; + importedStylix = extraArgs ? stylix; in { + imports = + lib.optional importedStylix extraArgs.stylix.nixosModules.stylix; + options.personal.gui = { enable = lib.mkEnableOption "GUI"; xserver.enable = lib.mkEnableOption "X server"; i3.enable = lib.mkEnableOption "i3"; + stylix.enable = lib.mkEnableOption "stylix"; }; config = lib.mkIf cfg.enable (lib.mkMerge [ @@ -16,17 +23,17 @@ in { displayManager = { lightdm = { enable = true; - # background = background-image; + background = lib.mkDefault wallpaper; greeters.gtk = { enable = true; - # extraConfig = '' - # user-background = false - # ''; - theme = { + extraConfig = '' + user-background = false + ''; + theme = lib.mkDefault { name = "Arc-Dark"; package = pkgs.arc-theme; }; - iconTheme = { + iconTheme = lib.mkDefault { name = "Breeze-dark"; package = pkgs.breeze-icons; }; @@ -50,5 +57,19 @@ in { displayManager.defaultSession = "xfce+i3"; }; }) + (lib.mkIf cfg.stylix.enable ({ + assertions = let + missingArgAssertion = name: { + assertion = lib.hasAttr name extraArgs; + message = + "attribute ${name} missing: add it in lib.nixosSystem's specialArgs, or set config.personal.gui.stylix.enable to false"; + }; + in [ (missingArgAssertion "stylix") ]; + } // lib.optionalAttrs importedStylix { + stylix = { + image = lib.mkDefault wallpaper; + polarity = lib.mkDefault "dark"; + }; + })) ]); } -- cgit v1.2.3