![使用 dbus 和 mpris 切换 vlc 全屏](https://linux22.com/image/69728/%E4%BD%BF%E7%94%A8%20dbus%20%E5%92%8C%20mpris%20%E5%88%87%E6%8D%A2%20vlc%20%E5%85%A8%E5%B1%8F.png)
我正在用很棒的 wm 编写我的键盘快捷键。目前我使用 qdbus 来控制媒体播放器,除了 vlc 的全屏之外,它们都可以工作。我使用的命令是:
qdbus org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Fullscreen
这可以获取全屏状态的布尔值,但也应该能够设置它,我已经做的是上面的命令true/false
(以及它们的一些变体),但它总是被解释为false
.
CanSetFullscreen
有价值true
答案1
Awesome 有一种发送假按键事件的方法,这可以用来覆盖 vlc 使用的标准按键,以匹配 Awesome wm 中配置的按键。在 ~/.config/awesome/rc.lua 中更改全屏键,如下所示:
enter code hereawful.key({ modkey, }, "f", function (c)
if awful.rules.match(c, {class = 'Vlc'}) then
root.fake_input('key_release','f')
root.fake_input('key_press','f')
root.fake_input('key_release','f')
else
c.fullscreen = not c.fullscreen
end
end),
要对其他程序执行此操作,您首先必须了解它的类,这可以通过命令获得xprop | grep WM_CLASS
。
WM_CLASS(STRING) = "vlc", "Vlc"
| |
| |--- class
|
|--- instance
答案2
CanSetFullscreen 是一个只读参数,请检查 Fullscreen 这是一个读/写条目。对于 D-Bus 探索,Ubuntu 上的 D-Feet 相当不错。