Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

Harvest client implemented using GTK+ and Rust

License

Notifications You must be signed in to change notification settings

iatanas0v/timer-for-harvest

 
 

Repository files navigation

Timer for Harvest

Harvest client implemented using GTK and Rust for Linux and the various BSD's.

Screenshots

Main window Popup

Installation

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.

Usage

After installation your GNOME shell should be able to find the application when you type "Timer for Harvest" in the activity searcher.

First usage

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.

Daily usage

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.

Security

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.

Wishlist

  • 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.

Building

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/.

Donations

If you like the software I create, please consider donating.

About

Harvest client implemented using GTK+ and Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 98.3%
  • Shell 1.7%