Workrave is a program that assists in the recovery and prevention of Repetitive Strain Injury (RSI). The program frequently alerts you to take micro-pauses, rest breaks and restricts you to your daily limit.

Related tags

workrave
Overview

Awesome Humane Tech Build Status

Workrave 1.10

Please visit https://workrave.org for more information.

Install

  • Windows: download from https://workrave.org/download
  • Ubuntu: install with the "Ubuntu Software" application. (Note: not working with wayland on Ubuntu 17.10)
  • Ubuntu (and derivatives) Linux latest version:
    Add this PPA to your Software Sources
    ppa:rob-caelers/workrave
    either in the Ubuntu Software application, or from the terminal:
    sudo add-apt-repository ppa:rob-caelers/workrave  
    sudo apt-get update
    
  • Arch Linux users: use sudo pacman -S workrave to install from the community repository
  • Ubuntu and Debian users: sudo apt-get install workrave
  • FreeBSD users: pkg install workrave

Build

This document only discusses compilation on Unix (like OSes).
Information on how to compile Workrave on Windows can be found in

  • build/cmake/README (native compilation on windows) and
  • build/win32/README (cross-compilation on Linux)

Read the 'INSTALL' file for more detailed directions on compilation on Unix and OSX.

Workrave requires that development packages of at least the following software are installed. The version numbers mentioned have been tested during development.

  • GLib (2.16.0)
  • GLibmm (2.19.3)
  • Gtk (2.16.0)
  • Gtkmm (2.16.0)
  • Atk (1.20)
  • Pango (1.22.0)
  • Pangomm (2.14.0)
  • Cairo (1.2.4)
  • Cairomm (1.6.4)
  • DBus (1.0.2)
  • DBus-Glib (0.78)
  • GConf (2.13.5)
  • GConfmm (2.22.0)
  • GDome
  • GStreamer (0.10.10)
  • Libsigc++ (2.0.2)
  • Autoconf with Autoconf Macro Archive (2012.04.04)

Optionally, the following packages are required for gnome support.

  • ORbit (2.14.10)
  • Bonobo (2.15.0)
  • panel-applet (2.19.3)

For OS X, the following steps will install sufficient packages

  1. Install Homebrew
  2. brew install gettext intltool gobject-introspection autoconf-archive gtk+ gtk-mac-integration gtkmm3
  3. brew link --force gettext libffi

Troubleshooting

Show timers applet in Cinnamon

To make timers visible you need to explicitly add Workrave applet to a panel. In the other case only workrave icon is shown.

Technical Information

Have a look at the contrib directory to get a little insight into the different scripting possibilities!

Unix/Linux

  • Workrave uses dconf to store its configuration. dconf-editor can be used to explore and manipulate the values - be careful!
  • Workrave can receive dbus signals. Explore by having a look at the example python script or viewing in qdbusviewer (part of the qttools5-dev-tools package in Ubuntu).

In both of these, workrave is found under the org.workrave key.

