This commit is contained in:
alsaiduq-lab 2025-03-28 13:48:04 -06:00
parent a068b3c11a
commit 835e79ffcf
2 changed files with 61 additions and 40 deletions

View file

@ -33,7 +33,7 @@ in {
export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:$XDG_DATA_DIRS" export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:$XDG_DATA_DIRS"
${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" || echo "Failed to set GTK theme" > /tmp/theme-debug.log ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" || echo "Failed to set GTK theme" > /tmp/theme-debug.log
${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Icons-Dark" || ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark" || echo "Failed to set icon theme" > /tmp/theme-debug.log ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Magna-Glassy-Dark-Icons" || ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark" || echo "Failed to set icon theme" > /tmp/theme-debug.log
${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" || echo "Failed to set cursor theme" > /tmp/theme-debug.log ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" || echo "Failed to set cursor theme" > /tmp/theme-debug.log
''; '';
}; };
@ -55,7 +55,7 @@ in {
}; };
iconTheme = { iconTheme = {
package = customPkgs.vivid-icons; package = customPkgs.vivid-icons;
name = "Vivid-Icons-Dark"; name = "Vivid-Magna-Glassy-Dark-Icons";
}; };
cursorTheme = { cursorTheme = {
package = pkgs.capitaine-cursors; package = pkgs.capitaine-cursors;
@ -83,7 +83,7 @@ in {
environment.etc = { environment.etc = {
"gtk-2.0/gtkrc".text = '' "gtk-2.0/gtkrc".text = ''
gtk-theme-name="Tokyonight-Dark" gtk-theme-name="Tokyonight-Dark"
gtk-icon-theme-name="Vivid-Icons-Dark" gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons"
gtk-font-name="Clear Sans 10" gtk-font-name="Clear Sans 10"
gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
@ -92,25 +92,25 @@ in {
[Settings] [Settings]
gtk-application-prefer-dark-theme=1 gtk-application-prefer-dark-theme=1
gtk-theme-name=Tokyonight-Dark gtk-theme-name=Tokyonight-Dark
gtk-icon-theme-name=Vivid-Icons-Dark gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons"
gtk-font-name=Clear Sans 10 gtk-font-name=Clear Sans 10
gtk-cursor-theme-name=capitaine-cursors gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
''; '';
"gtk-4.0/settings.ini".text = '' "gtk-4.0/settings.ini".text = ''
[Settings] [Settings]
gtk-application-prefer-dark-theme=1 gtk-application-prefer-dark-theme=1
gtk-theme-name=Tokyonight-Dark gtk-theme-name=Tokyonight-Dark
gtk-icon-theme-name=Vivid-Icons-Dark gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons"
gtk-font-name=Clear Sans 10 gtk-font-name=Clear Sans 10
gtk-cursor-theme-name=capitaine-cursors gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
''; '';
}; };
environment.variables = { environment.variables = {
GTK_THEME = "Tokyonight-Dark"; GTK_THEME = "Tokyonight-Dark";
ICON_THEME = "Vivid-Icons-Dark"; ICON_THEME = "Vivid-Magna-Glassy-Dark-Icons";
XCURSOR_THEME = "capitaine-cursors"; XCURSOR_THEME = "capitaine-cursors";
XCURSOR_SIZE = "24"; XCURSOR_SIZE = "24";
}; };
@ -148,7 +148,7 @@ in {
programs.dconf.profiles.user.databases = [{ programs.dconf.profiles.user.databases = [{
settings = { settings = {
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
icon-theme = "Vivid-Icons-Dark"; icon-theme = "Vivid-Magna-Glassy-Dark-Icons";
gtk-theme = "Tokyonight-Dark"; gtk-theme = "Tokyonight-Dark";
cursor-theme = "capitaine-cursors"; cursor-theme = "capitaine-cursors";
}; };

View file

@ -2,9 +2,8 @@
lib, lib,
stdenv, stdenv,
fetchFromGitHub, fetchFromGitHub,
hicolor-icon-theme,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation {
pname = "vivid-icons"; pname = "vivid-icons";
version = "unstable-${builtins.substring 0 7 "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"}"; version = "unstable-${builtins.substring 0 7 "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"}";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -13,22 +12,34 @@ stdenv.mkDerivation rec {
rev = "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"; rev = "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67";
sha256 = "UlZkxeWb2n5TexaQymeyEqAjKwDfonTXO2OYjICHl+U="; sha256 = "UlZkxeWb2n5TexaQymeyEqAjKwDfonTXO2OYjICHl+U=";
}; };
buildInputs = [hicolor-icon-theme]; buildInputs = [ ];
installPhase = '' installPhase = ''
echo "Source contents at root:"
ls -la .
mkdir -p $out/share/icons mkdir -p $out/share/icons
for dir in Vivid-Icons-*; do cd "Vivid Icons Themes"
echo "Contents of Vivid Icons Themes:"
ls -la .
for dir in Vivid-Dark-Icons Vivid-Glassy-Dark-Icons Vivid-Magna-Glassy-Dark-Icons; do
if [ -d "$dir" ]; then if [ -d "$dir" ]; then
theme_name=$(basename "$dir") echo "Processing: $dir"
theme_name="$dir"
dest_dir="$out/share/icons/$theme_name" dest_dir="$out/share/icons/$theme_name"
cp -r "$dir" "$dest_dir" mkdir -p "$dest_dir"
find "$dir" -type d -regex ".*/[0-9]+" | while read -r size_dir; do
size=$(basename "$size_dir")
category=$(basename "$(dirname "$size_dir")")
target_dir="$dest_dir/''${size}x''${size}/$category"
mkdir -p "$target_dir"
cp -rv "$size_dir"/* "$target_dir/"
done
echo "[Icon Theme]" > "$dest_dir/index.theme" echo "[Icon Theme]" > "$dest_dir/index.theme"
echo "Name=$theme_name" >> "$dest_dir/index.theme" echo "Name=$theme_name" >> "$dest_dir/index.theme"
echo "Comment=$theme_name icons" >> "$dest_dir/index.theme" echo "Comment=$theme_name icons" >> "$dest_dir/index.theme"
echo "Inherits=hicolor" >> "$dest_dir/index.theme"
directories="" directories=""
for size_dir in "$dest_dir"/*; do for size_dir in "$dest_dir"/*; do
if [ -d "$size_dir" ]; then if [ -d "$size_dir" ]; then
size=$(basename "$size_dir") size=$(basename "$size_dir") # e.g., "22x22"
if [[ "$size" =~ ^[0-9]+x[0-9]+$ ]]; then if [[ "$size" =~ ^[0-9]+x[0-9]+$ ]]; then
directories="$directories''${directories:+,}$size" directories="$directories''${directories:+,}$size"
echo "[$size]" >> "$dest_dir/index.theme" echo "[$size]" >> "$dest_dir/index.theme"
@ -38,17 +49,27 @@ stdenv.mkDerivation rec {
fi fi
fi fi
done done
if [ -z "$directories" ]; then
echo "No size dirs found for $theme_name, adding fallback"
directories="scalable"
echo "[scalable]" >> "$dest_dir/index.theme"
echo "Size=48" >> "$dest_dir/index.theme"
echo "Context=Actions" >> "$dest_dir/index.theme"
echo "Type=Scalable" >> "$dest_dir/index.theme"
fi
echo "Directories=$directories" >> "$dest_dir/index.theme" echo "Directories=$directories" >> "$dest_dir/index.theme"
else
echo "Warning: $dir not found in Vivid Icons Themes"
fi fi
done done
echo "Installed themes:" echo "Installed themes:"
ls -la $out/share/icons/ ls -la $out/share/icons/
''; '';
meta = with lib; { meta = with lib; {
description = "Vivid Icons Theme"; description = "Vivid Icons Theme";
homepage = "https://github.com/L4ki/Vivid-Plasma-Themes"; homepage = "https://github.com/L4ki/Vivid-Plasma-Themes";
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.all; platforms = platforms.all;
maintainers = with maintainers; ["Cobray"]; maintainers = with maintainers; [ "Cobray" ];
}; };
} }