Harvest client implemented using GTK and Rust for Linux and the various BSD's.
On the Timer for Harvest github page, click on the releases link. The newest release is listed at the top of the page. It contains pre-build binaries for Ubuntu 20.04 and Fedora 32, as well as other distributions. You will be notified of new releases by a message in the main window.
After installation your GNOME shell should be able to find the application when you type "Timer for Harvest" in the activity searcher.
Upon first launch you will first see a web browser start. This will open an authorization flow from Harvest. When you've completed these steps you will end up on a white page with the text "Authorized successfully." The actual application will start now.
Just like the Harvest web interface there are some handy keyboard shortcuts:
- F5 in the main window will refresh the time entries list. This can be usefull when you updated the entries using a different interface and Timer for Harvest still shows the old state.
- N in the main window opens the new time entry popup.
- Esc closes the time entry popup.
- Enter activates the "Save Timer" button in the time entry popup.
Username and password details are never seen by Timer for Harvest. A web browser is used to authorize Timer for Harvest access to your account. This authorization is stored in the form of an authorization token, which Harvest lets expire in 14 days. Leaking this token would thus give somebody access to your account for a maximum of 14 days.
The authorization token is currently stored on the file system, namely in $XDG_CONFIG_HOME/timer-for-harvest.json. In the future we hope to move this token to a more secure location, such as libsecret.
- Idle detection to ask user whether idle time should be subtracted or booked as a new time entry.
- Authentication token storage in libsecret.
- Improve UI to speed up the new entry process.
If you want to build the applicatin yourself you'll need rust, cargo and the gtk3
development libraries installed. You can then run cargo build --release
to generate
the binary in target/release/
.
If you like the software I create, please consider donating.