diff --git a/home-manager/fred.nix b/home-manager/fred.nix index a13f0e9..3b505b3 100644 --- a/home-manager/fred.nix +++ b/home-manager/fred.nix @@ -47,6 +47,11 @@ [templates.gtk4] input_path = "${inputs.self}/templates/gtk4-colors.css" output_path = "${config.home.homeDirectory}/.config/gtk-4.0/colors.css" + + [templates.recolor-folders] + input_path = "${inputs.self}/templates/recolor-folders.sh" + output_path = "${config.home.homeDirectory}/.local/share/matugen/recolor-folders.sh" + post_hook = "bash ${config.home.homeDirectory}/.local/share/matugen/recolor-folders.sh" ''; } diff --git a/settings/gnome.nix b/settings/gnome.nix index 2270359..3ac24c6 100644 --- a/settings/gnome.nix +++ b/settings/gnome.nix @@ -22,6 +22,7 @@ adwaita-icon-theme gnome-themes-extra adwaita-icon-theme-legacy + papirus-icon-theme adw-gtk3 matugen ]; @@ -41,7 +42,7 @@ programs.dconf.profiles.user.databases = [{ settings = { "org/gnome/desktop/interface" = { - icon-theme = "Adwaita"; + icon-theme = "WallpaperAdwaita"; cursor-theme = "Adwaita"; }; "org/gnome/mutter" = { diff --git a/templates/recolor-folders.sh b/templates/recolor-folders.sh new file mode 100644 index 0000000..a0503df --- /dev/null +++ b/templates/recolor-folders.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# Generated by matugen — recolors Adwaita folder icons with wallpaper palette +# and pulls in Papirus mimetype icons for better file type distinction +ICON_DIR="$HOME/.local/share/icons/WallpaperAdwaita" +ADWAITA="/run/current-system/sw/share/icons/Adwaita" +PAPIRUS="/run/current-system/sw/share/icons/Papirus-Dark" + +mkdir -p "$ICON_DIR/scalable/places" + +# Create index.theme +cat > "$ICON_DIR/index.theme" << 'THEME' +[Icon Theme] +Name=WallpaperAdwaita +Comment=Adwaita with wallpaper-colored folders and Papirus mimetypes +Inherits=Adwaita,hicolor +DisplayDepth=32 + +[scalable/places] +Size=128 +MinSize=16 +MaxSize=512 +Type=Scalable +Context=Places + +[64x64/mimetypes] +Size=64 +MinSize=16 +MaxSize=512 +Type=Scalable +Context=MimeTypes +THEME + +# Recolor all Adwaita place SVGs with wallpaper palette +for svg in "$ADWAITA/scalable/places"/*.svg; do + name=$(basename "$svg") + sed \ + -e 's/#438de6/{{colors.primary_container.default.hex}}/gi' \ + -e 's/#62a0ea/{{colors.primary_fixed_dim.default.hex}}/gi' \ + -e 's/#a4caee/{{colors.primary_fixed.default.hex}}/gi' \ + -e 's/#afd4ff/{{colors.primary_fixed.default.hex}}/gi' \ + -e 's/#c0d5ea/{{colors.primary_fixed.default.hex}}/gi' \ + "$svg" > "$ICON_DIR/scalable/places/$name" +done + +# Copy Papirus mimetype icons for better file type distinction +if [ -d "$PAPIRUS/64x64/mimetypes" ]; then + mkdir -p "$ICON_DIR/64x64/mimetypes" + cp -a "$PAPIRUS/64x64/mimetypes"/* "$ICON_DIR/64x64/mimetypes/" +fi + +# Update icon cache +gtk-update-icon-cache -f "$ICON_DIR" 2>/dev/null || true