9492ddb50e3526582d81eb407f06a44cacae32a4
Ah ah ah, you didn't say the magic word
This gtklock module listens for failed unlock attempts and recreates Dennis Nedry’s “ah ah ah” lockout scene from Jurassic Park.
- Animation: Spawns a looping "Nedry" sprite at a random location on the screen.
- Audio: Plays the "ah ah ah, you didn't say the magic word" clip.
- Safety: Sprites avoid overlapping a configurable "deadzone" (e.g., your login box).
- Performance: Uses pre-warmed audio players for low latency
Requirements
- Build: Meson, Ninja, Rust (Cargo), GTK+3 development headers.
- Runtime:
gtklock,gstreamer,gst-plugins-base,gst-plugins-good(for audio playback).
Build & Install
-
Install Dependencies:
sudo pacman -S meson ninja rust gtk3 gstreamer gst-plugins-base gst-plugins-good -
Build:
meson setup builddir meson compile -C builddir -
Install:
sudo meson install -C builddir
Usage
Run gtklock with the module path:
gtklock -m /usr/lib/gtklock/ahfail-module.so
Arguments
-
--deadzone=X,Y,W,H: Defines a rectangle where sprites will not spawn (e.g., to keep your password field visible).gtklock -m ahfail-module.so -- --deadzone=860,440,200,200(Note the
--separator before module arguments) -
--audio-uri=URI: Override the default audio clip.gtklock -m ahfail-module.so -- --audio-uri=file:///home/user/custom.mp3
Development
- Run Tests:
cargo test - Benchmarks:
cargo test --test benchmarks -- --nocapture - Linting:
cargo clippy
Customization
To change the default sprite or audio:
- Replace files in
assets/. - Update
assets/ahfail.gresource.xml. - Rebuild with Meson.