Issues
  • Broken update

    Broken update

    Describe the bug

    1. I'm running WR 1.10.37 on ubuntu linux 20.04LTS. My original WR install worked fine for a number of years
    2. WR issued an update ~ two days ago. The update dialog said they'd send an email with instructions. No email was ever received. I tried twice. email address was good. Confirmed with provider.
    3. Now, the countdown timer won't count down, either for rest break or micro break, and it does not matter if Reading Mode is on or off. However, if I select Rest Break it does count down.
    4. I tried uninstalling from Software, and it won't uninstall. Quit works.

    To Reproduce Steps to reproduce the behavior: UNK

    1. Go to '...'
    2. Click on '....'
    3. See error NO ERROR MSG

    Expected behavior

    1. microbreak and rest break should both count down
    2. Uninstall should work

    Screenshots If applicable, add screenshots to help explain your problem. N/A

    ** Linux (please complete the following information in case you encountered the bug on Linux):**

    • Distribution: Ubuntu
    • Distribution Version: 20.04LTS
    • Desktop Environment: Unity (I think)
    • Workrave Version 1.10.37

    Additional context Add any other context about the problem here.

    info-needed 
    opened by sshervais 14
  • Workrave mistakenly launches in German

    Workrave mistakenly launches in German

    Describe the bug I have my default system locale set to en_IE and the language to en_US, but Workrave launches in German when launched from the application menu. Weirdly enough, it always launches in English from the command line, even when I launch the .desktop-file via kiolauncher exec or gtk-launch.

    Output of locale:

    LANG=en_IE.UTF-8
    LANGUAGE=en_US:en_GB:de
    LC_CTYPE=en_IE.UTF-8
    LC_NUMERIC="en_IE.UTF-8"
    LC_TIME="en_IE.UTF-8"
    LC_COLLATE=C
    LC_MONETARY="en_IE.UTF-8"
    LC_MESSAGES=C
    LC_PAPER="en_IE.UTF-8"
    LC_NAME="en_IE.UTF-8"
    LC_ADDRESS="en_IE.UTF-8"
    LC_TELEPHONE="en_IE.UTF-8"
    LC_MEASUREMENT="en_IE.UTF-8"
    LC_IDENTIFICATION="en_IE.UTF-8"
    LC_ALL=
    

    Expected behavior Workrave always launches in English.

    System OS: KDE neon User Edition 5.18 x86_64 based on Ubuntu bionic 18.04

    opened by xeruf 12
  • compilation for Mac 10.12.6

    compilation for Mac 10.12.6

    Hello ! First of all - thanks for a great app !

    I am trying to compile for Mac Sierra 10.12.6.

    at compilation produces error : In file included from OSXGtkMenu.cc:31: ./OSXGtkMenu.hh:51:28: error: unknown type name 'GtkMacDock' static void dock_clicked(IgeMacDock *dock, void *data); ^ ./OSXGtkMenu.hh:35:20: note: expanded from macro 'IgeMacDock' #define IgeMacDock GtkMacDock

    gtk-mac-integration installed using brew

    area: gtk os: macos wontfix 
    opened by ValentinChirikov 9
  • Segfault on Ubuntu 17.10 with Intel Graphics

    Segfault on Ubuntu 17.10 with Intel Graphics

    Hi. Workrave v1_10_20 segfaults on Ubuntu 17.10 (Gnome Shell). It works fine when using my Nvidia card, but crashes while on Intel integrated graphics (prime-select). Tried both modes (after reboots) and problem can be replicated.

    dmesg output: [Tue Nov 7 01:04:11 2017] workrave[5440]: segfault at 0 ip 00007f2471d013ce sp 00007fff4a133560 error 4 in libX11.so.6.3.0[7f2471cc4000+134000]

    I can email you the crash log if you like.

    Thanks.

    opened by KarunaGovind 9
  • Add missing key to gsettings

    Add missing key to gsettings

    Several users on GNOME (including me) have reported this error on startup in Workrave 1.10.18:

    GLib-GIO-ERROR **: Settings schema 'org.workrave.monitor' does not contain a key named 'sensitivity'
    

    This patch is a simple one that just adds the missing key to the schema, which resolves the issue for me.

    opened by pedantic-git 9
  • Add new Bells sound theme

    Add new Bells sound theme

    These are sound effects I've created myself, so I have the legal authority to grant Workrave a license to use them.

    opened by pieterdd 8
  • Add a python script that executes an external bash script on microbreak ...

    Add a python script that executes an external bash script on microbreak ...

    ...start and another on successfull completion of the microbreak without postpone/Skip

    opened by rubo77 8
  • Improve locking the screen and shutting down, introduce suspend/hibernate

    Improve locking the screen and shutting down, introduce suspend/hibernate

    Hello, I have written some code to enable suspending and hibernating the machine from rest break and daily limit windows. This has been a feature I have always missed in Workrave. By the way I have also improved greatly support for locking the screen and shutting down. All these things should now work correctly on most Linux installations currently in use.

    Please review. Greetings, Mateusz Jończyk

    opened by matjon 8
  • Error when installing v1.10.37

    Error when installing v1.10.37

    Describe the bug When updating from v1.10.34 I get the following error, even when running the exe as administator:

    image

    To Reproduce Steps to reproduce the behavior:

    1. Launch workrave-win32-v1.10.37.
    2. Click through until it starts extracting files
    3. See error

    Windows

    • Windows Version: Win 7 Pro SP1 x64
    • Workrave Version: 1.10.37
    os: windows 
    opened by kazerniel 7
  • Audio or video playing in a browser window prevents taking a break

    Audio or video playing in a browser window prevents taking a break

    Describe the bug Sometimes Workrave won't take a break, even when there is no keyboard or mouse movement. It seems to be when I have a browser tab focused in Firefox that is playing video or audio.

    To Reproduce

    1. Go to bandcamp.com and put on some nice music
    2. Run workrave and wait for the micro-break
    3. Break doesn't start even when keyboard and mouse are idle.

    Expected behavior The break should start.

    ** Linux (please complete the following information in case you encountered the bug on Linux):**

    • Distribution: Fedora
    • Distribution Version: 31
    • Desktop Environment: GNOME (Wayland)
    • Workrave Version 1.1.20 (6.fc31)

    Additional context I really like Workrave, thanks for maintaining it :)

    opened by ssssam 7
  • Feature request: suspend/set quiet for a certain amount of time

    Feature request: suspend/set quiet for a certain amount of time

    (Firstly, thanks for maintaining this incredible app, it has been very helpful!)

    I sometimes will switch workrave to "suspended" or "quiet" mode when I don't want any interruption (e.g. doing a presentation or screen sharing at work). However, I always forget to reset it to normal after that, it may take me half a day to realize that it's still suspended.

    I think it would be great if, in the context menu, there's additional options that allows us to set to "suspended" or "quiet" mode for certain amount of time (e.g. 1hour) and automatically reset to normal mode after that.

    opened by blahgeek 0
  • unwanted locked keyboard

    unwanted locked keyboard

    Describe the bug

    (I am not sure this is a bug or a present features, which I would like to de-activate)

    the keyboard gets locked for few seconds when the pop-up appears ....this is a bit annoying if I want to skip/postpone immediately...

    Expected behavior keyboard should be free to use immediately after the pop-up appears

    • Distribution: Mint
    • Distribution Version: 20.1
    • Desktop Environment: Cinnamon 4.8.6
    • Workrave Version 1.10.37

    thanks for your support

    opened by ggrrll 0
  • Crash on startup under Wayland

    Crash on startup under Wayland

    When started under Wayland it crashes on startup before displaying anything. Seems to be the same as this bug since setting env var GDK_BACKEND="x11" fixes the issue.

    Linux

    • Fedora
    • Distribution Version: 34
    • Desktop Environment: KDE/Plasma + Wayland
    • Workrave Version 1.10.44

    Additional context

    gdb stack trace (CLICK HERE)
    (gdb) where
    #0  0x00007ffff60aa2e5 in xcb_take_socket (c=0x74ff8548fa1e0ff3, 
        [email protected]=0x7ffff7d535e0 <return_socket>, 
        [email protected]=0x5555557a00d0, flags=1, 
        [email protected]=0x7fffffffcf20)
        at /usr/src/debug/libxcb-1.13.1-7.fc34.x86_64/src/xcb_out.c:375
    #1  0x00007ffff7d53682 in require_socket.part.0.lto_priv.0 (dpy=0x5555557a00d0)
        at /usr/src/debug/libX11-1.7.0-3.fc34.x86_64/src/xcb_io.c:68
    #2  0x00007ffff7d56a8d in require_socket (dpy=0x5555557a00d0)
        at /usr/src/debug/libX11-1.7.0-3.fc34.x86_64/src/xcb_io.c:602
    #3  _XFlush (dpy=0x5555557a00d0)
        at /usr/src/debug/libX11-1.7.0-3.fc34.x86_64/src/xcb_io.c:597
    #4  0x00007ffff7d56ced in _XGetRequest (dpy=0x5555557a00d0, 
        type=<optimized out>, len=8)
        at /usr/src/debug/libX11-1.7.0-3.fc34.x86_64/src/XlibInt.c:1787
    #5  0x00007ffff7d4aadf in XQueryExtension (dpy=0x5555557a00d0, 
        name=0x7ffff7fa2000 "MIT-SCREEN-SAVER", major_opcode=0x7fffffffcff4, 
        first_event=0x7fffffffcff8, first_error=0x7fffffffcffc)
        at /usr/src/debug/libX11-1.7.0-3.fc34.x86_64/src/QuExt.c:44
    #6  0x00007ffff7d3eaa7 in XInitExtension ([email protected]=0x5555557a00d0, 
        [email protected]=0x7ffff7fa2000 "MIT-SCREEN-SAVER")
        at /usr/src/debug/libX11-1.7.0-3.fc34.x86_64/src/InitExt.c:47
    #7  0x00007ffff61a39b1 in XextAddDisplay (
        extinfo=0x7ffff7fa4070 <_screen_saver_info_data>, dpy=0x5555557a00d0, 
        [email protected]=0x7ffff7fa2000 "MIT-SCREEN-SAVER", 
        [email protected]=0x7ffff7fa4000 <screen_saver_extension_hooks>, 
        [email protected]=1, [email protected]=0x0)
        at /usr/src/debug/libXext-1.3.4-6.fc34.x86_64/src/extutil.c:110
    #8  0x00007ffff7fa1380 in find_display (dpy=<optimized out>)
        at /usr/src/debug/libXScrnSaver-1.2.3-8.fc34.x86_64/src/XScrnSaver.c:77
    #9  0x00007ffff7fa1545 in XScreenSaverQueryExtension (dpy=<optimized out>, 
        event_base_return=0x7fffffffd0ac, error_base_return=0x7fffffffd0a8)
        at /usr/src/debug/libXScrnSaver-1.2.3-8.fc34.x86_64/src/XScrnSaver.c:158
    #10 0x00005555556a3e7c in XScreenSaverMonitor::init (this=0x55555663cda0)
        at ../../../backend/src/unix/XScreenSaverMonitor.cc:71
    #11 0x00005555556a8e69 in UnixInputMonitorFactory::get_monitor (
        this=0x555556598c00, capability=<optimized out>)
        at ../../../backend/src/unix/UnixInputMonitorFactory.cc:112
    #12 0x00005555556a4d60 in InputMonitorFactory::get_monitor (
        capability=IInputMonitorFactory::CAPABILITY_ACTIVITY)
        at ../../../backend/src/InputMonitorFactory.cc:62
    #13 ActivityMonitor::ActivityMonitor (this=<optimized out>, 
        this=<optimized out>) at ../../../backend/src/ActivityMonitor.cc:68
    #14 0x0000555555688059 in Core::init_monitor (this=0x55555584aad0, 
        display_name=<optimized out>) at ../../../backend/src/Core.cc:293
    #15 0x000055555568bbcf in Core::init (this=0x55555584aad0, 
        argc=<optimized out>, argv=<optimized out>, app=<optimized out>, 
        display_name=0x7fffffffe7a3 "wayland-0")
        at ../../../backend/src/Core.cc:176
    #16 0x0000555555644edd in GUI::init_core (this=0x555555768070)
        at /usr/src/debug/workrave-1.10.44-3.fc34.x86_64/frontend/gtkmm/src/GUI.cc:570
    #17 0x000055555562ab8c in GUI::main (this=0x555555768070)
        at /usr/src/debug/workrave-1.10.44-3.fc34.x86_64/frontend/gtkmm/src/GUI.cc:235
    #18 0x000055555566ab62 in run (argc=1, argv=0x7fffffffd3d8)
        at /usr/src/debug/workrave-1.10.44-3.fc34.x86_64/frontend/gtkmm/src/main.cc:68
    #19 0x00007ffff61d9b75 in __libc_start_main (main=0x55555562ac90 <main(int, char**)>, argc=1, argv=0x7fffffffd3d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd3c8) at ../csu/libc-start.c:332
    #20 0x000055555562df2e in _start ()
    

    And here's the Fedora bug I filed.

    opened by matthew-cline 1
  • Non-priority feature: 64-bit build for Windows

    Non-priority feature: 64-bit build for Windows

    I'd like to make a feature request for a feature that isn't super important. A 64-bit build of Workrave for Windows would be a positive. Workrave is about the only software loaded into memory on my computers that's still 32-bit and requires the WOW64 layer.

    improvement os: windows 
    opened by DotNetTester 2
  • Some ideas for additional exercises: this is an example for additional general workout exercises

    Some ideas for additional exercises: this is an example for additional general workout exercises

    I added a bunch of workout exercises to the original exercises. I also included .png files accordingly in an earlier Commit. I love diversification of my exercises and breaks otherwise I easily get bored. And the idea of including workout into work breaks is great, isn't it? Let's be honest, who's doing workout after a long work day?

    Just for personal use, I'd love the idea to include an exercises.xml according to my mood or fitness level on each work day. I'd love to have the possibility to chose from different exercises. But to implement this program logic I do not have the knowledge. But I could contribute exercises if you want :-)

    I could do some different exercises.xml to choose from except from the already existing one: -) the original exercises.xml for RSI-Syndrome

    Further ideas for exercises.xml: -) general workout exercises -) hiking preparation workout exercises (work in progress) -) breathing exercises (like meditation but shorter) -) explicite eye training exercises (lose your googles approach), because these exercises you need to train a lot during a day otherwise you have no success. -) a combination of everything

    For the general workout exercises.xml I just commited: This is just an idea how it could look like... it would need to put more work in to do some better descriptions... and pictures I did not borrow from other sites (where to start with getting free pictures?)...

    Let me know if you're interested and how this works... sorry, I'm completely new to Github. Sorry for mistakes!

    opened by streckerl 0
  • password protection/parent mode

    password protection/parent mode

    Hi, Is there a way to add (or can you add) password protection or parent mode to the software where the settings, the tray icon menu, and app exiting/closing is protected using a master password? This way the app cannot be bypassed. Thanks!

    feature 
    opened by kumar007git 3
  • Feature Request: Option to Toggle User Activity Pausing Break Timers

    Feature Request: Option to Toggle User Activity Pausing Break Timers

    It would be nice to be able to disable the feature where e.g. moving the mouse during a Micro-break causes the timer to pause. An example use-case would be if the user were sitting on their bed or a soft chair and their natural body movements cause the mouse to very slightly move, unpredictably lengthening a Micro-break.

    feature 
    opened by SamuelFoster 1
  • xautolock

    xautolock

    Describe the bug

    workrave is incompatible with xautolock

    To Reproduce Steps to reproduce the behavior:

    1. Install i3
    2. Configure it with:
      $ cat ~/.config/i3/config
      [...]
      exec --no-startup-id workrave
      
      # screensaver
      exec --no-startup-id xset dpms 200 200 200
      # -killer isn't for killing, it's just a secondary timer built in to xautolock
      exec --no-startup-id xautolock -time 3 -locker 'xlock -lockdelay 60 -mode random' -killtime 20 -killer 'systemctl suspend -i'
      bindsym $mod+Shift+l exec --no-startup-id xautolock -locknow
      
    3. Right click Workrave's tray applet -> "Rest Break"
    4. Click "Lock"
    5. The prompt disappears for a second then comes back, without running the xlock

    Expected behavior

    Clicking the Lock button on the Rest Break screen should start my screen locker.

    I think there are maybe two bugs here: even though I have xlock workrave isn't able to trigger it reliably, and it isn't triggering it via xautolock.

    I want Lock to run xautolock -locknow, but I also don't want it to run xlock twice.

    ** Linux (please complete the following information in case you encountered the bug on Linux):**

    • Distribution: ArchLinux
    • Distribution Version: rolling
    • Desktop Environment: i3
    • Workrave Version: 1.10.44-2

    Additional context

    I'm guessing this is the relevant part

    https://github.com/rcaelers/workrave/blob/75d5423a28084bdc2549aec7b512c15480ca5599/frontend/common/src/System.cc#L232-L264

    improvement os: linux 
    opened by kousu 2
  • Crash

    Crash

    I tried to attach that file but it does not seem to have done it. workrave-crashlog.txt

    bug info-needed 
    opened by TMNIrish 0
  • Option

    Option "Start restbreak when screen is locked" doesn't work as expected

    Describe the bug I configured workrave with the "Start restbreak when screen is locked" option enabled. However, once i lock my screen, the timer for the restbreak doesn't reset.

    To Reproduce Steps to reproduce the behavior:

    1. Disable Micro-break by unchecking the box on Preferences menu: "Timers -> Micro-break -> Enable timer"
    2. Enable Rest break by checking the box on Preferences menu: "Timers -> Micro-break -> Enable timer". I also have checked the box "Start restbreak when screen is locked" and unchecked the box "Enable shutting down the computer from the rest screen"
    3. Other options are pretty much default

    Expected behavior Once i lock the screen, the rest break should start. Once i unlock the screen, the rest break timer should be reset. I am using "xflock4" command to lock the screen

    ** Linux (please complete the following information in case you encountered the bug on Linux):**

    • Distribution: OpenSUSE
    • Distribution Version: Tumbleweed
    • Desktop Environment: XFCE 4.10
    • Workrave Version 1.10.44
    env: xfce improvement 
    opened by escrevebastante 1
