v0.3.0: Pfeil-/Tab-Navigation gefixt, install/uninstall-Skripte

- FileTable(DataTable): links/rechts fuer Datei-Manager-Navigation umgebunden
  (links = eine Ebene hoch, rechts = Ordner oeffnen); zuvor verschluckte das
  DataTable-Widget die Tasten
- _selected(): liefert jetzt die Klartext-Zeichenkette statt rich.Text-Objekt
  (behob AttributeError beim Oeffnen/Enter)
- action_focus_next(): Tab wechselt zuverlaessig zwischen lokalem und
  entferntem Paneel (statt unzuverlaessigem focus_next)
- install.sh / uninstall.sh: systemweite Installation (PEP-668-konform via
  /opt/ftptui/venv + /usr/local/bin/ftptui)
This commit is contained in:
x3
2026-08-31 15:46:30 +00:00
parent ed0a943d21
commit 7a1bf948f1
6 changed files with 237 additions and 13 deletions
+39 -2
View File
@@ -95,6 +95,23 @@ pip install -e .
# paramiko - SFTP/SSH
```
### Installations- & Deinstallations-Skripte (systemweit)
Im Projektverzeichnis liegen zwei Scripts für eine **systemweite Installation**
auf Debian/Ubuntu (PEP 668 „externally managed“ wird berücksichtigt: es wird eine
eigene Umgebung unter `/opt/ftptui/venv` angelegt und nach
`/usr/local/bin/ftptui` verlinkt):
```bash
./install.sh # systemweit installieren (fragt ggf. nach sudo)
./install.sh --force # erneut installieren/aktualisieren
./uninstall.sh # systemweite Installation entfernen (Nutzdaten bleiben)
./uninstall.sh --purge # zusätzlich Konfigurationsdateien löschen
```
Nach `./install.sh` steht das Kommando `ftptui` global im PATH bereit.
### Als Paket
```bash
@@ -142,8 +159,10 @@ ftptui
| Taste | Aktion |
|--------------|---------------------------------|
| `Tab` | Zwischen lokalem und entferntem Paneel wechseln |
| `Enter` | Ordner öffnen (aktiv: fokussiertes Paneel) |
| `↑` / `↓` | Zeilenauswahl bewegen |
| `→` | Markierten Ordner/Eintrag öffnen |
| `←` / `⌫` | Eine Verzeichnisebene höher |
| `Enter` | Ordner öffnen (aktiv: fokussiertes Paneel) |
| `↑ ..` | Eine Ebene höher (Tabellenzeile) |
| `l` | Auswahl **herunterladen** (entfernt → lokal) |
| `u` | Auswahl **hochladen** (lokal → entfernt) |
@@ -154,7 +173,8 @@ ftptui
> Hinweis: Hoch-/Herunterladen (`u`/`l`), Anlegen (`n`), Löschen (`d`) und
> Umbenennen (`r`) wirken auf das **aktive (grün markierte) Paneel**. Wechsel
> der Seite mit `Tab`.
> der Seite mit `Tab`. Die Pfeiltasten `→`/`←` navigieren die Verzeichnisstruktur
> (öffnen / eine Ebene hoch), `↑`/`↓` bewegen die Zeilenauswahl.
---
@@ -164,6 +184,8 @@ ftptui
ftptui/
├── pyproject.toml # Paketmetadaten, Abhängigkeiten, Einstiegspunkt
├── README.md # diese Dokumentation
├── install.sh # systemweite Installation (/opt/ftptui/venv)
├── uninstall.sh # Deinstallation systemweiter Installation
├── .gitignore
└── ftptui/
├── __init__.py # Versionsnummer
@@ -305,6 +327,21 @@ MIT siehe Projektträger/Repositories. Keine gewerblichen Einschränkungen.
## Changelog
### v0.3.0
- **Bugfix (Pfeil-Navigation):** Im Dateibrowser navigieren die Pfeiltasten nun
im File-Manager-Stil: `←` wechselt eine Ebene nach oben, `→` öffnet den
markierten Eintrag, `↑`/`↓` bewegen die Auswahl. Zuvor verschluckte das
`DataTable`-Widget die Tasten (Widget-Bindings haben Vorrang). Dafür wird die
neue `FileTable`-Klasse genutzt, die `left`/`right` passend umbindet.
- **Bugfix (Tab-Panel-Wechsel):** `Tab` wechselt jetzt zuverlässig zwischen dem
lokalen und dem entfernten Paneel (explizite `action_focus_next` statt
unzuverlässigem `focus_next`).
- **Bugfix (`_selected`):** Die Auswahlauswertung liefert jetzt die
Klartext-Zeichenkette statt eines `rich.Text`-Objekts, wodurch Öffnen/Enter
nicht mehr mit `AttributeError` abstürzte.
- **Neu:** `install.sh` / `uninstall.sh` für systemweite Installation
(PEP-668-konform via `/opt/ftptui/venv` + `/usr/local/bin/ftptui`).
### v0.2.0
- **Bugfix:** Wechsel in den Browser-Bildschirm korrigiert
(`set_screen``switch_screen`). Vorher führte eine erfolgreiche Verbindung