Giter Site home page Giter Site logo

zhhz / stretchly Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hovancik/stretchly

0.0 2.0 0.0 8.15 MB

break time reminder app

Home Page: https://hovancik.net/stretchly

License: BSD 2-Clause "Simplified" License

HTML 12.75% JavaScript 83.83% CSS 3.41%

stretchly's Introduction

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

Humans and Tools

Sounds credits

Sounds used in this application are listed here.

License

See LICENSE file.

stretchly's People

Contributors

hovancik avatar jcbarry avatar intron avatar laem avatar bramborman avatar sxmanton avatar alexalekseyenko avatar cloo avatar greenkeeper[bot] avatar

Watchers

Zhonghai Zuo avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.