Dotfiles/desktopenvs/hyprlua/scripts
Amir Alexander Abdelbaki c2fa8d3e75 feat(presence-detect): back off while another app holds the camera
Before each tick, check whether another process already has the real camera
open (fuser, which sees same-user holders without root — every camera app runs
as us). If so, skip the read entirely for that tick: attempting would be
pointless (we'd get EBUSY) and a simultaneous open could make the other app
fail. A camera in use is proof the user is present, so mark presence and wait
it out, touching the camera zero times for the whole duration another app holds
it — instead of poking it every tick and racing the app for access.

V4L2 has no way to be notified that another app wants the device, so this
can't preempt an in-progress read; it just guarantees we never contend while
another app is already streaming. Falls through to a normal read (and the
Python helper's exit-3 busy path) if fuser isn't installed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 04:11:16 +02:00
..
deprecated feat(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
python fix(presence-detect): read camera directly instead of v4l2loopback mirror 2026-07-11 03:51:44 +02:00
workspacefocus fixed workspace navigation 2026-05-19 18:26:28 +02:00
_toggle_Template.tmplsh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
activewindow chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
amssh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
astal-menu-start.sh fix(astal-menu): stop LD_PRELOAD leaking into launched apps (Firefox crash) 2026-07-05 19:14:16 +02:00
batteryperc chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
bluetooth-applet.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
caffeine-manual-status.sh feat(presence-detect): 4-state caffeine widget + steadier, faster detection 2026-07-11 03:07:22 +02:00
caffeine-status.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
caffeine.sh feat(presence-detect): switch to motion detection, adaptive interval, shared caffeine lock 2026-07-10 16:23:49 +02:00
calender-fix.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
date.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
dysk-phydisks.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
enroll-biometrics.sh feat(presence-detect): mirror camera via v4l2loopback so the daemon never blocks it 2026-07-10 16:39:11 +02:00
ewwstart-niri.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
ewwstart.sh fix(eww): stop duplicate stacked bars from ewwstart race 2026-06-28 02:23:45 +02:00
filepicker-clipboard.sh fix(hyprlua): spawn filepicker floating, compact, centred on the cursor 2026-07-04 15:06:37 +02:00
foldersearch.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
frequentcommands.list feat(hyprlua): wire chamel daemon + expand frequentcommands 2026-06-11 15:54:20 +02:00
getispeed.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
getvol chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
helpmenu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
hypr-nav fix(hyprlua): spatial (transform-aware) monitor-jump fallback 2026-07-09 16:49:18 +02:00
hyprland-toggle-touchpad.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
ip chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
journal.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
menu-toggle.sh perf(astal-menu): use gdbus Activate fast path in menu-toggle.sh 2026-07-09 09:18:34 +02:00
menu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
monitor-adjacent fix(hyprlua): spatial (transform-aware) monitor-jump fallback 2026-07-09 16:49:18 +02:00
monitor-manager style(astal-menu): unfullscreen glyphs, animated takeover, CyberQueer TUIs 2026-07-07 13:43:11 +02:00
monitorhandler.sh refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
onscreenkb.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
playerget chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
playpause.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
presence-detect.sh feat(presence-detect): back off while another app holds the camera 2026-07-11 04:11:16 +02:00
presence-status.sh feat(presence-detect): skip the camera entirely during a manual caffeine session 2026-07-11 04:01:16 +02:00
pwr-dmenu.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
screenrec.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenrotationacw.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenrotationwcw.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
screenshot.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
time.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-notify.sh.old feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer-pick style(astal-menu): unfullscreen glyphs, animated takeover, CyberQueer TUIs 2026-07-07 13:43:11 +02:00
timer-run feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
timer.sh.old feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
toggle-layout.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
togglebar.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
togglewinbars.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
ulwatchdog.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
unified-rotate.sh fix(rotate): add pen/stylus rotation with explicit output mapping 2026-05-23 10:23:22 +02:00
uptime.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
wallpaper-picker refactor(hyprlua): move hypr-usr/ into hypr/usr/ and wire sysupdate sync 2026-06-11 15:46:01 +02:00
windowswitcher feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
wofi-file-search.sh feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00
workspace feat: add hyprlua config set and migrate hyprland envvars to dedicated file 2026-05-19 08:50:23 +02:00