110 lines
5.2 KiB
Markdown
110 lines
5.2 KiB
Markdown
# ADF Manager
|
|
|
|
Grafisches Frontend für [`xdftool`](https://github.com/cnvogelg/amitools) (Teil von amitools) zum Verwalten von Amiga-Disk-Images (ADF) unter Linux. Gedacht als Ersatz für das mühsame Einzel-Kopieren per Kommandozeile, wenn sich ADFs nicht bequem mounten lassen.
|
|
|
|
Teil von **Projekt Hirnfrei**. Entwickler: Dany Thinnes.
|
|
|
|
## Funktionen
|
|
|
|
- **Zwei-Spalten-Ansicht:** links der Inhalt der ADF, rechts ein Ordner auf dem PC
|
|
- Navigation in beiden Ansichten per Doppelklick (links auch in ADF-Unterordner, `..` führt eine Ebene hoch)
|
|
- **ADF → PC:** ein oder mehrere Einträge (auch ganze Ordner) in den rechts angezeigten PC-Ordner kopieren
|
|
- **PC → ADF:** ein oder mehrere Dateien/Ordner in den links angezeigten ADF-Ordner kopieren. Existiert ein Eintrag bereits in der ADF, wird er nach Rückfrage vorher gelöscht
|
|
- Löschen, Umbenennen und Anlegen von Ordnern in der ADF
|
|
- Alle Einträge eines Vorgangs werden in **einem** `xdftool`-Aufruf verarbeitet (schnell auch bei vielen Dateien)
|
|
- Versteckte Dateien auf der PC-Seite ein-/ausblendbar
|
|
- Spaltenbreiten frei einstellbar; Fenstergröße und Spaltenbreiten werden gespeichert
|
|
- **Auswerfen:** Liegt die ADF auf einer SD-Karte oder einem anderen Wechseldatenträger, kann das Medium direkt aus dem Programm ausgehängt und abgeschaltet werden
|
|
- Protokollfenster mit den ausgeführten `xdftool`-Befehlen und deren Ausgabe
|
|
|
|
## Abhängigkeiten
|
|
|
|
### Zur Laufzeit
|
|
|
|
| Paket | Zweck |
|
|
|-------|-------|
|
|
| `amitools` (liefert `xdftool`) | Eigentliche Arbeit an den ADF-Images. Die reine Python-Variante genügt, `vamos` wird nicht benötigt |
|
|
| `udisks2` (optional) | Nur für die Funktion „Auswerfen“ (`udisksctl`) |
|
|
|
|
`xdftool` muss im `PATH` liegen. Alternativ kann der Pfad im Programm unter *Datei → xdftool-Pfad …* eingestellt werden.
|
|
|
|
### Zum Bauen
|
|
|
|
- C++17-Compiler (GCC oder Clang)
|
|
- CMake ≥ 3.16
|
|
- Qt 6 (Modul *Widgets*)
|
|
|
|
## Installation von xdftool
|
|
|
|
Unter Arch Linux ist Python „externally managed“, daher am besten isoliert installieren:
|
|
|
|
```
|
|
sudo pacman -S python-pipx
|
|
pipx install amitools
|
|
```
|
|
|
|
(Alternativ in einem eigenen virtualenv mit `pip install amitools`.) Danach sollte `xdftool` im Terminal verfügbar sein:
|
|
|
|
```
|
|
xdftool --help
|
|
```
|
|
|
|
## Bauen (Linux / Arch)
|
|
|
|
```
|
|
sudo pacman -S --needed base-devel cmake qt6-base
|
|
git clone <Repository-URL> adfmanager
|
|
cd adfmanager
|
|
cmake -B build -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build
|
|
```
|
|
|
|
Starten:
|
|
|
|
```
|
|
./build/adfmanager [datei.adf]
|
|
```
|
|
|
|
Eine ADF kann optional als Kommandozeilenargument übergeben werden.
|
|
|
|
## Bedienung
|
|
|
|
1. **ADF öffnen …** und ein Image wählen (`.adf`, `.ADF`, `.adz`).
|
|
2. Links den gewünschten ADF-Ordner öffnen, rechts den PC-Ordner wählen (**Ordner wählen …** oder per Doppelklick navigieren).
|
|
3. Einträge markieren (Mehrfachauswahl mit Strg/Umschalt) und über die Pfeil-Buttons in der Mitte kopieren.
|
|
4. Das Ziel beim Kopieren **in** die ADF ist immer der links angezeigte Ordner („Aktueller ADF-Ordner“).
|
|
|
|
## Hinweise
|
|
|
|
- **Änderungen werden direkt in die ADF geschrieben.** Für wichtige Images vorher eine Sicherungskopie anlegen.
|
|
- Das Programm wertet die Ausgabe von `xdftool <image> list` aus. Sollte der Baum leer bleiben, steht die Rohausgabe im Protokollfenster. Das ist hilfreich, falls eine andere amitools-Version ein anderes Ausgabeformat verwendet.
|
|
- Unterstützt werden die Dateisysteme, die `xdftool` beherrscht (OFS/FFS-Disketten-Images).
|
|
- Die „Auswerfen“-Erkennung ist eine Heuristik: Als Wechseldatenträger gelten Medien mit gesetztem *removable*-Flag, SD-Karten am eingebauten Kartenleser und USB-Datenträger. Systemverzeichnisse (`/`, `/home`, …) werden nie angeboten.
|
|
|
|
## Windows (ungetestet)
|
|
|
|
> **Hinweis:** Dieser Abschnitt ist unverifiziert. Das Programm wurde bisher ausschließlich unter Linux (Arch) getestet.
|
|
|
|
Der Quellcode verwendet ausschließlich Qt und ist plattformneutral, sollte sich also mit CMake und Qt 6 auch unter Windows bauen lassen. Zu beachten:
|
|
|
|
- `xdftool` ist ein Python-Programm. Laut amitools-Dokumentation ist Windows „heavily untested“, die reine Python-Variante (`pip install amitools`) soll aber für alle Werkzeuge außer `vamos` funktionieren. Python (≥ 3.8) muss installiert sein; `pip` legt `xdftool.exe` im `Scripts`-Ordner der Python-Installation ab. Liegt dieser nicht im `PATH`, den Pfad im Programm einstellen.
|
|
- Die Funktion „Auswerfen“ ist unter Windows nicht verfügbar (Button bleibt deaktiviert).
|
|
|
|
Beispiel für den Build (Qt aus dem Qt-Installer, Pfad anpassen):
|
|
|
|
```
|
|
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:/Qt/6.x.x/mingw_64
|
|
cmake --build build
|
|
windeployqt build/adfmanager.exe
|
|
```
|
|
|
|
## Lizenz
|
|
|
|
Copyright (C) 2026 Dany Thinnes
|
|
|
|
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version.
|
|
|
|
Die Veröffentlichung erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber **ohne jede Gewährleistung**; sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License (siehe Datei `LICENSE`).
|
|
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|