sneeuwvlok/modules/home/themes/default.nix

51 lines
1.4 KiB
Nix

{ config, lib, pkgs, user, ... }:
let
inherit (lib) mkIf mkDefault;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) nullOr enum;
cfg = config.modules.${user}.themes;
in {
options.modules.${user}.themes = {
enable = mkEnableOption "Theming (Stylix)";
theme = mkOption {
type = nullOr (enum [ "everforest" "catppuccin-latte" "chalk" ]);
default = "everforest";
description = "The theme to set the system to";
example = "everforest";
};
polarity = mkOption {
type = nullOr (enum [ "dark" "light" ]);
default = "dark";
description = "determine if system is in dark or light mode";
};
};
config = mkIf (cfg.enable) {
modules.theming.enable = true;
environment.sessionVariables = { QT_QPA_PLATFORMTHEME = "kde6"; };
# home-manager.users.${user} = {
# xdg.configFile."menus/applications.menu".source = "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
# qt = {
# enable = true;
# platformTheme = "kde6";
# # style = {
# # package = pkgs.kdePackages.breeze;
# # name = mkDefault "Breeze";
# # };
# };
# };
stylix = {
base16Scheme = "${pkgs.base16-schemes}/share/themes/${cfg.theme}.yaml";
image = ./${cfg.theme}.jpg;
polarity = cfg.polarity;
};
};
}