进行谷歌搜索会显示该命令
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
第一次运行此命令时,我收到一条消息,说属性 /backdrop/screen0/monitor0/image-path 在频道 xfce4-desktop 中不存在。
因此,我创建了这个属性:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
但背景仍然没有改变。
然后,我从 XUbuntu 的桌面设置应用程序将背景从 space-03.jpg 正常更改为 space-04.jpg。然后我运行:
$ xfconf-query -c xfce4-desktop -p /backdrop -lv
/backdrop/screen0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-show true
/backdrop/screen0/monitor1/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor1/image-show true
/backdrop/screen0/monitorLVDS1/workspace0/color-style 0
/backdrop/screen0/monitorLVDS1/workspace0/image-style 5
/backdrop/screen0/monitorLVDS1/workspace0/last-image /usr/share/backgrounds/space-04.jpg
如您所见,属性/backdrop/screen0/monitorLVDS1/workspace0/last-image
已改变(!)。
如果我改变这个属性,那么它就可以正常工作,但问题是我需要找到一种通用的方法才能在我的程序(Wallch)中实现它。
甚至Variety
(顺便说一下,这是一个非常好的程序)也无法在我的计算机上正常工作,并选择更改/backdrop/screen0/monitor0/image-path
不执行任何操作的属性。
一种方法是同时创建所有可能的属性,并在需要时更改所有属性。我不喜欢这个解决方案,原因有二:
- 需要的几个系统调用
- 有时候我需要获取当前图像的路径(以便打开它的文件夹、复制它的路径、删除它以及程序提供的一些其他功能)。我不知道哪个属性保存了真正设置的图像的路径,以便程序可以使用它。
我也不明白为什么 XFCE 会把它弄得这么复杂。为什么像 gsettings 中那样一个属性就不够用?
答案1
我认为应该可以
使用以下代码获取已连接的设备并进行统计:
connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
connected=$(echo $connectedOutputs | wc -w)
然后你必须对它们进行操作并选择是否设置 image-path 或 last-image 的值
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s ~/Pictures/1.jpeg
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace0/last-image -n -t string -s ~/Pictures/1.jpeg
for i in $(xfconf-query -c xfce4-desktop -p /backdrop -l|egrep -e "screen.*/monitor.*image-path$" -e "screen.*/monitor.*/last-image$"); do
xfconf-query -c xfce4-desktop -p $i -n -t string -s ~/Pictures/2.png
xfconf-query -c xfce4-desktop -p $i -s ~/Pictures/2.png
done
假设 1.jpeg 是默认创建字符串所需的任何文件。而 2.png 是需要设置的图片。我添加第一行只是为了确保 xfce4-desktop 存在。
该脚本已在我的计算机上测试过并且运行良好。
希望可以帮助我的朋友
编辑:找到了端口名称列表这里像这样:
输出端口名称
英特尔驱动程序 - UMS
VGA——模拟 VGA 输出
LVDS——笔记本电脑面板
DP1 - DisplayPort 输出
电视 - 集成电视输出
TMDS-1 - 第一个 DVI SDVO 输出
TMDS-2 - 第二 DVI SDVO 输出
该驱动程序目前不支持 SDVO 和 DVO 电视输出。
英特尔驱动程序 - KMS
LVDS1——笔记本电脑面板
VGA1-模拟 VGA 输出
DVI1——数字视频输出
Radeon 驱动程序
VGA-0-模拟 VGA 输出
LVDS——笔记本电脑面板
S-video - 集成电视输出
DVI-0——DVI 输出
如需更多信息,请查看这里