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