{
  lib,
  pkgs,
  config,
  ...
}: let
  lockMessage = "This computer has been locked, please enter your password to continue";
in {
  config = {
    security.apparmor = {
      enable = true;
      killUnconfinedConfinables = true;
    };

    boot.initrd.availableKernelModules = [
      "aesni_intel"
      "cryptd"
    ];

    boot.initrd.luks.devices = {
      nix.device = "/dev/disk/by-label/NIX";
      swap.device = "/dev/disk/by-label/SWAP";
      hdd.device = "/dev/disk/by-label/HDD";
    };

    services.physlock = {
      inherit lockMessage;
      enable = true;
      allowAnyUser = true;
    };
  };

  home = let
    lockCommand =
      lib.pipe ''
        ${pkgs.sway}/bin/swaymsg output "*" dpms off
        ${config.security.wrapperDir}/physlock -s -p "${lockMessage}"
        while [ $(${pkgs.sway}/bin/swaymsg -t get_seats | ${pkgs.jq}/bin/jq "[.[] | .capabilities] | max") -eq 0 ]; do ${pkgs.coreutils}/bin/sleep 0.1; done
        ${pkgs.sway}/bin/swaymsg output "*" dpms on
      '' [
        (lib.splitString "\n")
        (lib.filter (line: line != ""))
        (lib.concatStringsSep " && ")
      ];
  in {
    services.swayidle = {
      enable = true;
      timeouts = [
        {
          timeout = 60;
          command = lockCommand;
        }
      ];
    };
    home.packages = [
      (pkgs.writeScriptBin "lock" lockCommand)
    ];
  };
}
