Turn the desktop client into a system tray application

Started without a command, keeporg now shows a padlock in the system tray
with a menu like midi-webhook's: a status line, the mirror folder, each
database with its state, Sync Now, browser sign-in and sign-out, the web
interface, the configuration, the log, Start at Login, About and Quit. The
commands are unchanged.

config.json now carries every client setting (device_label,
request_timeout_seconds, ca_file, log_file, notifications), is written in
full on first start and is reloaded by the tray when saved.

A lock in the mirror directory admits one agent at a time, since the tray,
`keeporg run` and a service unit could otherwise race each other.

The tray uses fyne.io/systray: pure Go on Linux, BSD and Windows, cgo on
macOS only. The server keeps no third-party dependencies.

Desktop versions go to 0.5.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Reactorcoremeltdown
2026-11-02 12:30:28 +01:00
co-authored by Claude Opus 5.5
parent d314188247
commit ead82dc777
37 changed files with 2301 additions and 108 deletions
+13
View File
@@ -1,3 +1,16 @@
keeporg (0.5.0) unstable; urgency=medium
* KeepOrg is now a system tray application: started without a command (or
from the applications menu) it shows a padlock whose menu signs in
through the browser, lists each database's state, opens the mirror
folder, the web interface, the settings and the log, and starts at
login. The configuration file now holds every setting (device_label,
request_timeout_seconds, ca_file, log_file, notifications), is written
in full on first start, and is reloaded when saved. Only one agent
synchronizes a mirror directory at a time.
-- Azer Abdullaev <github@reactorcoremeltdown.anonaddy.com> Mon, 02 Nov 2026 11:22:07 +0100
keeporg (0.4.0) unstable; urgency=medium
* keeporg db -delete now asks for your account password