Releases(v1_10_45)
Open source API management platform

About Fusio is an open source API management platform which helps to build and manage REST APIs. Fusio provides all tools to quickly build an API from

Apioo 970 Jun 5, 2021
Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support

antimicro ?? Important update ?? This repo is currently unmaintained. The code hasn't been updated for a while. But not all is lost, antimicro has a f

null 1.4k Jun 5, 2021
Self Hosted Movie, Series and Anime Watch List

Flox Flox is a self hosted Movie, Series and Animes watch list. It's build on top of Laravel and Vue.js and uses The Movie Database API. The rating ba

Viktor Geringer 927 Jun 6, 2021
Online genealogy

webtrees - online collaborative genealogy Contents License Coding styles and standards Introduction System requirements Internet browser compatibility

Greg Roach 550 Jun 7, 2021
TMSU lets you tags your files and then access them through a nifty virtual filesystem from any other application.

Overview TMSU is a tool for tagging your files. It provides a simple command-line utility for applying tags and a virtual filesystem to give you a tag

Paul Ruane 1.5k Jun 1, 2021
Personal CRM. Remember everything about your friends, family and business relationships.

Personal Relationship Manager Monica is a great open source personal relationship management system. Introduction Purpose Features Who is it for? What

Monica 12.9k Jun 6, 2021
Display and control your Android device

