Nightshade helps you work smarter by forcing you to take breaks throughout the day. It works by turning the power off on your monitors after you have been working for a while then turning them back on after you've taken a break. Rinse and repeat.
If you've ever struggled with taking breaks, found secondary tasks lagging behind, or feel overworked this might be the solution for you.
- Encourages break taking and multitasking by turning off all monitors after 20 minutes; then automatically turning them back on after 4 minutes.
- Multiple computers can be synchronized across a local network to encourage break-taking at the same time.
- Win32 power management APIs and the VESA Monitor Control Command Set (MCCS) are used to find and control the attached displays.
- Uses boost::asio to synchronize multiple nightshade clients across the local network using a UDP broadcast mechanism.
- Uses synchronization mechanisms to handle timers -- results in zero CPU utilization between timer events.
- Multi-threaded design.
nightshade [OPTION...]
-d, --debug Enable console window
-f, --focus [=arg(=20)] Number of minutes in a work interval (default: 20)
-b, --break [=arg(=20)] Number of minutes in a break (default: 4)
-h, --help Print usage
- Boost (asio) - https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio.html (external)
- cxxopts - https://github.com/jarro2783/cxxopts (git submodule)
-
Windows Logging
-
Events
-
Multi-monitor support
-
Program options
-
Customizable durations
- Should only power on monitors that have been powered off by the program.
- Multiple clients should synchronize smallest time remaining.