KWin:使用脚本切换灰度 KDE 桌面效果

KWin:使用脚本切换灰度 KDE 桌面效果

我对 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

相关内容