_add_pipewire_camera() { local conf="$1" if [ -f "$conf" ] && ! grep -q 'PipeWireCamera' "$conf"; then if grep -q 'enable-features=' "$conf"; then sed -i 's/--enable-features=\([^ ]*\)/--enable-features=\1,PipeWireCamera/' "$conf" else echo '--enable-features=PipeWireCamera' >> "$conf" fi fi } _remove_pipewire_camera() { local conf="$1" [ -f "$conf" ] && sed -i 's/,PipeWireCamera//g' "$conf" } _install_sleep_hook() { cp /usr/share/intel-ipu7-camera/camera-sleep-hook /usr/lib/systemd/system-sleep/camera-sleep-hook chmod 755 /usr/lib/systemd/system-sleep/camera-sleep-hook } post_install() { _install_sleep_hook systemctl daemon-reload systemctl disable camera-init.service v4l2-relayd@ipu7.service 2>/dev/null || true systemctl enable intel-ipu7-camera.service udevadm control --reload-rules 2>/dev/null || true if [ -n "$SUDO_USER" ]; then usermod -aG video "$SUDO_USER" 2>/dev/null || true _add_pipewire_camera "/home/$SUDO_USER/.config/chromium-flags.conf" _add_pipewire_camera "/home/$SUDO_USER/.config/brave-flags.conf" _add_pipewire_camera "/home/$SUDO_USER/.config/chrome-flags.conf" fi } post_upgrade() { _install_sleep_hook systemctl daemon-reload systemctl disable camera-init.service v4l2-relayd@ipu7.service 2>/dev/null || true systemctl enable intel-ipu7-camera.service # Disable old camera-feed-watch (replaced by v4l2-relayd) systemctl --global disable camera-feed-watch.service 2>/dev/null || true udevadm control --reload-rules 2>/dev/null || true if [ -n "$SUDO_USER" ]; then _add_pipewire_camera "/home/$SUDO_USER/.config/chromium-flags.conf" _add_pipewire_camera "/home/$SUDO_USER/.config/brave-flags.conf" _add_pipewire_camera "/home/$SUDO_USER/.config/chrome-flags.conf" fi } pre_remove() { systemctl disable v4l2-relayd@ipu7.service 2>/dev/null || true systemctl stop v4l2-relayd@ipu7.service 2>/dev/null || true systemctl disable intel-ipu7-camera.service 2>/dev/null || true systemctl --global disable camera-feed-watch.service 2>/dev/null || true systemctl disable camera-init.service 2>/dev/null || true systemctl stop camera-init.service 2>/dev/null || true if [ -n "$SUDO_USER" ]; then _remove_pipewire_camera "/home/$SUDO_USER/.config/chromium-flags.conf" _remove_pipewire_camera "/home/$SUDO_USER/.config/brave-flags.conf" _remove_pipewire_camera "/home/$SUDO_USER/.config/chrome-flags.conf" fi } post_remove() { rm -f /usr/lib/systemd/system-sleep/camera-sleep-hook systemctl daemon-reload udevadm control --reload-rules 2>/dev/null || true }