pactl 在用户空间中工作,而不是在 i3 上以 root 身份工作

pactl 在用户空间中工作,而不是在 i3 上以 root 身份工作

我正在运行 i3wm 并为其设置键绑定。我想使用一组按键绑定来控制系统的音量。

我已将密钥设置为:exec pactl set-sink-mute 0 toggle

按此键没有任何效果。但是我可以pactl set-sink-mute 0 toggle在我的终端中运行并且它可以工作。然而,当以 root ( sudo pactl ...) 身份运行时,它会失败并显示:

Connection failure: Connection refused
pa_context_connect() failed: Connection refused

但是,当作为用户调用时,它会按预期运行。

我正在运行 Arch Linux。

答案1

正如评论中提到的,您需要XDG_RUNTIME_DIR在环境中并将自己标识为普通用户。

sudo -u '#1000' XDG_RUNTIME_DIR=/run/user/1000 pactl set-sink-mute 0 toggle

的两个实例1000都应替换为普通用户 ID。如果您不知道,请id -u以普通用户身份运行。

相关内容