{
  config,
  lib,
  pkgs,
  ...
}: let
  addNuShebang = path:
    builtins.concatStringsSep "\n\n" [
      "#!${pkgs.nushellFull}/bin/nu"
      (builtins.readFile path)
    ];
in {
  config = {
    networking = {
      networkmanager = {
        wifi.backend = "wpa_supplicant";
        dispatcherScripts = [
          {
            type = "basic";
            source = pkgs.writeText "dispatcher" (addNuShebang ../../other/scripts/dispatcher.nu);
          }
        ];
      };
      hosts = {
        "127.0.0.1" = [
          "www.tiktok.com"
          "www.twitter.com"
          "www.instagram.com"
          "www.facebook.com"
          "www.snapchat.com"

          "tiktok.com"
          "twitter.com"
          "instagram.com"
          "facebook.com"
          "snapchat.com"

          "google-analytics.com"
          "stats.g.doubleclick.net"
          "googleadservices.com"
          "googletagmanager.com"
          "googletagservices.com"
          "googlesyndication.com"
        ];
      };
    };
    environment.etc = with builtins; (
      listToAttrs (
        map (v: {
          name = "networkhooks/${v}";
          value = {
            text = addNuShebang ../../other/scripts/networkhooks/${v};
            mode = "0755";
          };
        })
        (attrNames (readDir ../../other/scripts/networkhooks))
      )
    );
    systemd.services."NetworkManager-wait-online".enable = false;
    services.mullvad-vpn.enable = true;
    home-manager.users.jade = {pkgs, ...}: {
      home.packages = with pkgs; [
        networkmanagerapplet
        mullvad-vpn
        speedtest-cli
        macchanger
      ];
    };
  };
}
