69 lines
2.0 KiB
Nix
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;
|
|
};
|
|
};
|
|
} |