This is the first alpha release of OTPClient 5.0, a major rewrite of the GUI layer from GTK3 to GTK4 + libadwaita. The CLI, search provider, and core database/crypto code are unchanged in functionality but have been synced with the latest fixes from master.
Warning: This is an alpha release intended for testing. Expect rough edges. Back up your databases before use.
Highlights
GTK4 + libadwaita UI rewrite
The entire GUI has been rewritten from scratch with zero use of deprecated APIs. Key changes:
- GtkColumnView replaces GtkTreeView for the token list, with drag-and-drop reordering
- AdwDialog replaces GtkDialog for all modal dialogs (password, manual-add, edit, import, export, settings, QR display, DB info, KDF parameters)
- GtkFileDialog async API replaces the legacy GtkFileChooserDialog
- AdwNavigationSplitView provides a responsive multi-database sidebar
- GSettings replaces GKeyFile for all GUI configuration persistence
- AdwDialog-based shortcuts view replaces the deprecated GtkShortcutsWindow
- Search uses a GListStore → GtkFilterListModel → GtkColumnView filter chain
Multi-database sidebar
A new sidebar allows managing and switching between multiple databases. Tokens can be moved between databases via a right-click "Move to..." context menu action.
Minimize to tray (StatusNotifierItem)
The tray icon implementation has been rewritten to use the StatusNotifierItem D-Bus protocol directly, replacing the previous libayatana-appindicator dependency. This provides broader desktop environment compatibility.
All preserved features
All functionality from v4.x is retained:
- TOTP and HOTP support
- HOTP counter increment on selection
- Next OTP preview (show-next-otp setting)
- Inactivity auto-lock with key/mouse activity reset
- Window size save/restore
- Clipboard copy with desktop notifications
- Screensaver D-Bus lock integration (GNOME, Cinnamon, freedesktop, Unity)
- Webcam QR scanner, file QR parser, QR code display
- Import/export: Aegis, andOTP, AuthenticatorPro, FreeOTP+, 2FAS, Google Authenticator migration
- AES-256-GCM encrypted database with Argon2id KDF (tunable parameters)
- GNOME Shell / KDE KRunner search provider
- Secret service integration
Updated dependencies
| Dependency | Old min version | New min version |
|---|---|---|
| GTK | 3.24 (GTK3) | 4.18.0 (GTK4) |
| libadwaita | — | 1.5.0 (new) |
| GLib | 2.68.0 | 2.82.0 |
| jansson | 2.12 | 2.14 |
| libgcrypt | 1.10.1 | 1.11.2 |
| protobuf-c | 1.3.0 | 1.4.0 |
| qrencode | 4.0.2 | 4.1.0 |
Removed dependency: libayatana-appindicator (tray now uses D-Bus StatusNotifierItem directly).
Breaking changes
- GTK3 is no longer supported. GTK 4.18+ and libadwaita 1.5+ are required.
- Configuration is now stored via GSettings instead of GKeyFile. Existing GKeyFile settings will not be migrated automatically.
- The Glade UI files (
*.ui) have been replaced with new GTK4/libadwaita XML definitions.
Known limitations
- This is an alpha - some UI polish and edge cases may still need work.
- No automated migration of GKeyFile configuration to GSettings.
- German translations have been removed pending retranslation for the new UI strings.
sha256: 223448646e3b0cea026505dbfd9078e2db426835ed653bc7be0d87c56078f3a3