github paolostivanin/OTPClient v5.0.0-alpha1

pre-release6 hours ago

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

Don't miss a new OTPClient release

NewReleases is sending notifications on new releases.