scrcpy (v1.17) Read in another language This application provides display and control of Android devices connected on USB (or over TCP/IP). It does no

Genymobile 49.4k Jun 4, 2021
An Alert Management Web Application

What is 411? Search scheduling Configure Searches to periodically run against a variety of data sources. You can define a custom pipeline of Filters t

Etsy, Inc. 953 Jun 1, 2021
A black hole for Internet advertisements

Network-wide ad blocking via your own Linux hardware The Pi-hole® is a DNS sinkhole that protects your devices from unwanted content, without installi

Pi-hole 31.4k Jun 5, 2021
🔥 Open source static (serverless) status page. Uses hyperfast Go & Hugo, minimal HTML/CSS/JS, customizable, outstanding browser support (IE8+), preloaded CMS, read-only API, badges & more.

Über fast, backwards compatible (IE8+), tiny, and simple status page built with Hugo. Completely free with Netlify. Comes with Netlify CMS, read-only

cState 1.3k Jun 5, 2021
The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis

CyberChef The Cyber Swiss Army Knife CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser.

GCHQ 12k Jun 2, 2021
Open source back-end server for web, mobile and IoT. The backend for busy developers. (self-hosted or hosted)

A scalable, multitenant backend for the cloud. Para is a scalable, multitenant backend server/framework for object persistence and retrieval. It helps

Erudika 395 May 26, 2021