NixOS/stylix.nix

49 lines
1.3 KiB
Nix

{
pkgs,
lib,
config,
...
}:
let
cfg = config.my.stylix;
mkScheme = color: name: polarity: image: {
inherit name polarity image;
iconPackage = pkgs.papirus-icon-theme.override { inherit color; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/${name}.yaml";
};
schemes = {
who = mkScheme "orange" "catppuccin-frappe" "dark" ./wallpapers/Nikolay_Kasatkin_Who.jpeg;
jesus = mkScheme "red" "equilibrium-light" "light" ./wallpapers/jesus.png;
ballerinas = mkScheme "brown" "mocha" "dark" ./wallpapers/Waay-Ballerinas.jpeg;
};
scheme = schemes.ballerinas;
in
{
options.my.stylix.enable = lib.mkEnableOption "enable";
config = {
stylix = {
inherit (scheme) image polarity base16Scheme;
enable = cfg.enable;
targets.qt.platform = lib.mkForce "qtct";
};
home-manager.users.jawz = {
gtk = lib.mkIf (!cfg.enable) {
iconTheme = scheme.iconPackage;
};
stylix = {
enable = cfg.enable;
iconTheme = {
enable = cfg.enable;
package = scheme.iconPackage;
light = "Papirus-Light";
dark = "Papirus-Dark";
};
targets.librewolf = {
firefoxGnomeTheme.enable = cfg.enable;
profileNames = [ "jawz" ];
};
};
};
};
}