From 59423f3299a50c09a09e57a83c4be80c2d4f4f64 Mon Sep 17 00:00:00 2001 From: ediblerope Date: Mon, 5 Jan 2026 10:17:05 +0000 Subject: [PATCH] Update FredOS-Gaming.nix --- hosts/FredOS-Gaming.nix | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/hosts/FredOS-Gaming.nix b/hosts/FredOS-Gaming.nix index 559c94f..5cae9da 100644 --- a/hosts/FredOS-Gaming.nix +++ b/hosts/FredOS-Gaming.nix @@ -26,6 +26,7 @@ serviceConfig = { Type = "oneshot"; RemainAfterExit = false; + Nice = 19; # Run at low priority }; script = '' @@ -33,6 +34,9 @@ DESKTOP_DIR="$HOME/.local/share/applications" ICON_DIR="$HOME/.local/share/icons/hicolor" + # Wait for system to settle + sleep 10 + # Create icon theme index if it doesn't exist if [ ! -f "$ICON_DIR/index.theme" ]; then mkdir -p "$ICON_DIR" @@ -65,14 +69,19 @@ EOF fi - # Wait a bit for Steam to create desktop files - sleep 5 + # Track if we made any changes + changes_made=false # Search all desktop files for steam_icon references ${pkgs.gnugrep}/bin/grep -l "Icon=steam_icon_" "$DESKTOP_DIR"/*.desktop 2>/dev/null | while read desktop_file; do # Extract the app_id from the Icon line app_id=$(${pkgs.gnugrep}/bin/grep "Icon=steam_icon_" "$desktop_file" | ${pkgs.gnused}/bin/sed 's/Icon=steam_icon_//') + # Check if icon already exists + if [ -f "$ICON_DIR/256x256/apps/steam_icon_$app_id.png" ]; then + continue + fi + # Find the actual icon file icon_file=$(find "$STEAM_DIR/appcache/librarycache/$app_id" -name "*.jpg" 2>/dev/null | head -n 1) @@ -83,12 +92,15 @@ cp "$icon_file" "$ICON_DIR/$size/apps/steam_icon_$app_id.png" done + changes_made=true echo "Fixed icon for $(basename "$desktop_file"): App ID $app_id" fi done - # Update icon cache - ${pkgs.gtk3}/bin/gtk-update-icon-cache -f "$ICON_DIR" 2>/dev/null || true + # Only update cache if we made changes + if [ "$changes_made" = true ]; then + ${pkgs.gtk3}/bin/gtk-update-icon-cache -f "$ICON_DIR" 2>/dev/null || true + fi ''; };