{ pkgs, config, ... }: let suspend = pkgs.writeScriptBin "suspend" '' #!${pkgs.stdenv.shell} ${pkgs.systemd}/bin/systemctl suspend ''; passbemenu = pkgs.writeScriptBin "passbemenu" '' #!${pkgs.stdenv.shell} shopt -s nullglob globstar typeit=0 if [[ $1 == "--type" ]]; then typeit=1 shift fi export BEMENU_BACKEND=wayland prefix=''${PASSWORD_STORE_DIR-~/.password-store} password_files=( $(find -L "$prefix" -type f -name '*.gpg') ) password_files=( "''${password_files[@]#"$prefix"/}" ) password_files=( "''${password_files[@]%.gpg}" ) password=$(printf '%s\n' "''${password_files[@]}" | \ ${pkgs.bemenu}/bin/bemenu --list 20 --ignorecase --prompt 'Pass: ' "$@") [[ -n $password ]] || exit password_value=$(${pkgs.pass-wayland}/bin/pass show "$password" | tail -1 2>/dev/null) ${pkgs.wtype}/bin/wtype "''${password_value}" ''; in { home.packages = [ passbemenu suspend ]; }