- 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)
68 lines
1.9 KiB
Bash
Executable File
68 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# install.sh — Pi Session Launcher
|
|
# Crea la voce nel menu applicazioni KDE (.desktop) e rende eseguibile lo script.
|
|
set -euo pipefail
|
|
|
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
APP="$DIR/pi-session-launcher.py"
|
|
BIN="$DIR/dist/pi-session-launcher"
|
|
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
|
|
EXEC="$BIN"
|
|
else
|
|
EXEC="$APP"
|
|
fi
|
|
|
|
# sintassi: ./install.sh [--uninstall]
|
|
if [[ "${1:-}" == "--uninstall" ]]; then
|
|
rm -f "$DESKTOP"
|
|
echo "Rimossa la voce di menu: $DESKTOP"
|
|
exit 0
|
|
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]
|
|
Type=Application
|
|
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=$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)"
|