현재 배경화면이 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에서 연결된 모니터 이름을 가져온 다음 배경 화면 설정을 가져옵니다.
이걸 알아내느라 시간 낭비야