diff --git a/Containerfile b/Containerfile index 60881d7b32..ebb729b6fc 100644 --- a/Containerfile +++ b/Containerfile @@ -645,6 +645,7 @@ RUN /tmp/image-info.sh && \ systemctl disable gdm.service && \ systemctl enable sddm.service \ ; fi && \ + systemctl enable wireplumber-workaround.service && \ systemctl enable bazzite-autologin.service && \ systemctl enable wireplumber-sysconf.service && \ systemctl enable btrfs-dedup@run-media-mmcblk0p1.timer && \ diff --git a/system_files/deck/shared/usr/lib/systemd/system/wireplumber-workaround.service b/system_files/deck/shared/usr/lib/systemd/system/wireplumber-workaround.service new file mode 100644 index 0000000000..10694c9219 --- /dev/null +++ b/system_files/deck/shared/usr/lib/systemd/system/wireplumber-workaround.service @@ -0,0 +1,17 @@ +[Unit] +Description=Workaround wireplumber needing to be written into by steamdeck-dsp +ConditionPathExists=/usr/share/wireplumber +After=local-fs.target + +[Service] +Type=oneshot +# Copy if it doesn't exist +ExecStartPre=/usr/bin/bash -c "[ -d /usr/local/share/.wireplumber ] || /usr/bin/cp -r /usr/share/wireplumber /usr/local/share/.wireplumber" +ExecStart=/usr/bin/mount --bind /usr/local/share/.wireplumber /usr/share/wireplumber +# Clean-up after ourselves +ExecStop=/usr/bin/umount /usr/share/wireplumber +ExecStop=/usr/bin/rm -r /usr/local/share/.wireplumber +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/system_files/deck/shared/usr/lib/tmpfiles.d/wireplumber-workaround.conf b/system_files/deck/shared/usr/lib/tmpfiles.d/wireplumber-workaround.conf new file mode 100644 index 0000000000..7ed882569f --- /dev/null +++ b/system_files/deck/shared/usr/lib/tmpfiles.d/wireplumber-workaround.conf @@ -0,0 +1 @@ +C /usr/local/share/.wireplumber - - - - /usr/share/wireplumber