From b8a7310d32bb6a7eba1c8a1213c7dd42f0428f0c Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Sun, 25 Feb 2024 14:04:25 -0500 Subject: Pacify pulseaudio and libcanberra to cope with randomized machine-id --- .config/sway/config | 1 + .local/bin/pacify-pulseaudio | 28 ++++++++++++++++++++++++++++ .profile | 1 + 3 files changed, 30 insertions(+) create mode 100755 .local/bin/pacify-pulseaudio diff --git a/.config/sway/config b/.config/sway/config index a077c5b..165509e 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -168,5 +168,6 @@ for_window [app_id="pavucontrol"] floating enable include ~/.config/sway/`hostname` exec dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK +exec pacify-pulseaudio exec [ -x "$(command -v nm-applet)" ] && nm-applet exec sleep 1 && xrdb -merge ~/.Xresources diff --git a/.local/bin/pacify-pulseaudio b/.local/bin/pacify-pulseaudio new file mode 100755 index 0000000..18d6ee5 --- /dev/null +++ b/.local/bin/pacify-pulseaudio @@ -0,0 +1,28 @@ +#!/bin/sh + +# Copyright (c) 2024 Amin Bandali +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. + +# pulseaudio is trash and insists on using machine-id as a prefix for +# its database filenames under ~/.config/pulse. So, on systems with +# randomized machine-ids like Devuan GNU/Linux it shits the bed and +# can't find its own database files. So we do its job for it and +# rename its database files on each boot. Ditto for libcanberra's +# event sound cache database. + +cur_id_path=/var/lib/dbus/machine-id +prev_id_path="$XDG_CACHE_HOME/tmp-prevmid" +cur_id="$(cat $cur_id_path)" +prev_id="$(cat $prev_id_path)" + +for f in $XDG_CONFIG_HOME/pulse/$prev_id-* \ + $XDG_CACHE_HOME/event-sound-cache.tdb.$prev_id.*; do + fnew="$(echo $f | sed "s/$prev_id/$cur_id/")" + mv $f $fnew +done + +cp -p $cur_id_path $prev_id_path diff --git a/.profile b/.profile index ea83795..b83fc4f 100644 --- a/.profile +++ b/.profile @@ -31,6 +31,7 @@ export MY_GUIX_PROFILES="$HOME/.config/guix/profile" export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" if [ -f "$HOME/.config/user-dirs.dirs" ]; then set -a -- cgit v1.2.3-60-g2f50