pactl은 i3의 루트가 아닌 사용자 공간에서 작동합니다.

pactl은 i3의 루트가 아닌 사용자 공간에서 작동합니다.

i3wm을 실행하고 이에 대한 키 바인딩을 설정하고 있습니다. 시스템의 볼륨을 제어하기 위해 키바인딩 세트를 사용하고 싶습니다.

키를 다음으로 설정했습니다: exec pactl set-sink-mute 0 toggle.

이 키를 눌러도 아무런 효과가 없습니다. 하지만 pactl set-sink-mute 0 toggle터미널에서 실행할 수 있고 작동합니다. 그러나 sudo pactl ...루트()로 실행하면 다음과 같이 실패합니다.

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

그러나 사용자로 호출하면 예상대로 실행됩니다.

저는 아치 리눅스를 사용하고 있습니다.

답변1

댓글에서 언급했듯이 해당 XDG_RUNTIME_DIR환경에 있어야 하며 자신이 일반 사용자임을 식별해야 합니다.

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

두 인스턴스 모두 1000일반 사용자 ID로 바꿔야 합니다. 모르신다면 id -u일반 사용자로 실행해 보세요.

관련 정보