我现在在 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"
Run Code Online (Sandbox Code Playgroud)
这使得我的键盘上的媒体按钮播放/暂停 playerctl 支持的音频播放器,如 Spotify。
问题是播放/暂停媒体按钮现在在我的视频播放器 (SMPlayer) 中不再起作用。
是否可以使键绑定仅在焦点窗口不是SMPlayer时生效?
总结我正在尝试做的事情:我希望上面的键绑定始终有效,除非聚焦 SMPlayer 窗口(类:“Smplayer”)。
这可能吗?
你可以试试这个。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
Run Code Online (Sandbox Code Playgroud)
将以下内容粘贴到名为的文件中/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
Run Code Online (Sandbox Code Playgroud)
您可能需要根据窗口的确切标题调整“SMPlayer”* 部分 - 我没有使用该程序的经验。else
如果您愿意,您可以添加一个子句以在 SMPlayer 运行时运行另一个程序。
归档时间: |
|
查看次数: |
1346 次 |
最近记录: |