有谁知道xfce4中当前壁纸存储在哪里?
我正在使用 SLiM,我想将 SLiM 背景符号链接到我当前的壁纸,这样我就不必每次都手动更改它。
答案1
有 2 个可能的位置:
供用户检查
~/.local/share/xfce4/backdrops/
全局检查系统范围路径
/usr/share/xfce4/backdrops
要在 SLiM 和桌面之间共享壁纸,请重命名使用的主题背景,然后创建从桌面壁纸文件到默认 SLiM 主题的链接:
mv /usr/share/slim/themes/default/background.jpg{,.bck}
ln -s /path/to/mywallpaper.jpg /usr/share/slim/themes/default/background.jpg
答案2
虽然这是一个老问题,作为最近转换到 arch 和 xfce4 的我也一直对这个问题感到困惑。我终于找到了一个解决方案,并认为我会将其发布在这里,以防对其他人有用。例如
#!/bin/bash -
#
# define xfce4 xml file that holds info about desktops
#
DESKTOP="/home/$(id -un)/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml"
#
# define xpath that will extract current desktop background file name
# (NB I am no expert in xpaths and there is probably a much more elegant way
# to do this but this works for me)
#
XPATH='(//property[@name="workspace0"]/property[@name="last-image"])[last()]/@value'
#
# use xmllint utility to apply xpath to file and extract file path and name
#
IMAGE=$(xmllint --xpath "string(${XPATH})" "${DESKTOP}")
#
# display the file info extracted
#
echo Current Wallpaper File = ${IMAGE}
#
# rest of script........
#
xmllint 由 libxml2 包提供。
答案3
我知道这是一个老问题,但最近我尝试自己解决这个问题。这是我的解决方案:
screenLocker
创建一个名为inside 的文件/usr/bin/
将以下内容放入其中(将 YOUR_CURRENT_THEME 替换为您的主题):
#!/bin/bash
ln -fs $(xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image) \
/usr/share/slim/themes/YOUR_CURRENT_THEME/background.png && slimlock
然后:
sudo chmod +x /usr/bin/screenLocker
并添加/编辑键盘快捷键以使用命令/usr/bin/screenLocker
现在,每次您更改桌面壁纸时,您的锁定屏幕都会匹配。
答案4
xfconf-query -c xfce4-desktop -p /backdrop/screen0/$(xrandr|awk '/\<connected/{print "monitor"$1}')/workspace0/last-image
这将从 xrandr 获取连接的显示器名称,然后获取其壁纸设置。
发现这个真是浪费时间