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

toggl-open-source/toggldesktop

Repository files navigation

⚠️ Project Status: Superseded by new rewritten apps.

We have rewritten our MacOS and Windows apps and for that reason we will no longer implement nor accept pull requests implementing new features in this repository.

If you'd like to try these rewritten native apps, visit:

Toggl Track

Native desktop applications for the leading time tracking tool Toggl.

GitHub last commit GitHub issues GitHub pull requests Licence BSD-3

AboutDownloadBuildChange logContribute

About

Toggl Desktop is a Toggl time tracking client with many helper functions that make tracking time more effortless and smooth. Features such as Idle detection, reminders to track and Pomodoro Timer make this app a great companion when productivity and efficiency is the goal.

Toggl Desktop apps

Download

Toggl built and signed apps for all platforms

Mac


64bit dmg    |     Mac App Store

Officially macOS 10.11 and newer stable macOS versions are supported.

Windows


64bit installer    |    32bit installer   |    Chocolatey    |    Microsoft Store

App has been tested on Windows 7, 8, 8.1 and 10. Toggl Desktop Windows app has not been tested on Surface type touchscreen environments.

Linux


Tarball    |    Flathub    

Only 64bit is supported

Build

Please check OS specific requirements below.

By default the app builds for testing server. To use the compiled app with live server see this guide https://github.com/toggl-open-source/toggldesktop/wiki/Building-Toggl-Desktop-from-source-for-usage-with-live-servers

macOS

Requirements

  • macOS 11+, Xcode 12.2+ and Swift 5+
  • Install Bundler
$ sudo gem install bundler

Build

# Prepare cocoapod
$ make init_cocoapods

Run bundle exec pod repo update in case there is an error about out-of-date source repos (some pod version is missing).

  • Open workspace at src/ui/osx/TogglDesktop.xcworkspace
  • Select TogglDesktop scheme and build.

Linux

Dependencies

You'll need these Qt (at version 5.12 or higher) modules: QtWidgets (with private headers), QtNetwork, QtNetworkAuth, QtDBus, QtX11Extras

If Qt is not installed from your distribution's package manager, you will need to set the CMAKE_PREFIX_PATH environment variable to point to the lib/cmake folder in the Qt version you wish to use.

These dependencies are mandatory:

  • libXScrnSaver (libxss-dev in deb-based distros and libXScrnSaver-devel in rpm-based)

You can install them all in debian with a command:

 $ sudo apt install libxss-dev build-essential libgl-dev libreadline-dev

These dependencies are optional and will be bundled if the USE_BUNDLED_LIBRARIES CMake argument is set or your system does NOT have their development packages installed:

  • POCO
  • Lua
  • jsoncpp
  • Qxt

These libraries will be bundled regardless of your system:

  • bugsnag-qt
  • qt-oauth-lib

Build the app

in the toggldesktop source tree root

mkdir -p build && pushd build             # Create build directory
cmake ..                                  # Setup cmake configs
make -j8                                  # Build the app. The number defines the count of parallel jobs (number of your CPU cores is a good value for that)
./src/ui/linux/TogglDesktop/TogglDesktop  # Run the built app

Windows

Install Visual Studio 2019 with .NET desktop development, Desktop development with C++ and Universal Windows Platform development components checked during installation. You can download free Visual Studio Community here.

Then open the solution file src\ui\windows\TogglDesktop\TogglDesktop.sln and run it in Debug mode.

The solution is using OpenSSL binaries. To rebuild OpenSSL from sources refer to this page.

Change log

Change log can be viewed at http://toggl.github.io/toggldesktop/

Contribute

Before sending us a pull request, please format the source code:

$ make fmt

Also, please check for any cpplint issues:

$ make lint

Check if unit tests continue to pass:

$ make test