{
  lib,
  pkgs,
  config,
  ...
}: let
  user = config.user;
in {
  nixpkgs.config.allowUnfreePredicate = pkg:
    builtins.elem (lib.getName pkg) [
      # nonfree vscode required for dev containers
      "vscode"
      "steam-run"
      "postman"
      "drawio" # the creator had a hissyfit over a negative review: https://github.com/jgraph/drawio/discussions/4623
    ];

  nixpkgs.config.permittedInsecurePackages = [
    "openssl-1.1.1w" # required for mongodb
    "electron-27.3.11"
  ];

  networking = {
    networkmanager = {
      plugins = [pkgs.networkmanager-openvpn];
    };
  };

  # breaks some work projects ):<
  networking.stevenblack.enable = false;

  nixpkgs.overlays = [(import ../../lib/cypress.nix)];

  services.onedrive.enable = true;

  users.users.${user}.extraGroups = ["docker"];
  virtualisation.docker = {
    enable = true;
    storageDriver = "btrfs";
    rootless = {
      enable = false;
      setSocketVariable = true;
      daemon.settings = {
        "userns-remap" = "default";
      };
    };
  };
}
