nixos/nixos/stylix/stylix.nix
2026-08-16 01:47:37 +02:00

98 lines
1.9 KiB
Nix

{
config,
inputs,
pkgs,
lib,
...
}:
let
keep = [
"neovim"
"qt"
"gtk"
"hyprland"
"foot"
"fuzzel"
"nixcord"
"console"
];
dir = "${inputs.stylix}/modules";
drop = builtins.filter (n: !(builtins.elem n keep)) (
builtins.attrNames (lib.filterAttrs (_: t: t == "directory") (builtins.readDir dir))
);
disable =
platform:
map (n: "${dir}/${n}/${platform}.nix") (
builtins.filter (n: builtins.pathExists "${dir}/${n}/${platform}.nix") drop
);
palette = "oxocarbon-dark";
stylixPalette = lib.strings.concatStrings [
"${pkgs.base16-schemes}/share/themes/"
"${palette}"
".yaml"
];
in
{
disabledModules = disable "nixos";
stylix.opacity = {
terminal = 1.0;
desktop = 1.0;
popups = 1.0;
};
stylix.cursor = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
size = 24;
};
stylix.icons = {
enable = true;
dark = "Papirus-Dark";
light = "Papirus-Light";
package = pkgs.papirus-icon-theme;
};
stylix = {
enable = true;
autoEnable = false;
base16Scheme = stylixPalette;
polarity = "dark";
image = ./wallpaper.png;
targets = {
console.enable = true;
gtk.enable = true;
qt.enable = true;
qt.platform = lib.mkForce "qtct";
nixvim = {
enable = true;
plugin = "base16-nvim";
};
};
fonts = {
sizes = {
terminal = 12;
popups = 10;
desktop = 10;
};
serif = {
package = config.stylix.fonts.monospace.package;
name = config.stylix.fonts.monospace.name;
};
sansSerif = {
package = config.stylix.fonts.monospace.package;
name = config.stylix.fonts.monospace.name;
};
monospace = {
name = "Meslo LG M DZ";
package = pkgs.meslo-lg;
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
};
};
}