/stretchly

break time reminder app

Primary LanguageJavaScriptBSD 2-Clause "Simplified" LicenseBSD-2-Clause

stretchly Build StatusBuild statusJavaScript Style Guide bitHound Overall Score bitHound Dependencies bitHound Dev Dependencies bitHound Codecodecov

break time reminder app

stretchly is cross-platform electron app that reminds you to take breaks when working with computer.

Become a Patron!

By default, it runs in your tray and shows reminder window every 10 minutes, that is open for 20 seconds, containing idea for microbreak.

Every 30 minutes, it shows window containing idea for longer 5 minute break.

User gets notified 30 seconds before breaks to be able to prepare to pause the work.

You can finish break or microbreak early, by clicking the link at the bottom or by using Ctrl/Cmd + x keyboard shortcut (when not in strict mode).

You can pause/resume reminding of breaks. On Windows and macOS, you can set app to start at login.

You can also skip to the next break or microbreak anytime from menu, or reset (restart) breaks.

Tray tooltip shows information about time left till next (micro)break, number of microbreaks until next break or time left in pause till breaks resume.

Microbreaks and breaks can be customized:

  • you can set duration and interval of break
  • you can enable/disable breaks
  • you can enable/disable strict mode (breaks can't be finished early)

  • you can choose from different color schemes
  • you can pick a sound to be played at the end of the break

  • you can set break window to be fullscreen
  • you can disable showing of break ideas
  • you can disable showing of break and microbreak notifications
  • you can disable monitoring of system idle time for natural breaks (when user leaves and after return idle time is greater then break duration, stretchly will reset breaks)
  • you can choose language for interface

All settings can be reset to defaults.

Advanced settings

All settings are saved in JSON file. To learn more about how to find it, read this or use Ctrl/Cmd + d shortcut in About window. Related code looks like this:

const dir = app.getPath('userData')
const settingsFile = `${dir}/config.json`

Editing break/microbreak ideas

In config file, change useIdeasFromSettings: false, to useIdeasFromSettings: true, and edit breakIdeas and microbreakIdeas.

Editing break/microbreak notification interval

In config file, change breakNotificationInterval: 30000, to whatever value you want. 30000 is 30 seconds. Sane goes for microbreak.

New version notification

In config file, set notifyNewVersion: false, to disable showing of new version's notification.

Install Github All Releases

Latest installers for macOS, Windows, Linux and FreeBSD can be found here.

On macOS you can install it by running brew update && brew cask install stretchly

You can create installer by running npm run pack or npm run dist after npm install.

Running from source

To run app you will need nodejs. Clone the repo, run npm install and then simply do npm start to start stretchly.

It should run on any electron supported platform. Tested on OS X, Windows and Ubuntu Linux.

Linux note

Please see http://electron.atom.io/docs/api/tray/ for Electron's Tray Linux specifics. Having libappindicator1 installed should be enough for stretchly. For Natural breaks, you might need some packages too (libxss-dev).

Development

Feel free to join development of this app via Issues and Pull Requests. Before implementing a feature, please open an Issue first, so we can be sure that no-one else is working on it and that the changes will be accepted.

Debugging

  • one can use Ctrl/Cmd + d shortcut in About window to show debug information:
    • location of settings file
    • time left and reference of break planner

Known issues

TODOs and Ideas

  • tests
  • PR tools
  • make installers/executables
  • create about page
  • only one instance
  • create longer breaks (5min every 30 minutes)
  • create settings for breaks
  • remember settings after restart
  • autostart app
  • start break anytime from menu
  • sound notification at the end of the break
  • strict mode (can't finish break early)
  • information about when will be the next break
  • create keyboard shortcuts
  • color-picker for themes
  • some kind of silent mode (see #44)
  • history/timeline of breaks
  • localization support (l12n, gettetxt via Crowdin, Weblate or so)

Contributors

(by date of the first contribution)

  • Jan Hovancik, @hovancik, hovancik.net
  • Martina Mocinecova, (stretchly logo), color schemes
  • Jason Barry, @JCBarry, jcbarry.com
  • Alex Alekseyenko, @alexalekseyenko
  • Sean Manton, @sxmanton
  • Yuriy Gromchenko, @gromchen
  • Mael, @laem
  • Marian Dolinský, @bramborman
  • midpoint, @midpoint
  • stothew, @stothew
  • Zhivko Kabaivanov, @unholyHub

Humans and Tools

Sounds credits

Sounds used in this application are listed here.

License

See LICENSE file.