-
Notifications
You must be signed in to change notification settings - Fork 58
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(home-manager): add
gnomeShellTheme
option for gtk (#161)
* feat(home-manager/gtk): add gnome option Add an option to set the gtk theme as gnome shell's theme using the user-theme gnome extension * implemented feedbacks * style(home-manager): format gtk module --------- Co-authored-by: seth <[email protected]>
- Loading branch information
Showing
1 changed file
with
23 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
, ... | ||
}: | ||
let | ||
inherit (lib) ctp mkOption types; | ||
inherit (lib) ctp mkOption mkEnableOption types; | ||
cfg = config.gtk.catppuccin; | ||
enable = cfg.enable && config.gtk.enable; | ||
# "dark" and "light" can be used alongside the regular accents | ||
|
@@ -25,6 +25,7 @@ in | |
default = [ "normal" ]; | ||
description = "Catppuccin tweaks for gtk"; | ||
}; | ||
gnomeShellTheme = mkEnableOption "Catppuccin gtk theme for GNOME Shell"; | ||
|
||
cursor = ctp.mkCatppuccinOpt "gtk cursors" | ||
// { | ||
|
@@ -34,7 +35,7 @@ in | |
|
||
config = lib.mkIf enable { | ||
assertions = [ | ||
(lib.ctp.assertXdgEnabled "gtk") | ||
(ctp.assertXdgEnabled "gtk") | ||
]; | ||
|
||
gtk = { | ||
|
@@ -79,5 +80,25 @@ in | |
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css"; | ||
"gtk-4.0/gtk-dark.css".source = "${gtk4Dir}/gtk-dark.css"; | ||
}; | ||
|
||
home.packages = lib.mkIf cfg.gnomeShellTheme [ pkgs.gnomeExtensions.user-themes ]; | ||
|
||
dconf.settings = lib.mkIf cfg.gnomeShellTheme { | ||
"org/gnome/shell" = { | ||
disable-user-extensions = false; | ||
enabled-extensions = [ | ||
"[email protected]" | ||
]; | ||
}; | ||
"org/gnome/shell/extensions/user-theme" = { | ||
name = config.gtk.theme.name; | ||
}; | ||
"org/gnome/desktop/interface" = { | ||
color-scheme = | ||
if cfg.flavour == "latte" | ||
then "default" | ||
else "prefer-dark"; | ||
}; | ||
}; | ||
}; | ||
} |