fix problems rebuilding, make niri and noctalia more HM friendly

added `inputs` to `extraSpecialArgs`, giving homeModules access to helper functions
cleaned up the logic for the stylix file, removing the final `sharedModules` in the process in favour of `home-manager.users.grey`
This commit is contained in:
greyweather committed 2026-08-30 00:31:13 +01:00
1 parent 49985ce9a3
commit 06e958ae71
8 files changed
+133 -79

No files matched your search

+77 -53
View File
@@ -1,36 +1,34 @@
{ inputs, self, ... }: {
flake.nixosModules.graphics = { config, pkgs, lib, ... }: {
options = {
components = {
displayManager = lib.mkOption {
# enum that dynamically populates itself with the contents of the display-managers directory
type = lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/display-managers")
));
default = "lightdm";
};
options.components = {
displayManager = lib.mkOption {
# enum that dynamically populates itself with the contents of the display-managers directory
type = lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/display-managers")
));
default = "lightdm";
};
windowManagers = lib.mkOption {
type = lib.types.either (lib.types.listOf (
lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/window-managers")
))
)) (lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
windowManagers = lib.mkOption {
type = lib.types.either (lib.types.listOf (
lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/window-managers")
)));
default = [];
};
))
)) (lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/window-managers")
)));
default = [];
};
shells = lib.mkOption {
type = lib.types.either (lib.types.listOf (
lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/shells")
))
)) (lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/shells")
)));
default = [];
};
shells = lib.mkOption {
type = lib.types.either (lib.types.listOf (
lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/shells")
))
)) (lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/shells")
)));
default = [];
};
};
@@ -48,37 +46,63 @@
};
};
flake.homeModules.graphics = { config, pkgs, ... }: {
home.packages = with pkgs; [
bibata-cursors
x264
gparted
vlc
iosevka-comfy.comfy
nerd-fonts.jetbrains-mono
];
flake.homeModules.graphics = { config, pkgs, lib, ... }: {
options.components = {
windowManagers = lib.mkOption {
type = lib.types.either (lib.types.listOf (
lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/window-managers")
))
)) (lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/window-managers")
)));
default = [];
};
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
shells = lib.mkOption {
type = lib.types.either (lib.types.listOf (
lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/shells")
))
)) (lib.types.enum (map (name: lib.removeSuffix ".nix" name) (
builtins.attrNames (builtins.readDir "${self}/modules/components/shells")
)));
default = [];
};
};
home.pointerCursor = {
enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 22;
gtk.enable = true;
x11.enable = true;
};
config = {
home.packages = with pkgs; [
bibata-cursors
x264
gparted
vlc
iosevka-comfy.comfy
nerd-fonts.jetbrains-mono
];
gtk = {
enable = true;
colorScheme = "dark";
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk2.configLocation = "${config.home.homeDirectory}/.config/.gtkrc-2.0"; # prevents file conflicts between this and other parts of the nix config
gtk2.force = true;
home.pointerCursor = {
enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 22;
gtk.enable = true;
x11.enable = true;
};
gtk = {
enable = true;
colorScheme = "dark";
gtk2.configLocation = "${config.home.homeDirectory}/.config/.gtkrc-2.0"; # prevents file conflicts between this and other parts of the nix config
gtk2.force = true;
};
};
};
}