現在の壁紙はどこに保存されていますか?

現在の壁紙はどこに保存されていますか?

現在の壁紙が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から接続されているモニタ名を取得し、壁紙の設定を取得します。

これを調べるのに時間の無駄

関連情報