Aggiunta rinomina sessione (F2), eseguibile portabile PyInstaller, repo pubblico su Gitea

- rinomina: append session_info (ultima entry vince, come pi); nome vuoto = cancella
- install.sh preferisce dist/pi-session-launcher se presente
- README: build PyInstaller e URL repo
This commit is contained in:
2026-08-19 12:11:12 +02:00
parent e2fffefcf2
commit 06d12b0ec0
2 changed files with 34 additions and 2 deletions
+23
View File
@@ -31,12 +31,35 @@ python3 pi-session-launcher.py
|---|---| |---|---|
| Selezionare una sessione | clic sulla riga | | Selezionare una sessione | clic sulla riga |
| **Riprendere** la sessione | doppio clic, Invio o pulsante **Riprendi sessione** | | **Riprendere** la sessione | doppio clic, Invio o pulsante **Riprendi sessione** |
| **Rinominare** la sessione | pulsante **Rinomina** o `F2` (nome vuoto = cancella) |
| Cercare | digitare nel campo di ricerca (filtra per messaggio e cartella) | | Cercare | digitare nel campo di ricerca (filtra per messaggio e cartella) |
| Aprire la cartella della sessione | pulsante **Apri cartella** (Dolphin) | | Aprire la cartella della sessione | pulsante **Apri cartella** (Dolphin) |
| Aggiornare l'elenco | pulsante **Aggiorna** o `Ctrl+R` | | Aggiornare l'elenco | pulsante **Aggiorna** o `Ctrl+R` |
Le sessioni **con nome** (`/name` in pi) sono mostrate in **grassetto**. Le sessioni **con nome** (`/name` in pi) sono mostrate in **grassetto**.
## Eseguibile portabile
Build dell'eseguibile singolo (PyInstaller, non richiede `python3-dev`):
```bash
python3 -m pip install --user --break-system-packages pyinstaller
python3 -m PyInstaller --onefile --windowed --name pi-session-launcher \
--collect-all gi --collect-all cairo \
--hidden-import gi.repository.Gtk --hidden-import gi.repository.Gdk \
--hidden-import gi.repository.Gio --hidden-import gi.repository.GLib \
--hidden-import gi.repository.Pango \
pi-session-launcher.py
./dist/pi-session-launcher
```
> Nota: Nuitka richiede gli header `python3-dev` (non installabili senza sudo);
> PyInstaller è la via raccomandata dalla documentazione PyGObject per app GTK.
## Repository
Mirror pubblico su Gitea: https://git.enne2.net/enne2/pi-session-launcher
## Come funziona ## Come funziona
- Ogni sessione è un file JSONL in `~/.pi/agent/sessions/--<percorso>--/<timestamp>_<uuid>.jsonl`. - Ogni sessione è un file JSONL in `~/.pi/agent/sessions/--<percorso>--/<timestamp>_<uuid>.jsonl`.
+11 -2
View File
@@ -5,8 +5,16 @@ set -euo pipefail
DIR="$(cd "$(dirname "$0")" && pwd)" DIR="$(cd "$(dirname "$0")" && pwd)"
APP="$DIR/pi-session-launcher.py" APP="$DIR/pi-session-launcher.py"
BIN="$DIR/dist/pi-session-launcher"
DESKTOP="$HOME/.local/share/applications/pi-session-launcher.desktop" DESKTOP="$HOME/.local/share/applications/pi-session-launcher.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] # sintassi: ./install.sh [--uninstall]
if [[ "${1:-}" == "--uninstall" ]]; then if [[ "${1:-}" == "--uninstall" ]]; then
rm -f "$DESKTOP" rm -f "$DESKTOP"
@@ -14,7 +22,7 @@ if [[ "${1:-}" == "--uninstall" ]]; then
exit 0 exit 0
fi fi
chmod +x "$APP" chmod +x "$APP" 2>/dev/null || true
mkdir -p "$(dirname "$DESKTOP")" mkdir -p "$(dirname "$DESKTOP")"
cat > "$DESKTOP" <<EOF cat > "$DESKTOP" <<EOF
@@ -23,7 +31,7 @@ Type=Application
Name=Pi Session Launcher Name=Pi Session Launcher
GenericName=Riprendi sessioni di Pi Agent GenericName=Riprendi sessioni di Pi Agent
Comment=Elenca le sessioni di Pi Agent e le riprende nella loro cartella Comment=Elenca le sessioni di Pi Agent e le riprende nella loro cartella
Exec=python3 $APP Exec=$EXEC
Icon=utilities-terminal Icon=utilities-terminal
Terminal=false Terminal=false
Categories=Development; Categories=Development;
@@ -31,5 +39,6 @@ Keywords=pi;agent;session;resume;
EOF EOF
echo "✓ Installato: $DESKTOP" echo "✓ Installato: $DESKTOP"
echo " Eseguibile: $EXEC"
echo " Cerca 'Pi Session Launcher' nel menu applicazioni KDE." echo " Cerca 'Pi Session Launcher' nel menu applicazioni KDE."
echo " (Per rimuovere: $0 --uninstall)" echo " (Per rimuovere: $0 --uninstall)"