# 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 https://git.projekt-hirnfrei.de/diabolus/adfmanager.git 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 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