uhhh
uhhh the 2nd rendition
This commit is contained in:
parent
132a109da8
commit
565aac949c
37 changed files with 2606 additions and 36 deletions
88
modules/desktop/themes/default.nix
Normal file
88
modules/desktop/themes/default.nix
Normal file
|
@ -0,0 +1,88 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
with lib.my;
|
||||
let
|
||||
cfg = config.modules.desktop.themes;
|
||||
in {
|
||||
options.modules.desktop.themes = with types; {
|
||||
active = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Name of the theme to apply; see modules/desktop/themes for a list of valid options";
|
||||
};
|
||||
|
||||
dark = mkOpt bool false;
|
||||
|
||||
gtkTheme = {
|
||||
name = mkOpt str "";
|
||||
package = mkPackageOption pkgs "gtk" {};
|
||||
};
|
||||
iconTheme = {
|
||||
name = mkOpt str "";
|
||||
package = mkPackageOption pkgs "icon" {};
|
||||
};
|
||||
cursorTheme = {
|
||||
name = mkOpt str "";
|
||||
package = mkPackageOption pkgs "cursor" {};
|
||||
};
|
||||
sddmTheme = {
|
||||
name = mkOpt str "";
|
||||
package = mkPackageOption pkgs "sddm" {};
|
||||
};
|
||||
|
||||
editor = {
|
||||
vscode = {
|
||||
colorTheme = {
|
||||
name = mkOpt str "";
|
||||
extension = mkPackageOption pkgs "extension" {};
|
||||
};
|
||||
iconTheme = {
|
||||
name = mkOpt str "";
|
||||
extension = mkPackageOption pkgs "extension" {};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hyprland = mkOpt (nullOr str) null;
|
||||
};
|
||||
|
||||
config = mkIf (cfg.active != null) {
|
||||
programs.dconf.enable = true;
|
||||
|
||||
hm.dconf = {
|
||||
enable = true;
|
||||
settings."org/gnome/desktop/interface".color-scheme = mkIf cfg.dark "prefer-dark";
|
||||
settings."org/gnome/desktop/interface".gtk-theme = cfg.gtkTheme.name;
|
||||
settings."org/gnome/desktop/interface".icon-theme = cfg.iconTheme.name;
|
||||
settings."org/gnome/desktop/interface".cursor-theme = cfg.cursorTheme.name;
|
||||
|
||||
settings."org/gnome/shell/extensions/user-theme".name = cfg.gtkTheme.name;
|
||||
};
|
||||
|
||||
hm.gtk = {
|
||||
enable = true;
|
||||
cursorTheme = cfg.cursorTheme;
|
||||
iconTheme = cfg.iconTheme;
|
||||
theme = cfg.gtkTheme;
|
||||
};
|
||||
|
||||
hm.services.dunst.iconTheme = {
|
||||
name = cfg.iconTheme.name;
|
||||
package = cfg.iconTheme.package;
|
||||
};
|
||||
|
||||
hm.programs.vscode = {
|
||||
extensions = [
|
||||
cfg.editor.vscode.colorTheme.extension
|
||||
cfg.editor.vscode.iconTheme.extension
|
||||
];
|
||||
userSettings = {
|
||||
"workbench.colorTheme" = cfg.editor.vscode.colorTheme.name;
|
||||
"workbench.iconTheme" = cfg.editor.vscode.iconTheme.name;
|
||||
};
|
||||
};
|
||||
|
||||
hm.wayland.windowManager.hyprland.settings.source = mkIf (cfg.hyprland != null) [ cfg.hyprland ];
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue