{
  config,
  pkgs,
  ...
}: let
  modifier = config.windowManager.modifierKey;
in {
  roles.email = {
    enable = true;
    email = "tristan.beedell@cryoserver.com";
    terminal = false;
  };
  programs.git.extraConfig = {
    "includeIf \"gitdir:~/Documents/personal/\"" = {
      path = "~/Documents/personal/.gitconfig";
    };
  };

  home.packages = [
    pkgs.drawio
    pkgs.thunderbird
    pkgs.remmina
    pkgs.postman
    pkgs.devcontainer
    (pkgs.writeShellScriptBin "devcontainer-open" (
      let
        jq = "${pkgs.jq}/bin/jq";
        devcontainer = "${pkgs.devcontainer}/bin/devcontainer";
      in ''
        res=$(${devcontainer} up --workspace-folder .)
        outcome=$(echo $res | ${jq} -r '.outcome')
        [[ $outcome = "success" ]] || exit 1
        containerId=$(echo $res | ${jq} -r '.containerId')
        remoteWorkspaceFolder=$(echo $res | ${jq} -r '.remoteWorkspaceFolder')
        docker exec -it --workdir=$remoteWorkspaceFolder $containerId bash
      ''
    ))
  ];

  home.sessionVariables = {
    CYPRESS_INSTALL_BINARY = 0;
    CYPRESS_RUN_BINARY = "${pkgs.cypress}/bin/Cypress";
    MONGOMS_SYSTEM_BINARY = "${pkgs.callPackage ../../pkgs/mongodb.nix pkgs}/bin/mongod";
  };

  gtk.gtk3.bookmarks = [
    "file:///home/tristan/OneDrive/ OneDrive"
  ];

  programs.vscode = {
    package = pkgs.vscode;
    profiles.default.extensions = with pkgs; [
      vscode-extensions.ms-azuretools.vscode-docker
    ];
  };

  wayland.windowManager.hyprland.settings = {
    bind = [
      "${modifier}, e, focuswindow, thunderbird"
    ];
  };

  programs.chromium = {
    extensions = [
    {id = "bfogiafebfohielmmehodmfbbebbbpei";}
    ];
  };
}
