tvl-depot/users/wpcarro/tools/url-blocker
Vincent Ambo aa122cbae7 style: format entire depot with nixpkgs-fmt
This CL can be used to compare the style of nixpkgs-fmt against other
formatters (nixpkgs, alejandra).

Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: grfn <grfn@gws.fyi>
2022-01-31 16:11:53 +00:00
..
.envrc subtree(users/wpcarro): docking briefcase at '24f5a642' 2021-12-14 02:15:47 +03:00
default.nix style: format entire depot with nixpkgs-fmt 2022-01-31 16:11:53 +00:00
Main.hs subtree(users/wpcarro): docking briefcase at '24f5a642' 2021-12-14 02:15:47 +03:00
README.md refactor(wpcarro): Remove briefcase references 2021-12-24 01:46:31 +00:00
rules.json subtree(users/wpcarro): docking briefcase at '24f5a642' 2021-12-14 02:15:47 +03:00
shell.nix fix(wpcarro/nix): Remove <briefcase> references 2021-12-15 15:49:40 +00:00

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.