当前的壁纸存储在哪里?

当前的壁纸存储在哪里?

有谁知道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 获取连接的显示器名称,然后获取其壁纸设置。

发现这个真是浪费时间

相关内容