使用 dbus 和 mpris 切换 vlc 全屏

使用 dbus 和 mpris 切换 vlc 全屏

我正在用很棒的 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 相当不错。

相关内容