diff --git a/common.nix b/common.nix index 66dacee..7bea578 100644 --- a/common.nix +++ b/common.nix @@ -74,7 +74,7 @@ # Shell aliases (work in both bash and fish) environment.shellAliases = { - update = "bash -c 'OLD_SYSTEM=$(readlink /run/current-system) && sudo nixos-rebuild build $@ --flake github:ediblerope/nixos-config && sudo nixos-rebuild switch $@ --flake github:ediblerope/nixos-config && nvd diff $OLD_SYSTEM /run/current-system' --"; + update = "bash -c 'OLD_SYSTEM=$(readlink /run/current-system) && sudo nixos-rebuild build $@ --flake github:ediblerope/nixos-config && sudo nixos-rebuild switch $@ --flake github:ediblerope/nixos-config && nvd diff $OLD_SYSTEM /run/current-system && matugen image ~/.local/share/backgrounds/wallpaper.png --source-color-index 0 -m dark' --"; clean = "sudo nix-collect-garbage -d"; ll = "ls -alh"; clear = "command clear"; diff --git a/home-manager/fred.nix b/home-manager/fred.nix index ee9be06..b42b109 100644 --- a/home-manager/fred.nix +++ b/home-manager/fred.nix @@ -1,5 +1,5 @@ # settings/fred.nix -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, inputs, ... }: { # Define the state version for Home Manager home.stateVersion = "25.11"; @@ -20,7 +20,7 @@ font-family = FiraMono Nerd Font font-size = 11 font-thicken = true - theme = dark:Catppuccin Mocha,light:Catppuccin Latte + theme = wallpaper window-padding-x = 10 window-padding-y = 10 window-padding-balance = true @@ -31,4 +31,19 @@ cursor-style-blink = true ''; + # Matugen config — templates for wallpaper-based color generation + home.file.".config/matugen/config.toml".text = '' + [config] + reload_apps = true + reload_apps_list = { ghostty = "" } + + [templates.ghostty] + input_path = "${inputs.self}/templates/ghostty-colors" + output_path = "~/.config/ghostty/themes/wallpaper" + + [templates.gtk4] + input_path = "${inputs.self}/templates/gtk4-colors.css" + output_path = "~/.config/gtk-4.0/colors.css" + ''; + } diff --git a/settings/gnome.nix b/settings/gnome.nix index 53aed4d..00faa79 100644 --- a/settings/gnome.nix +++ b/settings/gnome.nix @@ -67,6 +67,7 @@ # Minimal titlebars — hide window buttons and shrink headerbar home.file.".config/gtk-4.0/gtk.css".force = true; home.file.".config/gtk-4.0/gtk.css".text = '' + @import url("colors.css"); headerbar { min-height: 0; padding: 0; diff --git a/settings/shell.nix b/settings/shell.nix index 3eacc74..fb8f7bf 100644 --- a/settings/shell.nix +++ b/settings/shell.nix @@ -127,5 +127,23 @@ end function fish_right_prompt; end + + # Set wallpaper and regenerate color theme + function wallpaper + if test (count $argv) -ne 1 + echo "Usage: wallpaper " + return 1 + end + set -l img (realpath "$argv[1]") + if not test -f "$img" + echo "File not found: $img" + return 1 + end + cp "$img" ~/.local/share/backgrounds/wallpaper.png + gsettings set org.gnome.desktop.background picture-uri "file://$HOME/.local/share/backgrounds/wallpaper.png" + gsettings set org.gnome.desktop.background picture-uri-dark "file://$HOME/.local/share/backgrounds/wallpaper.png" + matugen image "$img" --source-color-index 0 -m dark + echo "Wallpaper and colors updated!" + end ''; } diff --git a/templates/ghostty-colors b/templates/ghostty-colors new file mode 100644 index 0000000..08ab7e2 --- /dev/null +++ b/templates/ghostty-colors @@ -0,0 +1,21 @@ +palette = 0={{colors.base16.base00.default.color}} +palette = 1={{colors.base16.base08.default.color}} +palette = 2={{colors.base16.base0b.default.color}} +palette = 3={{colors.base16.base0a.default.color}} +palette = 4={{colors.base16.base0d.default.color}} +palette = 5={{colors.base16.base0e.default.color}} +palette = 6={{colors.base16.base0c.default.color}} +palette = 7={{colors.base16.base05.default.color}} +palette = 8={{colors.base16.base03.default.color}} +palette = 9={{colors.base16.base08.default.color}} +palette = 10={{colors.base16.base0b.default.color}} +palette = 11={{colors.base16.base0a.default.color}} +palette = 12={{colors.base16.base0d.default.color}} +palette = 13={{colors.base16.base0e.default.color}} +palette = 14={{colors.base16.base0c.default.color}} +palette = 15={{colors.base16.base07.default.color}} +background = {{colors.primary.surface.default.color}} +foreground = {{colors.primary.on_surface.default.color}} +cursor-color = {{colors.primary.primary.default.color}} +selection-background = {{colors.primary.primary_container.default.color}} +selection-foreground = {{colors.primary.on_primary_container.default.color}} diff --git a/templates/gtk4-colors.css b/templates/gtk4-colors.css new file mode 100644 index 0000000..6dc4f01 --- /dev/null +++ b/templates/gtk4-colors.css @@ -0,0 +1,15 @@ +@define-color accent_color {{colors.primary.primary.default.color}}; +@define-color accent_bg_color {{colors.primary.primary_container.default.color}}; +@define-color accent_fg_color {{colors.primary.on_primary_container.default.color}}; +@define-color window_bg_color {{colors.primary.surface.default.color}}; +@define-color window_fg_color {{colors.primary.on_surface.default.color}}; +@define-color view_bg_color {{colors.primary.surface_container_low.default.color}}; +@define-color view_fg_color {{colors.primary.on_surface.default.color}}; +@define-color headerbar_bg_color {{colors.primary.surface_container.default.color}}; +@define-color headerbar_fg_color {{colors.primary.on_surface.default.color}}; +@define-color card_bg_color {{colors.primary.surface_container_high.default.color}}; +@define-color card_fg_color {{colors.primary.on_surface.default.color}}; +@define-color sidebar_bg_color {{colors.primary.surface_container.default.color}}; +@define-color sidebar_fg_color {{colors.primary.on_surface.default.color}}; +@define-color popover_bg_color {{colors.primary.surface_container.default.color}}; +@define-color popover_fg_color {{colors.primary.on_surface.default.color}};