tvl-depot/users/wpcarro/tools/url-blocker/README.md
William Carroll c1e381eecc refactor(wpcarro): Remove briefcase references
TL;DR:
- prefer WPCARRO env-var to BRIEFCASE
- remove repository URLs from Emacs libraries
- prefer tvl-depot-path where possible
- reduce the scope of constants.el
- prune (some not all) stale CI configuration

Change-Id: I21e9130402502ec6fa2fc4b46753c890069be62d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4545
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2021-12-24 01:46:31 +00:00

1,022 B

url-blocker

url-blocker blocks the URLs that you want to block when you want it to block them.

Let's say that you don't want to visit Twitter during the work week. Create the file ~/.config/url-blocker/rules.json with the following contents and url-blocker will take care of the rest.

# ~/.config/url-blocker/rules.json
[
  {
    "urls": [
      "twitter.com",
      "www.twitter.com",
    ],
    "allowed": [
      {
        "day": "Saturday",
        "timeslots": [
          "00:00-11:59"
        ]
      },
      {
        "day": "Sunday",
        "timeslots": [
          "00:00-11:59"
        ]
      }
    ]
  }
]

Installation

$ nix-env -iA users.wpcarro.tools.url-blocker

How does it work?

systemd is intended to run url-blocker once every minute. url-blocker will read /etc/hosts and map the URLs defined in rules.json to 127.0.0.1 when you want them blocked. Because systemd run once every minute, /etc/hosts should be current to the minute as well.