Test the cloud for FREE! Get $200 in DigitalOcean credit. Start Now

How to Install Workrave on Mac

by

Hey there! Some links on this page may be affiliate links which means that, if you choose to make a purchase, I may earn a small commission at no extra cost to you. I greatly appreciate your support!

Although Workrave isn’t officially supported on macOS, it is possible to install this software on your Mac. Some features may not work as expected, but it is my understanding that developers are actively working to make Workrave Mac-compatible.

Workrave is a program that reminds you to take breaks while working at your computer. The program assists in the recovery and prevention of Repetitive Strain Injury (RSI).  Workrave also has really cool statistics about your computer usage such as:

  • How many minutes you use your computer
  • How many breaks you take
  • The total number of mouse clicks
  • The total number of keystrokes

If you are on Windows or Linux, you can download an officially supported installer from Workrave’s download page.  For you Mac users out there, you can follow this tutorial to install a semi-working version of this program.

Install Workrave on Mac

YouTube video

To install Workrave on Mac, open a Terminal window and execute the following commands. This assumes you have brew installed which is super easy to install.

brew install automake autoconf libtool gettext intltool gobject-introspection autoconf-archive gtk+ gtk-mac-integration gtkmm3 gnome-icon-theme hicolor-icon-theme
brew link --force gettext libffi
git clone https://github.com/palfrey/workrave/
cd workrave
git checkout os-x-fixes
autoreconf -if
intltoolize --automake --copy --force
./configure
make
make install

These commands may take a few minutes to complete.  When finished, the Workrave program will be installed at /usr/local/bin/workrave.

Start Workrave on Boot

You can have Workrave automatically start when your computer turns on. To do this, create a /Library/LaunchAgents/com.workrave.plist file as the sudo user with the following content.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict><
        <key>Label</key>
        <string>com.workrave.app</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/workrave</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <false/>
    </dict>
</plist>

Now, every time you turn on your computer, the Workrave program will automatically start.

Issues with Workrave on Mac

Workrave on Mac statistics windowPin
Screenshot of the Workrave statistics window on Mac

Unfortunately there are issues with running Workrave on Mac. I had to turn on Quite Mode because the program crashed when it tried to display an alert to take a break. Also, keystrokes and mouse clicks are not being counted.

I will update this tutorial as more stable versions of Workrave are released. Until then, be sure to take breaks from your computer, and take them often!

Let me know in the comments below if you need help with any step of this tutorial.


Meet Tony

With a strong software engineering background, Tony is determined to demystify the web. Discover why Tony quit his job to pursue this mission. You can join the Tony Teaches Tech community here.

10 thoughts on “How to Install Workrave on Mac”

  1. I’ve been trying to work around the issue of it constantly crashing. Tricky stuff, seemed to do it consistently when taking a break – which largely defeats the point!

    However, I noticed a few things:
    * It usually worked the first time right after compiling.
    * Errors were often spit out about gtk when running from terminal when it crashed/in logs
    * When it worked, the break icons in the display weren’t loaded correctly and showed as placeholder triangles.

    I seem to have got it working on restart now, and I’m not totally sure what to attribute it to. Same launchagent plist as you.

    However, whenever it does stop working, this is how I fix it (uses gnu stow for easy removal/reinstallation – don’t need to touch bin etc). Basically, recompiles and restarts. Seems to function fine. If the icons for the rest break aren’t loaded, I know I’m good to go!

    “`
    #!/usr/bin/env bash
    cd $HOME
    rm -rf ~/Library/Preferences/com.workrave.plist
    rm -rf ~/Library/Preferences/workrave.plist
    rm -rf ~/Applications/workrave-package
    rm -rf ~/.workrave
    # brew install automake autoconf libtool gettext intltool gobject-introspection autoconf-archive gtk+ gtk-mac-integration gtkmm3 gnome-icon-theme hicolor-icon-theme
    # brew link –force gettext libffi
    # git clone https://github.com/palfrey/workrave/
    cd workrave
    # git checkout os-x-fixes
    autoreconf -if
    intltoolize –automake –copy –force
    ./configure –prefix=$HOME/Applications/workrave-package –config-cache
    make
    make install
    stow -d ~/Applications/ workrave-package -t ~
    $HOME/bin/workrave
    “`

    Reply
  2. Hey!

    Thanks for the tutorial! It’s super useful!
    I got it up and running but I can’t seem to find the preferences menu… so I can’t change the duration of a work session. Did you have the same issue?

    Reply
    • Yea, unfortunately the functionality is limited with this workaround. In reading through the discussions on GitHub, it seems that the authors are not interested in dedicating time to further improve functionality on Mac anytime soon.

      Reply
  3. The tray icon is just a white square (dark mode – Mojave 10.14.6)

    No access to preferences. It might be in this file but it is binary. I will try to get a file from a working Win installation /Users/myname/Library/Preferences/workrave.plist

    Other stuff works fine, no crushing so far

    Reply
  4. I can no longer get Workrave working after upgrading to Catalina. Word of warning for anyone thinking about it.

    Reply
  5. I take it back, recompiling seems to have partially fixed it, although it took several attempts to start it without it crashing.

    Reply

Leave a Comment