Skip to content

Shared features

Beyond the list this guide started from, these already exist in two or more apps and belong in the guideline:

  1. AppInfo + build-info.properties. Version, build time and commit come from a Maven-filtered resource, read by About, --version, the update check and problem reports. (all six)
  2. Shared update/ package (UpdateCheck pure parser, UpdateService, ReleaseInfo). (5 apps)
  3. Pure palette core shared verbatim: FuzzyMatch, MatchText, KeyChord, PaletteKeys, TextInputKeys. Emacs-style caret keys work inside the palette’s query field. (Editora → Termina → Mirada, Torrenta)
  4. Shortcuts reference window: a searchable list of every key, opened from Help. (Termina, Mirada)
  5. Extended title bar with JavaFX 27 HeaderBar and StageStyle.EXTENDED, falling back to a decorated window; the macOS system menu bar via useSystemMenuBar. (Editora, Termina, Mirada, Torrenta opt-in)
  6. macOS app-menu integration: About and Settings in the application menu, openFiles Apple Events reaching the running app (MacOpenFiles / MacHandlers). (Editora, Mirada, Torrenta)
  7. Tray package (AwtTray, SniTray, StatusNotifierItem over dbus-java) plus autostart (XDG autostart, LaunchAgent, HKCU\…\Run) and --minimized. (Torrenta, Modula, nux)
  8. Desktop notifications through one Notifier: notify-send/gdbus on Linux, osascript on macOS, a PowerShell toast on Windows, the tray as fallback. (Torrenta, Termina, Modula, nux, Editora)
  9. Window geometry that stays on screen: WindowGeometry / WindowPlacement restore size and position but move a window back when its monitor is gone. (Editora, Torrenta, Termina, Mirada)
  10. Linux desktop integration: a .desktop file whose StartupWMClass matches the JavaFX app class (com.<app>.App), AppStream metainfo io.github.adriandeleon.<App>, multi-size PNG icons.
  11. Package-manager channels: Homebrew cask and winget manifests generated by JReleaser. (Torrenta, Termina, Mirada)
  12. Atomic config writes with a file lock, and values clamped to a valid range when read. (Termina, nux, Mirada)
  13. Dev capture / screenshot mode (DevCapture, nux --screenshot=): renders the real UI headless at 2× for README, website and bug-report images. (Torrenta, Termina, nux; Editora uses an external headless harness)
  14. Smoke launch in CI: the packaged app is started and checked (still running after 20 s, or --version) on every OS before release. (all six)
  15. Release dry run: workflow_dispatch builds and signs with throwaway credentials and publishes nothing. (Editora, Modula, Mirada, nux, Termina)
  16. SECURITY.md with how to report a vulnerability privately. (Modula; worth adding everywhere)
  17. Simple mode / density: fewer menus and a compact layout for new users. (Editora, Torrenta)
  18. Zoom levels stored per window kind, Ctrl/Cmd +/-/0. (Editora, Termina)
  19. Undo for destructive list actions (remove a torrent, close a tab) and reopen closed tab. (Torrenta UndoStack, Termina and Editora ClosedTabs)

Pauta 1.1.0 · · Changelog