diff --git a/lass/5pkgs/otpmenu/default.nix b/lass/5pkgs/otpmenu/default.nix
index fe6d5b94c..fffe47005 100644
--- a/lass/5pkgs/otpmenu/default.nix
+++ b/lass/5pkgs/otpmenu/default.nix
@@ -1,10 +1,11 @@
 { pkgs }:
-pkgs.writeDashBin "otpmenu" ''
+pkgs.writers.writeDashBin "otpmenu" ''
+set -efux
 x=$(${pkgs.pass}/bin/pass git ls-files '*/otp.gpg' \
   | ${pkgs.gnused}/bin/sed 's:/otp\.gpg$::' \
   | ${pkgs.dmenu}/bin/dmenu
 )
 
 otp=$(${(pkgs.pass.withExtensions (ext: [ ext.pass-otp ]))}/bin/pass otp code "$x/otp")
-printf %s "$otp" | ${pkgs.xdotool}/bin/xdotool type -f -
+printf %s "$otp" | ${pkgs.wtype}/bin/wtype -s 1 - || printf %s "$otp" | ${pkgs.xdotool}/bin/xdotool type -f -
 ''