Desktop UI for Timetrap, built with Ruby + Qt.
QTimetrap follows an MVVM-style architecture with Zeitwerk autoloading and a Rails-like project structure.
- Expandable entries tree:
week -> day -> project/task -> time entry. - Start/stop tracking from UI (single button based on running state).
- Edit entry
note,start, andenddirectly in the list. - Project/task sidebar with multi-select task filtering.
- Date-time interval filtering (
FROM/TO) with live apply. - Archive mode (soft-hide entries via local archive store, no destructive Timetrap delete).
- Theme switch (
light/dark) with persistent selection.
- Ruby
>= 3.2 - Qt bridge gem:
qt >= 0.1.0 timetrapCLI available ast(or configured via env)
gem install qtimetrap timetrap
qtimetrapNote: qtimetrap depends on the qt gem with native extensions.
Install required system libraries first:
https://github.com/CyJimmy264/qt?tab=readme-ov-file#system-requirements.
sudo dnf copr enable cyjimmy264/ruby-qt
sudo dnf copr enable cyjimmy264/ruby-qtimetrap
sudo dnf install ruby-qt ruby-qtimetrap
gem install timetrap
qtimetrapbundle install
bundle exec bin/qtimetrapIf qt is already installed in your current rbenv shell, you can also run:
bin/qtimetrapQTIMETRAP_ENV: app environment (developmentby default)TIMETRAP_BIN: timetrap CLI command (tby default)QTIMETRAP_THEME: initial theme (lightby default)QTIMETRAP_RELOAD=1: enable Zeitwerk reloading in development
Persisted settings:
- Theme:
~/.config/qtimetrap/config.yml - Archived entry ids:
~/.local/share/qtimetrap/archived_entries.yml
($XDG_CONFIG_HOME / $XDG_DATA_HOME are respected.)
rspec
gem build qtimetrap.gemspecMain directories:
app/models,app/services,app/view_modelsapp/views,app/componentsapp/styles/themes/{light,dark}/*.qssconfig/,lib/,spec/
- Fedora/COPR assets:
packaging/rpm - Debian/Launchpad assets:
packaging/deb
