Files
nix-flake/modules/capabilities/graphics.nix
T

69 lines
2.0 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, ... }: {
home.packages = with pkgs; [
bibata-cursors
x264
gparted
vlc
];
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk = {
enable = true;
};
};
}