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`
108 lines
3.4 KiB
Nix
108 lines
3.4 KiB
Nix
{ 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";
|
|
};
|
|
|
|
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 = [];
|
|
};
|
|
|
|
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 = [];
|
|
};
|
|
};
|
|
|
|
config = {
|
|
environment.systemPackages = with pkgs; [
|
|
wayland-utils
|
|
mesa-demos
|
|
vulkan-tools
|
|
];
|
|
|
|
fonts.packages = with pkgs; [
|
|
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 = [];
|
|
};
|
|
|
|
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 = [];
|
|
};
|
|
};
|
|
|
|
config = {
|
|
home.packages = with pkgs; [
|
|
bibata-cursors
|
|
x264
|
|
gparted
|
|
vlc
|
|
iosevka-comfy.comfy
|
|
nerd-fonts.jetbrains-mono
|
|
];
|
|
|
|
dconf.settings = {
|
|
"org/gnome/desktop/interface" = {
|
|
color-scheme = "prefer-dark";
|
|
};
|
|
};
|
|
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
} |