summaryrefslogtreecommitdiff
path: root/common/modules/matugen/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'common/modules/matugen/default.nix')
-rw-r--r--common/modules/matugen/default.nix186
1 files changed, 186 insertions, 0 deletions
diff --git a/common/modules/matugen/default.nix b/common/modules/matugen/default.nix
new file mode 100644
index 0000000..29599bd
--- /dev/null
+++ b/common/modules/matugen/default.nix
@@ -0,0 +1,186 @@
+{
+ homeManager,
+ inputs,
+ moduleNameSpace,
+ ...
+}:
+
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.${moduleNameSpace}.matugen;
+ link_zen = pkgs.writeShellScript "link_zen" ''
+ export PROFILE_DIR=$(find ~/.config/zen/ -maxdepth 1 -type d -name "*.Default Profile" | head -n 1)
+ mkdir -p "$PROFILE_DIR/chrome"
+ ln -sf ~/.cache/wallust/userChrome.css "$PROFILE_DIR/chrome/userChrome.css"
+ '';
+ update_gtkcolors = pkgs.writeShellScript "update_gtkcolors" ''
+ dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'"
+ sleep 0.1
+ dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
+
+ systemctl --user restart xdg-desktop-portal-gtk
+ '';
+in
+{
+ imports = [ ./templates ];
+
+ options.${moduleNameSpace}.matugen = {
+ enable = lib.mkEnableOption "Enable Dynamic colors";
+ };
+
+ config = lib.mkIf cfg.enable {
+ programs.wallust = {
+ enable = true;
+ settings = {
+ backend = "wal";
+ color_space = "labmixed";
+ palette = "dark16";
+ fallback_generator = "interpolate";
+ threshold = 11;
+ check_contrast = true;
+ templates = {
+ foot = {
+ template = "foot-colors.ini";
+ target = "~/.config/foot/colors.ini";
+ };
+ alacritty = {
+ template = "alacritty-colors.toml";
+ target = "~/.config/alacritty/colors.toml";
+ };
+ ghostty = {
+ template = "ghostty-colors.conf";
+ target = "~/.config/ghostty/colors.conf";
+ };
+ zen = {
+ template = "userChrome.css";
+ target = "~/.cache/wallust/userChrome.css";
+ };
+ xresources = {
+ template = "colors-xresources";
+ target = "~/.config/x11/matugen.Xresources";
+ };
+ };
+ };
+ };
+
+ xdg.configFile = {
+ "matugen/config.toml" = {
+ # enable = !config.programs.noctalia-shell.enable;
+ text =
+ # toml
+ ''
+ [config]
+ ${lib.optionalString config.beeMods.terminal.alacritty ''
+ [templates.alacritty]
+ input_path = '~/.config/matugen/templates/alacritty-colors.toml'
+ output_path = '~/.config/wallust/templates/alacritty-colors.toml'
+ ''}
+
+ ${lib.optionalString config.beeMods.terminal.foot ''
+ [templates.foot]
+ input_path = '~/.config/matugen/templates/foot-colors.ini'
+ output_path = '~/.config/wallust/templates/foot-colors.ini'
+ ''}
+
+ ${lib.optionalString config.beeMods.terminal.ghostty ''
+ [templates.ghostty]
+ input_path = '~/.config/matugen/templates/ghostty.conf'
+ output_path = '~/.config/wallust/templates/ghostty-colors.conf'
+ ''}
+
+ ${lib.optionalString config.programs.zathura.enable ''
+ [templates.zathura]
+ input_path = '~/.config/matugen/templates/zathura.toml'
+ output_path = '~/.config/zathura/matugen'
+ ''}
+
+ ${lib.optionalString config.programs.swaylock.enable ''
+ [templates.swaylock]
+ input_path = '~/.config/matugen/templates/swaylock-colors'
+ output_path = '~/.config/swaylock/swaylock-colors'
+ ''}
+
+ ${lib.optionalString config.beeMods.mango.enable ''
+ [templates.mango]
+ input_path = '~/.config/matugen/templates/mango.conf'
+ output_path = '~/.config/mango/mango-colors.conf'
+ post_hook = 'mmsg -d reload_config'
+ ''}
+
+ ${lib.optionalString config.programs.btop.enable ''
+ [templates.btop]
+ input_path = '~/.config/matugen/templates/btop.theme'
+ output_path = '~/.config/btop/themes/matugen.theme'
+ ''}
+
+ ${lib.optionalString config.programs.yazi.enable ''
+ [templates.yazi]
+ input_path = '~/.config/matugen/templates/yazi.toml'
+ output_path = '~/.config/yazi/theme.toml'
+ ''}
+
+
+ ${lib.optionalString config.beeMods.mango.enable ''
+ [templates.Xresources]
+ input_path = "~/.config/matugen/templates/colors-xresources"
+ output_path = "~/.config/wallust/templates/colors-xresources"
+ ''}
+
+
+ ${lib.optionalString config.programs.vesktop.enable ''
+ [templates.discord]
+ input_path = "~/.config/matugen/templates/discord.css"
+ output_path = "~/.config/vesktop/themes/midnight.css"
+ ''}
+
+ ${lib.optionalString config.beeMods.mango.waybar ''
+ [templates.waybar]
+ input_path = "~/.config/matugen/templates/waybar.css"
+ output_path = "~/.config/waybar/colors.css"
+ # post_hook = "pkill -SIGUSR2 waybar"
+ ''}
+
+ [templates.wlogout]
+ input_path = "~/.config/matugen/templates/wlogout.css"
+ output_path = "~/.config/wlogout/colors.css"
+
+ [templates.dunst]
+ input_path = '~/.config/matugen/templates/dunstrc'
+ output_path = '~/.config/dunst/dunstrc'
+ post_hook = "dunstctl reload"
+
+ ${lib.optionalString config.programs.rofi.enable ''
+ [templates.rofi]
+ input_path = '~/.config/matugen/templates/rofi-colors.rasi'
+ output_path = '~/.config/rofi/shared/colors.rasi'
+ ''}
+
+ ${lib.optionalString config.gtk.enable ''
+ [templates.gtk3]
+ input_path = '~/.config/matugen/templates/colors.css'
+ output_path = '~/.config/gtk-3.0/colors.css'
+
+ [templates.gtk4]
+ input_path = '~/.config/matugen/templates/colors.css'
+ output_path = '~/.config/gtk-4.0/colors.css'
+ post_hook = "${update_gtkcolors}"
+ ''}
+
+ [templates.zed]
+ input_path = '~/.config/matugen/templates/zed.json'
+ output_path = '~/.config/zed/themes/matugen.json'
+
+ [templates.zen]
+ input_path = '~/.config/matugen/templates/zen.css'
+ output_path = '~/.config/wallust/templates/userChrome.css'
+ post_hook = "${link_zen}"
+ '';
+ };
+ };
+ };
+}