English

ahfail

En skærmlås til Linux og macOS. Skriver du forkert kodeord, dukker Dennis Nedry op og siger "ah ah ah, you didn't say the magic word".

Sprog
Rust
Licens
AGPL-3.0-only
Kører på
Linux (Wayland), Linux (X11), macOS

Skriver du forkert kodeord, kører en animation i loop af mit eget ansigt photoshoppet ind på Dennis Nedry fra Jurassic Park, mens klippet med “ah ah ah, you didn’t say the magic word” spiller. Lyden skrues helt op, så den der prøvede at snige sig ind på din maskine også får det hele med (--no-max-volume hvis du hellere vil være diskret). Under joken er det en rigtig skærmlås.

ahfail          # lås skærmen
ahfail test     # se effekten uden at låse
ahfail doctor   # hvad mangler maskinen?

Den er ét program på Linux, og den finder selv ud af om du kører Wayland eller X11. På Wayland låser den gennem ext-session-lock-v1, så det virker i sway, Hyprland, niri, river, labwc og KDE Plasma 6. GNOME lader ikke andre programmer låse skærmen, så der er den ude. På X11 gør den som i3lock: fuldskærmsvinduer på alle skærme og et greb om tastatur og mus, og kan den ikke få grebet, nægter den at låse i stedet for at vise en lås dine tastetryk går lige igennem.

Kodeordet tjekkes gennem dens egen PAM-tjeneste, /etc/pam.d/ahfail, som pakken installerer selv. Den rører ikke andre pakkers PAM-opsætning, på samme måde som swaylock og gtklock gør det. Den inkluderer login, så systemets pam_faillock gælder også her, og på Arch betyder det at tre forkerte kodeord på et kvarter låser kontoen i ti minutter. Det er værd at vide inden man viser den frem til fredagsbaren.

En skærmlås sidder direkte i login-vejen, så en fejl i den kan i værste fald svække låsen. Der er ingen garantier, og du installerer den på eget ansvar. Det står også i pakken.

Installation

På Arch Linux, som kildepakke eller færdigbygget:

yay -S ahfail
yay -S ahfail-bin

Kør ahfail doctor bagefter. Den fortæller om sessionstypen er understøttet, om PAM-filen ligger rigtigt, om GStreamer kan afspille klippet og om lydstyrken kan styres, med den præcise rettelse hvis noget mangler.

Vil du have den til at låse af sig selv, så peg din idle-dæmon på den:

swayidle -w timeout 300 'ahfail' before-sleep 'ahfail'   # Wayland
xss-lock -- ahfail                                       # X11

macOS

På Mac er det systemets egen låseskærm der låser, og effekten kommer fra en PAM-hook der installeres via Homebrew:

brew tap asger-weirsoee/tap
brew install ahfail

Homebrew skriver bagefter den ene linje ud som skal tilføjes i /etc/pam.d/screensaverui. Det er det eneste manuelle trin.