壁纸功能是可视化操作系统的基础功能,桌面支持为分别每个显示器设置壁纸
设置壁纸通过DBus调用com.deepin.daemon.Appearance服务的SetMonitorBackground方法实现。
DBus服务:
服务名:com.deepin.daemon.Appearance
地址:/com/deepin/daemon/Appearance
接口:com.deepin.daemon.Appearance
DBus方法
SetMonitorBackground (String monitorName, String imageFile) ↦ ()
参数:
@monitorName 为显示器名字,如“HDMI-0”、“VGA-0”、“eDP-1”等,显示器名称可从com.deepin.daemon.Display服务列表中/com/deepin/daemon/Display/Monitor_×(×表示编号)的com.deepin.daemon.Display.Monitor接口中的"Name"属性获取;也可从控制中心显示中获取。
@imageFile 壁纸图片URL路径,如"file:///usr/share/wallpapers/deepin/desktop.jpg"
壁纸图片路径可以是壁纸库里的文件或者用户自己的图片路径,Appearance服务会将用户自定义的壁纸保存到壁纸库中。
用户自定义的壁纸的存储地址为:file:///usr/share/wallpapers/custom-wallpapers
系统自带的壁纸的存储地址为:file:///usr/share/wallpapers/deepin
命令行:
qdbus com.deepin.daemon.Appearance /com/deepin/daemon/Appearance com.deepin.daemon.Appearance.SetMonitorBackground "@monitorName" "@imageFile"
或dbus-send --session --print-reply=literal --dest=com.deepin.daemon.Appearance /com/deepin/daemon/Appearance com.deepin.daemon.Appearance.SetMonitorBackground string:"@monitorName" "@imageFile"
获取壁纸列表通过DBus调用com.deepin.daemon.Appearance接口的List方法实现
DBus服务:
服务名:com.deepin.daemon.Appearance
地址:/com/deepin/daemon/Appearance
接口:com.deepin.daemon.Appearance
DBus方法
List (String ty) ↦ (String list)
参数:
@type 类型,值为"background"
命令行:
dbus-send --session --type=method_call --print-reply --dest=com.deepin.daemon.Appearance /com/deepin/daemon/Appearance com.deepin.daemon.Appearance.List string:'@type'
删除壁纸通过DBus调用com.deepin.daemon.Appearance接口的Delete方法实现,可从上诉获取壁纸列表中查看壁纸的”Deletable“属性,属性值为”True“,则表示该壁纸可被删除(一般系统自带的壁纸和桌面当前使用的壁纸是不可被删除的)
DBus服务:
服务名:com.deepin.daemon.Appearance
地址:/com/deepin/daemon/Appearance
接口:com.deepin.daemon.Appearance
DBus方法
Delete (String type, String name) ↦ ()
参数:
@type 类型,值为"background",
@name 壁纸图片URL路径,如"file:///usr/share/wallpapers/deepin/desktop.jpg"
命令行:
dbus-send --session --type=method_call --print-reply --dest=com.deepin.daemon.Appearance /com/deepin/daemon/Appearance com.deepin.daemon.Appearance.Delete string:'@type' string:'@name'
获取桌面当前壁纸的保存路径,通过DBus调用com.deepin.wm接口的GetCurrentWorkspaceBackgroundForMonitor方法实现
DBus服务:
服务名:com.deepin.wm
地址:/com/deepin/wm
接口:com.deepin.wm
DBus方法
GetCurrentWorkspaceBackgroundForMonitor (String strMonitorName) ↦ (String result)
参数:
@strMonitorName 为显示器名字,如“HDMI-0”,显示器名称可从com.deepin.daemon.Display服务列表中/com/deepin/daemon/Display/Monitor_×(×表示编号)的com.deepin.daemon.Display.Monitor接口中的"Name"属性获取
命令行:
dbus-send --session --type=method_call --print-reply --dest=com.deepin.wm /com/deepin/wm com.deepin.wm.GetCurrentWorkspaceBackgroundForMonitor string:'@strMonitorName'