Skip to content

A browser extension for controlling time spent on unproductive sites

License

Notifications You must be signed in to change notification settings

eero-lehtinen/dawdle-block

Repository files navigation

Notice!! - Development Halted Thanks to Manifest v3

Google won't allow manifest v2 extensions to run after January 2023. This extensions uses manifest v2 only features like background pages and alarms extensively. Migrating to manifest v3 isn't really possible. This project won't be developed further for the forseeable future. The FireFox version will probably keep working for a long time.


Dawdle Block
Dawdle Block

A browser extension for controlling time spent on unproductive sites.

Version 2 Rewrite Underway!

This project is currently being rewritten to be more extendable, maintainable, and reliable. The old project is contained in this repository in the folder "legacy". That is the version currently being distributed in the web stores (v1.5.2). It was written in jQuery using singular mega-files, while the rewrite uses proper Webpack packaging and Jest automated testing with bells and whistles like TypeScript, Preact, and Material-UI.

Download

Official web store links to different browsers below (legacy versions) (will be updated when the rewrite is done).

  

Motivation

I wanted to control my web usage and there was no other extension with the ability to block and allow specific YouTube channels. Dawdle Block is the remedy for that. Also, it permits multiple independent blocking lists and timers (e.g. allowing different rules for each day) when most extensions restrain you into only using one.

Local Environment Set-Up

If you want to clone, build and try this out yourself, ensure that you have installed Git, Node.js, and Yarn. Keep in mind that this is not an alternative for a web store install, because it is a hassle. E.g. Firefox will unload the extension every time the browser is restarted.

Console commands for building:

# Clone this repository
$ git clone https://github.com/birusq/dawdle-block.git

# Go into the repository
$ cd dawdle-block

# Start a process that rebuilds a development version
# of the extension every time a file changes.
# Ctrl + C stops the process.
# Type "dev:firefox" instead for Firefox.
$ yarn dev:chromium

Next you need to figure out how to load unpacked extensions for your browser.

  • In Chrome, go to chrome://extensions and tick "Developer mode" on and click "Load unpacked". Choose the folder "dist/chromium".
  • In Firefox, go to about:debugging#/runtime/this-firefox and click "Load Temporary Add-on". Choose the file "dist/firefox/manifest.json"
  • Other browsers have their own ways of achieving this.

A non-development version without debugging information can be built with the command yarn build. It works fine on Chrome, but on Firefox settings won't load because when the distribution manifest is incompatible with local unpacked loading.

License

MIT