我对 KDE 还很陌生(运行 Kubuntu 18.10),希望能够通过终端快速切换灰度。我可以编写脚本来执行此操作,但我不知道要调用什么来切换桌面效果。
目前我正在使用中描述的扩展这个答案从这Github 重新操作。一切都很顺利,唯一的问题是我想快速切换到灰度,而不是进入System Settings
> Desktop Behavior
>Desktop Effects
并单击Apply
。这对我来说步骤太多了,一天用不了一次或两次。
我的问题是我应该调用什么命令来从命令行切换此功能,以便我可以编写脚本来执行此操作?
我正在查看 qdbus 并尝试类似以下操作:
qdbus org.kde.KWwin /Effects toggleEffect Grayscale
但什么也没有发生。
答案1
这不值得回答,但我也没有资格发表评论。
我也试图通过快捷方式自动切换灰度,有时设置:
kwriteconfig5 --file ~/.config/kwinrc --group Plugins --key kwin4_effect_grayscaleEnabled "false"
qdbus org.kde.KWin /KWin reconfigure
不起作用(效果不会被禁用,即使在设置中明显未选中)。
所以我只需添加一行:
qdbus org.kde.KWin /Compositor suspend && qdbus org.kde.KWin /Compositor resume
(它重新加载合成器,与执行两次“alt+shift+F12”相同)
这可以避免繁重的kwin_x11 --replace
解决方案,所以我认为这样更好(但我绝对不是这方面的专家)。
(请注意,我还必须sleep 0.2
在两行之间添加一个,否则灰度禁用将不起作用,除非我第二次触发整个过程)
答案2
如果您仍然对 DBUS 答案感兴趣(它的答案不太复杂),您可以尝试这个:
#Enable the Effect:
qdbus --literal org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect kwin4_effect_grayscale
#Disable the Effect:
qdbus --literal org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect kwin4_effect_grayscale
#Toggle the Effect state:
qdbus --literal org.kde.KWin /Effects org.kde.kwin.Effects.toggleEffect kwin4_effect_grayscale