Dotfiles/desktopenvs/hyprlua/scripts
Amir Alexander Abdelbaki defa69faab feat(presence-detect): mirror camera via v4l2loopback so the daemon never blocks it
presence-detect.sh now feeds the real webcam into a v4l2loopback virtual
device (/dev/video42) via a self-healing ffmpeg background process, and reads
motion off that mirror instead of opening the physical camera directly. This
means the daemon's 20s-interval checks never contend with other apps (video
calls, howdy) for exclusive camera access. Falls back to direct camera access
if the loopback isn't set up yet, so the feature degrades gracefully rather
than breaking.

New etc-v4l2loopback/ ships the modules-load.d/modprobe.d config (fixed
video_nr=42, exclusive_caps=1) following the repo's existing etc-greetd/
etc-lightdm/ convention. Deliberately no runtime sudo/modprobe calls inside
the daemon itself — the module loads declaratively at boot instead, matching
this repo's existing caution around unattended sudo.

hyprlua.sh and niri.sh installers now pull in linux-headers,
v4l2loopback-dkms, and v4l2loopback-utils and deploy the module config
immediately. sysupdate.sh gained _ensure_v4l2loopback(), wired into
sync_configs(), so existing machines pick up the new packages and /etc
config on their next --config or --both run without needing a fresh install.

enroll-biometrics.sh's camera picker now excludes the loopback device itself
(by card_label) so configuring the real camera can't accidentally target the
mirror it feeds.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-10 16:39:11 +02:00
..
deprecated feat(hyprlua): add astal-menu popup, replacing nwg-dock + nwg-drawer 2026-07-05 00:11:39 +02:00
python feat(presence-detect): switch to motion detection, adaptive interval, shared caffeine lock 2026-07-10 16:23:49 +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-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): mirror camera via v4l2loopback so the daemon never blocks it 2026-07-10 16:39:11 +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