hyt*_*omo 15 xfce command-line background
进行谷歌搜索显示命令
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
Run Code Online (Sandbox Code Playgroud)
第一次运行此命令时,我收到一条消息,指出通道 xfce4-desktop 中不存在属性 /backdrop/screen0/monitor0/image-path。
所以,我创建了这个属性:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
Run Code Online (Sandbox Code Playgroud)
但背景仍然没有改变。
然后我从 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
Run Code Online (Sandbox Code Playgroud)
如您所见,该属性/backdrop/screen0/monitorLVDS1/workspace0/last-image
已更改 (!)。
如果我更改此属性,则它可以正常工作,但问题是我需要找到一种通用方法才能在我的程序 (Wallch) 中实现它。
Even Variety
(顺便说一句,这是一个非常好的程序)在我的机器上不能正常工作,并选择更改/backdrop/screen0/monitor0/image-path
什么都不做的属性。
一种方法是创建所有可能的属性,并在需要时同时更改所有属性。我不喜欢这个解决方案,原因有两个:
我也不明白为什么 XFCE 做得这么复杂。为什么像 gsettings 那样一个属性不够用?
我认为应该可以完成这项工作
使用以下代码获取已连接的设备并对其进行计数:
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)
Run Code Online (Sandbox Code Playgroud)
那么你必须对它们进行操作并选择是否设置 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
Run Code Online (Sandbox Code Playgroud)
假设 1.jpeg 是默认创建字符串所需的任何文件。2.png 就是想要设置的图片。我添加第一行只是为了确保 xfce4-desktop 存在。
该脚本在我的机器上进行了测试,运行良好。
希望对我的朋友有帮助
编辑:在这里找到了端口名称列表,如下所示:
输出端口名称
英特尔驱动程序-UMS
VGA - 模拟 VGA 输出
LVDS - 笔记本电脑面板
DP1 - DisplayPort 输出
电视 - 集成电视输出
TMDS-1 - 第一个 DVI SDVO 输出
TMDS-2 - 第二个 DVI SDVO 输出
驱动程序目前不支持 SDVO 和 DVO TV 输出。
英特尔驱动程序-KMS
LVDS1 - 笔记本电脑面板
VGA1 - 模拟 VGA 输出
DVI1 - 数字视频输出
Radeon 驱动程序
VGA-0 - 模拟 VGA 输出
LVDS - 笔记本电脑面板
S-video - 集成电视输出
DVI-0 - DVI 输出
欲了解更多信息,请查看此处