4.7 KiB
Pi Session Launcher
Piccola applicazione GUI (GTK3) per elencare, riprendere e rinominare le sessioni di Pi Agent.
Elenco tutte le sessioni salvate in ~/.pi/agent/sessions/ e, selezionandone una:
- apre un terminale (Konsole) nella cartella di lavoro (
cwd) in cui la sessione era stata avviata; - riprende la sessione con
pi --session <file sessione>.
Funzionalità
- Elenco di tutte le sessioni, ordinate per ultima modifica (più recenti prima)
- Per ogni sessione: primo messaggio (o nome se impostato, in grassetto), cartella di avvio, ultima modifica (tempo relativo)
- Ripresa con doppio clic / Invio / pulsante: apre Konsole nella cwd della sessione e lancia
pi --session - Rinomina sessione (F2): il nome è quello che pi mostra nel suo selettore (
/resume) - Ricerca per messaggio o cartella
- Apertura della cartella della sessione in Dolphin
- Aggiornamento dell'elenco (Ctrl+R)
- Eseguibile portabile singolo (vedi sotto) con icona integrata
Requisiti
- Python 3 + PyGObject GTK3 (
python3-gi,gir1.2-gtk-3.0) - Konsole (KDE) — fallback:
xterm pinel PATH- Per il menu applicazioni: un ambiente desktop con supporto
.desktop(es. KDE Plasma)
Installazione
./install.sh # installa la voce di menu KDE + icone hicolor (48–512 px)
./install.sh --uninstall # rimuove la voce di menu
L'installer crea:
~/.local/share/applications/it.enne2.pi-session-launcher.desktop(conStartupWMClass)~/.local/share/icons/hicolor/{48,64,128,256,512}x*/apps/it.enne2.pi-session-launcher.png
KDE Plasma/Wayland: l'icona di finestra/taskbar viene associata tramite l'app-id GTK, che deve coincidere con lo stem del file
.desktope con il nome dell'icona hicolor (it.enne2.pi-session-launcher).set_icon_from_file()da solo non basta su Wayland. Vederemain()inpi-session-launcher.py.
Avvio manuale:
python3 pi-session-launcher.py
Uso
| Azione | Come |
|---|---|
| Selezionare una sessione | clic sulla riga |
| 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) |
| Aprire la cartella della sessione | pulsante Apri cartella (Dolphin) |
| Aggiornare l'elenco | pulsante Aggiorna o Ctrl+R |
Le sessioni con nome (/name in pi) sono mostrate in grassetto.
Eseguibile portabile
È disponibile un eseguibile singolo Linux x86-64 (~33 MB, GTK/Python inclusi) nella release v0.1.0:
curl -L -o pi-session-launcher \
https://git.enne2.net/attachments/513a5f44-378e-4fc7-9f9e-89f25a082d66
chmod +x pi-session-launcher
./pi-session-launcher
Build da sorgente
python3 -m pip install --user --break-system-packages pyinstaller
python3 -m PyInstaller --clean --noconfirm pi-session-launcher.spec
./dist/pi-session-launcher
Il file pi-session-launcher.spec include la potatura post-analisi, che riduce
il binario da ~244 MB a ~33 MB (−86%):
- rimuove
share/icons/*: l'hook PyGObject raccoglie tutti i temi icona installati sul sistema (Papirus, Breeze, Adwaita…), ma a runtime GTK usa i temi di sistema — i bundlati sono peso morto; - mantiene solo le lingue
it/eninshare/locale/(122 → 2).
Nota: Nuitka richiede gli header
python3-dev(non installabili senza sudo); PyInstaller è la via raccomandata dalla documentazione PyGObject per app GTK.
Come funziona
- Ogni sessione è un file JSONL in
~/.pi/agent/sessions/--<percorso>--/<timestamp>_<uuid>.jsonl. - L'header della prima riga contiene il campo
cwd(cartella di avvio). - Il primo messaggio utente e il nome (
session_info) vengono letti dal file. - La rinomina appende una entry
session_infoal file: pi legge l'ultima entry (walk inverso), quindi l'ultima rinomina vince e un nome vuoto cancella. - Il lancio usa:
konsole --workdir <cwd> --hold --separate -e bash -c 'pi --session "$1"; exec bash' _ <file>— il wrapperbash -cè più affidabile del passaggio diretto degli argomenti a Konsole;exec bashmantiene la shell aperta quando pi termina.
Repository
- Gitea (pubblico): https://git.enne2.net/enne2/pi-session-launcher
- Release: https://git.enne2.net/enne2/pi-session-launcher/releases/tag/v0.1.0
- Clone SSH:
git clone ssh://git@git.enne2.net:222/enne2/pi-session-launcher.git
L'icona (terminale + freccia di ripristino) è stata generata con AI e verificata; è usata come icona dell'app, icona hicolor e avatar del repository.
