Project

qtimetrap

0.0
No release in over 3 years
MVVM Ruby desktop app for Timetrap built with Qt and Zeitwerk.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 0.1, >= 0.1.4
~> 2.6
 Project Readme

QTimetrap

Desktop UI for Timetrap, built with Ruby + Qt.

QTimetrap follows an MVVM-style architecture with Zeitwerk autoloading and a Rails-like project structure.

QTimetrap screenshot

Features

  • Expandable entries tree: week -> day -> project/task -> time entry.
  • Start/stop tracking from UI (single button based on running state).
  • Edit entry note, start, and end directly 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.

Requirements

  • Ruby >= 3.2
  • Qt bridge gem: qt >= 0.1.4
  • timetrap CLI available as t (or configured via env)

Install

RubyGems

gem install qtimetrap timetrap
qtimetrap

Note: 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.

Fedora COPR

sudo dnf copr enable cyjimmy264/ruby-qt
sudo dnf copr enable cyjimmy264/ruby-qtimetrap
sudo dnf install ruby-qt ruby-qtimetrap
gem install timetrap
qtimetrap

Run

bundle install
bundle exec bin/qtimetrap

If qt is already installed in your current rbenv shell, you can also run:

bin/qtimetrap

Configuration

  • QTIMETRAP_ENV: app environment (development by default)
  • TIMETRAP_BIN: timetrap CLI command (t by default)
  • QTIMETRAP_THEME: initial theme (light by 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.)

Development

rspec
gem build qtimetrap.gemspec

Main directories:

  • app/models, app/services, app/view_models
  • app/views, app/components
  • app/styles/themes/{light,dark}/*.qss
  • config/, lib/, spec/

Packaging

  • Fedora/COPR assets: packaging/rpm
  • Debian/Launchpad assets: packaging/deb