{
  lib,
  inputs',
  pkgs,
  config,
  ...
}:
let
  inherit (config.modules.meta) username;
  calibrePlugins = inputs'.calibre-plugins.packages;
in
{
  hjem = {
    users.${username} = {
      enable = true;
      imports = [
        ./programs
        ./misc
      ];

      files = {
        ".config/calibre/plugins/ACSM Input.zip".source = calibrePlugins.acsm-calibre-plugin;
        ".config/calibre/plugins/DeDRM.zip".source = calibrePlugins.dedrm-plugin;
      };
    };
    specialArgs = {
      libmy = lib.my;
    };
    clobberByDefault = true;
  };

  users.users.${username}.packages =
    [
      inputs'.nur.packages.grayjay
    ]
    ++ (with pkgs; [
      keepassxc
      fragments
      element-desktop
      libreoffice
      loupe
      pwvucontrol
      thunderbird
      protonmail-bridge-gui
      tagger
      kid3
      hoppscotch

      # proprietary
      obsidian

      # CLI tools
      jhead
      fdupes
      exiftool
      sshfs
      wl-clipboard

      # custom
      nysh
      scripts.nixedit
      scripts.set-background
      scripts.fishl
      scripts.nrun
      scripts.nruni
      scripts.rpaste
      scripts.genswitch
      scripts.gentest
      scripts.editsym
      scripts.deployswitch
      scripts.deploytest
      scripts.screenshot
    ]);
}