74 lines
2.7 KiB
Plaintext
74 lines
2.7 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 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
|
|
}
|