Icona app (terminale+freccia resume) con integrazione KDE Plasma/Wayland corretta

- icona generata con agy (verificata): terminale scuro + freccia circolare ciano
- asset PNG multi-dimensione in assets/
- integrazione: app-id GLib 'it.enne2.pi-session-launcher' == stem .desktop == nome icona hicolor
  (su Wayland l'icona di finestra viene dal .desktop, NON da set_icon_from_file)
- install.sh: icone hicolor 48-512px + .desktop con StartupWMClass, rimozione vecchio nome
- binario PyInstaller rebuilt con icona bundled (--add-data)
This commit is contained in:
2026-08-19 13:11:30 +02:00
parent 06d12b0ec0
commit 0c4b0fde3c
10 changed files with 51 additions and 3 deletions
+25 -2
View File
@@ -6,7 +6,8 @@ set -euo pipefail
DIR="$(cd "$(dirname "$0")" && pwd)"
APP="$DIR/pi-session-launcher.py"
BIN="$DIR/dist/pi-session-launcher"
DESKTOP="$HOME/.local/share/applications/pi-session-launcher.desktop"
APP_ID="it.enne2.pi-session-launcher"
DESKTOP="$HOME/.local/share/applications/$APP_ID.desktop"
# usa l'eseguibile portabile se presente, altrimenti lo script python
if [[ -x "$BIN" ]]; then
@@ -24,6 +25,23 @@ fi
chmod +x "$APP" 2>/dev/null || true
# icona nel tema icone KDE (più dimensioni: KDE le scala dal tema)
ICON_SRC="$DIR/assets/pi-session-launcher.png"
if [[ -f "$ICON_SRC" ]]; then
for size in 48 64 128 256 512; do
ICON_DIR="$HOME/.local/share/icons/hicolor/${size}x${size}/apps"
mkdir -p "$ICON_DIR"
if [[ -f "$DIR/assets/pi-session-launcher-${size}.png" ]]; then
cp "$DIR/assets/pi-session-launcher-${size}.png" "$ICON_DIR/$APP_ID.png"
else
cp "$ICON_SRC" "$ICON_DIR/$APP_ID.png"
fi
done
ICON_NAME="$APP_ID"
else
ICON_NAME="utilities-terminal"
fi
mkdir -p "$(dirname "$DESKTOP")"
cat > "$DESKTOP" <<EOF
[Desktop Entry]
@@ -32,13 +50,18 @@ Name=Pi Session Launcher
GenericName=Riprendi sessioni di Pi Agent
Comment=Elenca le sessioni di Pi Agent e le riprende nella loro cartella
Exec=$EXEC
Icon=utilities-terminal
Icon=$ICON_NAME
Terminal=false
Categories=Development;
Keywords=pi;agent;session;resume;
StartupWMClass=$APP_ID
EOF
# rimuove il vecchio desktop entry con nome non allineato (se esiste)
rm -f "$HOME/.local/share/applications/pi-session-launcher.desktop"
echo "✓ Installato: $DESKTOP"
echo " Eseguibile: $EXEC"
echo " Icona: $ICON_NAME"
echo " Cerca 'Pi Session Launcher' nel menu applicazioni KDE."
echo " (Per rimuovere: $0 --uninstall)"