Skip to main content

Block distracting websites and set up a Pomodoro timer. Focus on your work.

Project description

Be Productive

A tool that let's you focus on your work by blocking distracting websites. Optionally with a timer for work sessions, using the Pomodoro technique.

Install

To install Be Productive: pip install beproductive

If you use Windows, it's recommended to pip install win10toast for nice Windows notifications.

You don't have to install win10toast, but without it you will not get visible and audible notifications for Pomodoro. However, all notifications are also printed in your command line interface.

How to Use

Windows

You have to open your command line tool with administrator privileges.

Linux (and MacOS?)

You have to run Be Productive with root privileges, either with sudo before every command or once with su.

Block / Unblock Websites

Block websites:

python -m beproductive

Block websites for x minutes:

python -m beproductive block --time 45

Unblock all websites:

python -m beproductive unblock

Start a Pomodoro session:

python -m beproductive pomodoro

Pomodoro

The Pomodoro feature blocks your defined websites for 25 minutes. It notifies you to take a break and gives you access to all websites for 5 minutes. Although I recommend getting up and stretching instead :) This cycle is repeated 4 times.

You can customize Pomodoros. This is how you run 5 Pomodoros of 45 minutes with 10 minute breaks:

python -m beproductive pomodoro --time 45 --breaktime 10 --pomodoros 5
python -m beproductive pomodoro -t 45 -b 10 -p 5

Blocked Websites

These websites are blocked per default, but you can add and remove websites easily. You can view all blocked websites with this command:

python -m beproductive [--list/-l]
twitter.com
youtube.com
facebook.com
instagram.com
reddit.com
netflix.com
amazon.com
linkedin.com

Customizing Blocklist

To add websites to the blocklist:

python -m beproductive [--add/-a] quora.com wired.com

To remove websites from blocklist:

python -m beproductive [--remove/-r] quora.com wired.com

Batch files

For quick access:

  1. Create batch files for the commands you need.
  2. Add a shortcut to each batch file to your desktop.
  3. Right click on the shortcut
  4. In the Shortcut tab, click Advanced
  5. Check the Run as Administrator box
  6. You can even add a key binding.

I used:

  • Ctrl + Alt + B to block all sites for 1 hour
  • Ctrl + Alt + U to unblock all sites
  • Ctrl + Alt + P to run a Pomodoro set

Example for a batch file block.bat: python -m beproductive block 60

Behind the Scenes

The script blocks URLs by modifying the hosts file. Blocked URLs are redirected to 127.0.0.1. The script backs up the original hosts file. You will not lose any customizations and you can always reset to the original state.

Roadmap

  • Notifications for Linux (https://pypi.org/project/notify2/) and Mac (?)
  • Improve architecture, maybe use threads instead of sleep()
  • Set up a schedule, i.e., block websites between 9am and 5pm

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beproductive-0.2.5.tar.gz (14.1 kB view hashes)

Uploaded Source

Built Distribution

beproductive-0.2.5-py3-none-any.whl (13.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page