This repository has been archived on 2026-10-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
omarchy-pkgs/pkgbuilds/edge/intel-ipu7-camera/intel-ipu7-camera.install
T
GaggeryandGitHub e3ed6931a0 Merge pull request #67 from TsaiGaggery/fix-camera-v4l2-relayd-v2
intel-ipu7-camera: v4l2-relayd with OBS and Zoom fixes
2026-04-01 14:18:47 +02:00

72 lines
2.5 KiB
Plaintext

_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 enable camera-init.service
systemctl enable v4l2-relayd@ipu7.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 enable v4l2-relayd@ipu7.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 --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
}