以下提供深度Deepin V20系统更换壁纸的命令,另外,以前采用的“gsettings set org.gnome.desktop.background picture-uri 文件地址”不起作用了,执行后现有的壁纸不发生改变。
正确答案 dbus-send --dest=com.deepin.daemon.Appearance /com/deepin/daemon/Appearance --print-reply com.deepin.daemon.Appearance.SetMonitorBackground string:"屏幕名称" string:"file:///图片路径" 屏幕名称可以在设置里面 显示->亮度 查看。 或者xrandr(我的这里叫"eDP-1")。 注:以上命令适合在Deepin V20系统中。 相关参考:在Linux系统下安装壁纸程序Wonderwall,附主要功能介绍。
说明 因为d-bus是为了桌面应用的通信设计的,而非命令交互或脚本。 他有各种程序语言的绑定,可以不需要shell,而且shell上的dbus-send功能不如其他语言相应库功能全。 大家看这个命令特别长,实际上用d-feet查看接口,然后用dbus-monitor监听传入信息,最后翻译成dbus-send或者其他语言的调用,大家都能写出便利人生的脚本啦!
技术扩展 1、以下可以查看所有的壁纸图片列表 json dbus-send --dest=com.deepin.daemon.Appearance /com/deepin/daemon/Appearance --print-reply com.deepin.daemon.Appearance.List string:"background" 2、获取屏幕名称和路径的 dbus-send --dest=com.deepin.daemon.Display --print-reply=literal /com/deepin/daemon/Display com.deepin.daemon.Display.GetBuiltinMonitor 3、提取出第一个屏幕名称 dbus-send --dest=com.deepin.daemon.Display --print-reply=literal /com/deepin/daemon/Display com.deepin.daemon.Display.GetBuiltinMonitor | awk -F ' ' '{print $1}'
相关主题 |