Manuskript is a JavaFX 21 desktop application for manuscript editing with AI integration (Ollama), DOCX processing, and export capabilities. Built with Maven. German-language UI.
- Java 21 (OpenJDK, pre-installed at
/usr/lib/jvm/java-21-openjdk-amd64) - Maven 3.8+ (installed via
apt-get install maven)
| Task | Command |
|---|---|
| Compile | mvn compile |
| Run tests | mvn test |
| Run application | ./run-developer.sh oder mvn javafx:run (Cloud-VM: DISPLAY=:1 mvn javafx:run) |
| Package fat JAR | mvn package |
| Resolve dependencies | mvn dependency:resolve |
| OpenRouter Monitor (optional) | cd tools/openrouter-monitor && mvn package dann ./run-openrouter-monitor.sh |
mvn compileschreibt nur nachtarget/classes. Die JAR (z.B.target/manuskript-standalone.jar) und das App-Image (z.B.installer-output\Manuskript\) werden dabei nicht aktualisiert.- Wenn die App ueber Manuskript.exe / Manuskript.app (installer-output) oder eine alte JAR gestartet wird, laeuft der Stand des letzten
mvn packagebzw.create-installer.bat(Windows) /create-installer.sh(macOS arm64). - Damit nach Aenderungen der aktuelle Code laeuft: App mit
mvn javafx:runstarten (run-developer.shunter Linux/macOS,run-developer.batunter Windows), oder vor dem Startmvn packageausfuehren und danach die gebaute App starten.
- JDK 21 erforderlich (z.B. Eclipse Adoptium).
find-java21.batsucht uebliche Installationspfade; optional einmal.\set-java21-env.ps1ausfuehren. - Dev-Start:
run-developer.bat(setzt JAVA_HOME und startetmvn compile javafx:run). Arbeitsverzeichnis = Projektwurzel (config/,logs/). - Installer/App-Image:
create-installer.bat(brauchtjpackage.exeaus JDK 21). Setup-EXE braucht WiX 3;deploy\windows\ensure-wix3.ps1findet eine Installation oder lädt portable 3.14-Binaries nach%LOCALAPPDATA%\Manuskript\wix3. Windows-Icon:deploy\windows\ensure-windows-icon.ps1erzeugtinstaller-assets\Manuskript.icoaus der PNG; jpackage bekommt--iconfür App-Image und Setup-EXE. Ressourcen (config,ffmpeg,pandoc,language tool, Demo) landen unterinstaller-output\Manuskript\app\— dort erwartet sie auchApplicationPaths. - Start gebuendelt:
installer-output\Manuskript\Manuskript.exe. Nach Code-Aenderungen Installer neu bauen, sonst laeuft alter Stand. - JavaFX-SDK: lokal
javafx-sdk-21.0.6\(gitignored) fuerjavafx:run; jmods laedt das Installer-Skript bei Bedarf. - Whisper (Diktat): Unter Windows automatische Einrichtung (Download von
whisper-bin-x64.zipnachwhisper/); unter macOS via Homebrew; unter Linux PATH bzw.apt install whisper/pacman -S whisper.cpp. Modell-Download plattformuebergreifend.
- Dev-Start:
./run-developer.sh(mvn compile javafx:run). Kein festesDISPLAY=:1– eine Wayland-Session bleibt erhalten. - Wayland: JavaFX 21 hat kein natives Wayland-Backend. Unter GNOME/KDE/Sway laeuft die App ueber XWayland.
GDK_BACKENDwird nicht gesetzt (wederwaylandnoch erzwungenesx11). - Installer:
./create-installer-linux.sh(x86_64). Auf dem Mac via Dockerlinux/amd64. Ergebnis ininstaller-output/:- App-Image
Manuskript/(Start:installer-output/Manuskript/bin/Manuskript) Manuskript-*-linux-x64.debManuskript-*-linux-x64.AppImageManuskript-*-linux-x64.pkg.tar.zst(Arch,deploy/linux/PKGBUILD)
- App-Image
- Ressourcen landen unter
lib/app/(Linux-jpackage). Bundles:prepare-linux-bundles.sherzeugtpandoc-linux.zipundffmpeg-linux.zip. - Schreibbare Daten: AppImage/
/opt//usrsind nur lesbar. Plugins, Config, Logs und Whisper liegen unter~/.local/share/manuskript(ApplicationPaths.writableHomeDirectory()). Pandoc/FFmpeg bleiben im Paket. - JavaFX-SDK: lokal
javafx-sdk-21.0.6/fuerjavafx:run; jmods laedt das Installer-Skript (linux-x64).
- Aktiver Editor:
ManuskriptEditorTestWindow/ManuskriptTextEditor/MdTextArea. - API für Features:
ChapterEditorHost– neue Editor-Funktionen nur im Canvas-Pfad umsetzen. - Legacy
EditorWindow(RichTextFX/FXML): nicht mehr Ziel für Entwicklung; keine Parität, keine Doppelpflege, nicht als Referenz nutzen. - Standard: Canvas-Editor per Preference
use_canvas_chapter_editor(sieheMainController.openChapterEditor). - Im Canvas-Editor: Agenten-Panel, Makros, Textanalyse, Szenen-Outline, Online-Lektorat (Toolbar).
- Display: Auf der Cloud-VM
DISPLAY=:1. Lokal unter Linux/macOS die vorhandene Session nutzen (Wayland → XWayland). Nicht headless starten. - No Maven wrapper: The repo does not include
mvnw. System-installed Maven is required. - Deprecation warnings:
OllamaWindow.javaandMainController.javaproduce compiler warnings (deprecated API, unchecked operations) — these are expected and non-blocking. - First launch: Shows "Willkommen zu Manuskript" so the user can confirm the project root. Packaged default is
~/Documents/Manuskript(Gott demo copied there once). Dev (mvn javafx:run) still suggests repoManuskripte/. - Optional services: Ollama (localhost:11434), LanguageTool (localhost:8081), Pandoc, FFmpeg are optional and not required for basic app functionality or tests.
- OpenRouter Monitor (
tools/openrouter-monitor/): eigenständiges JavaFX-Hilfsprogramm für Credits und API-Logs; liestagent.openai.api_keyundagent.openai.api_urlaus Manuskript-Konfiguration. Nicht in die Haupt-App integriert. - Test suite: 7 unit tests (JUnit 5) covering
QuotationMarkConverterTestandLoggingConfigurationTest. All pass without a display server. - No linter configured: The project has no dedicated linting tool (no Checkstyle, SpotBugs, etc.). Compiler warnings serve as the primary code quality check via
mvn compile.