초점이 맞춰진 창을 기반으로 키 바인딩을 변경하는 방법은 무엇입니까?

초점이 맞춰진 창을 기반으로 키 바인딩을 변경하는 방법은 무엇입니까?

현재 i3 구성에는 다음 줄이 있습니다.

# Play/pause, prev, next
bindcode 172 exec "/opt/playerctl/bin/playerctl play-pause"
bindcode 173 exec "/opt/playerctl/bin/playerctl previous"
bindcode 171 exec "/opt/playerctl/bin/playerctl next"

이렇게 하면 내 키보드의 미디어 버튼이 Spotify와 같은 playerctl 지원 오디오 플레이어를 재생/일시 중지하게 됩니다.

문제는 이제 미디어 재생/일시 중지 버튼이 내 비디오 플레이어(SMPlayer)에서 더 이상 작동하지 않는다는 것입니다.

창에 초점이 맞춰져 있을 때만 키 바인딩이 적용되도록 할 수 있습니까?아니요SMP 플레이어?


내가 하고 싶은 것을 요약하자면: 위의 키 바인딩이 항상 작동하기를 원합니다.와는 별개로SMPlayer 창(클래스: "Smplayer")이 포커스를 받을 때.

가능합니까?

답변1

이것을 시도해 볼 수 있습니다. username아래를 실제 Linux 사용자 이름으로 바꾸 십시오 . 어떤 이유로 ~대신 사용하는 것이 home/username나에게 적합하지 않습니다.

i3 구성에서는 다음 줄을 사용하십시오.

# Play/pause, prev, next
bindcode 172 exec /home/username/.i3/play.sh play-pause
bindcode 173 exec /home/username/.i3/play.sh previous
bindcode 171 exec /home/username/.i3/play.sh next

다음을 이름이 지정된 파일에 붙여넣습니다./home/username/.i3/play.sh

cmd="$1"
id=$(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
curr_title=$(xprop -id $id | awk '/_NET_WM_NAME/{$1=$2="";print}' | cut -d'"' -f2)
if [[ "$curr_title" != "SMPlayer"* ]]; then
    /opt/playerctl/bin/playerctl "$cmd"
fi

창의 정확한 제목에 따라 "SMPlayer"* 부분을 조정해야 할 수도 있습니다. 해당 프로그램에 대한 경험이 없습니다. else원하는 경우 SMPlayer가 실행되는 동안 다른 프로그램을 실행하는 절을 추가할 수 있습니다.

관련 정보