• v0.9.0 5817074f1a

    v0.9.0
    Some checks failed
    Test / test (push) Failing after 4m25s
    Release / release (push) Failing after 6m37s
    Stable

    agw released this 2026-05-07 22:01:02 +02:00 | 0 commits to master since this release

    v0.9.0 pre-release

    This release brings full X11 support via the PAM module path and a number of fixes discovered during real-world testing on Arch Linux with i3lock.

    Note: macOS support is implemented and compiles correctly, but has not been tested on a real macOS machine. Treat macOS as untested for this release.

    What's new

    • PAM module fires on failures — the module line must appear before auth include system-auth in the locker's PAM config; placing it after means PAM flow control skips our module on every failed attempt
    • Sprite-sized window — replaced the full-screen GTK overlay with a window sized to the sprite, eliminating the opaque background that blocked the lock screen
    • Unlock detection via XGrabKeyboard — replaced unreliable process-name scanning with an X11 keyboard grab probe; i3lock holds the grab while locked and releases it on successful auth
    • Shadow suppression — sets _COMPTON_SHADOW=0 on the X window directly, so picom/compton skips the shadow without requiring any compositor config changes
    • Single-instance guard — flock on /tmp/ahfail-display.lock prevents multiple animations stacking on rapid failed attempts
    • macOS cfg guards — all X11-specific code is behind #[cfg(target_os = "linux")]; macOS builds compile cleanly and fall back to SIGTERM-based unlock detection
    • Debug logging removeddlog/plog no longer write to /tmp on end-user machines

    Known limitations

    • swaylock / hyprlock (Wayland): the PAM module fires and audio plays, but the animation cannot appear over the lock screen — the Wayland session-lock protocol restricts rendering to the locker process. Full support requires a plugin API from those projects. See the roadmap in the README.
    • macOS: untested on real hardware for this release.

    Installation

    See the README for PAM configuration instructions. The ahfail line must be the first auth entry in the locker's PAM file.

    Downloads