- 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
71 lines
2.4 KiB
Markdown
71 lines
2.4 KiB
Markdown
# Pi Session Launcher
|
|
|
|
Piccola applicazione GUI (GTK3) per **riprendere 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>`.
|
|
|
|
## Requisiti
|
|
|
|
- Python 3 + PyGObject GTK3 (`python3-gi`, `gir1.2-gtk-3.0`)
|
|
- Konsole (KDE) — fallback: `xterm`
|
|
- `pi` nel PATH
|
|
|
|
## Installazione
|
|
|
|
```bash
|
|
./install.sh # copia la voce nel menu applicazioni KDE (.desktop)
|
|
```
|
|
|
|
Avvio manuale:
|
|
|
|
```bash
|
|
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
|
|
|
|
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
|
|
|
|
- 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.
|
|
- Il lancio usa:
|
|
`konsole --workdir <cwd> --hold --separate -e bash -c 'pi --session "$1"; exec bash' _ <file>`
|
|
— `exec bash` mantiene la shell aperta quando pi termina.
|