
現在、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の実行中に他のプログラムを実行する句を追加できます。