Commit Graph

15 Commits

Author SHA1 Message Date
Asger Geel Weirsøe
f93ca6267c feat: add ahfail-display standalone binary
Implements the ahfail-display binary crate: GTK popup window that spawns
the Nedry sprite and plays the audio clip, with SIGTERM handling, 15-minute
failsafe, deadzone CLI parsing, volume save/restore, and update check.
Adds a build.rs that compiles GResources via glib-compile-resources so the
binary can be built with plain `cargo build` outside of Meson.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 11:54:22 +02:00
Asger Geel Weirsøe
e1f8c1d58f fix: update check — handle spaced JSON, move cache touch after HTTP success, add timeouts and multi-monitor guard 2026-05-06 11:51:02 +02:00
Asger Geel Weirsøe
468699e316 feat: add rate-limited update check with desktop notification
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:55:11 +02:00
Asger Geel Weirsøe
355828d4d9 fix: remove redundant volume_state=None, improve pactl volume parser for stereo sinks 2026-05-06 09:53:27 +02:00
Asger Geel Weirsøe
74e0f544a0 feat: add volume save/restore on failure/unload
On the first failed unlock attempt, save the current system volume and
mute state then set volume to maximum unmuted; restore on g_module_unload.
A lock file under XDG_RUNTIME_DIR prevents double-acquisition when
multiple gtklock windows are active.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:50:49 +02:00
Asger Geel Weirsøe
7913ced403 chore: remove unused imports, stale deps, and unnecessary unsafe block in ahfail-gtklock 2026-05-06 09:47:39 +02:00
Asger Geel Weirsøe
097dd52998 refactor: wire ahfail-gtklock to use ahfail-ui for animation/audio/display
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:38:35 +02:00
Asger Geel Weirsøe
f05e93b75e fix: image.show(), private ahfail_get_resource, saturating_sub in display
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:35:02 +02:00
Asger Geel Weirsøe
3dc0733cd0 feat: add ahfail-ui crate with animation, audio, display, config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:28:14 +02:00
Asger Geel Weirsøe
2b89653be6 refactor: remove dead utils/bench.rs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:25:39 +02:00
Asger Geel Weirsøe
8dd06377fc refactor: convert to Cargo workspace, move gtklock crate
Replaces the single-crate Cargo.toml with a workspace containing
ahfail-gtklock (migrated from root src/) and three stub crates
(ahfail-ui, ahfail-pam, ahfail-display). Updates meson.build to
build with -p ahfail-gtklock.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 16:23:31 +02:00
Asger Geel Weirsøe
9c546c69ee Add implementation plan for PAM rewrite
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 16:17:05 +02:00
Asger Geel Weirsøe
3cdbc4fec9 Add design doc for PAM module + cross-platform rewrite
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 16:09:25 +02:00
Asger Geel Weirsøe
382b5a489e Code 2025-11-30 21:08:42 +01:00
Asger Geel Weirsøe
8c08e33ba0 initial commit 2025-11-30 20:52:00 +01:00