Dotfiles/setup/modules
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
..
Desktop-Environments feat(presence-detect): mirror camera via v4l2loopback so the daemon never blocks it 2026-07-10 16:39:11 +02:00
FreeipaAnsible refactor(ansipa): dev_security-scan → dev_mon_clamscan, report to CheckMK; drop SMB scan pipeline 2026-07-02 13:49:18 +02:00
lib fix(flatpak): apply QT_QPA_PLATFORMTHEME override alongside GTK_THEME 2026-07-10 16:23:49 +02:00
optional-Modules/apps feat(greeter): cyberqueer ReGreet theme + wire greetd into installers 2026-07-04 13:37:30 +02:00
core-packages.sh fix(core-packages): make PipeWire the jack/pulse provider to avoid DE conflict 2026-06-27 13:25:49 +02:00
core.sh fix(modules): resolve rust/rustup conflict and greetd config-dir abort 2026-06-27 04:15:36 +02:00
package-managers.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
shell-setup.sh fix(installer): flush stray tty input, split shell rc's from shell setup 2026-07-03 14:22:03 +02:00