Google検索を行うと、コマンドが明らかになります
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
このコマンドを初めて実行すると、チャンネルxfce4-desktopにプロパティ/ backdrop/screen0/monitor0/image-pathが存在しないというメッセージが表示されました。
そこで、このプロパティを作成しました:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
しかし、それでも背景は変わりませんでした。
次に、XUbuntuのデスクトップ設定アプリケーションから、通常は背景をspace-03.jpgからspace-04.jpgに変更しました。次に実行します:
$ xfconf-query -c xfce4-desktop -p /backdrop -lv
/backdrop/screen0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-show true
/backdrop/screen0/monitor1/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor1/image-show true
/backdrop/screen0/monitorLVDS1/workspace0/color-style 0
/backdrop/screen0/monitorLVDS1/workspace0/image-style 5
/backdrop/screen0/monitorLVDS1/workspace0/last-image /usr/share/backgrounds/space-04.jpg
ご覧のとおり、プロパティ/backdrop/screen0/monitorLVDS1/workspace0/last-image
が変更されました(!)。
このプロパティを変更すると問題なく動作しますが、問題は、プログラムにそれを実装するための一般的な方法を見つける必要があることです(Wallch)。
Variety
(ちなみに非常に素晴らしいプログラムです)でさえ、私のマシンでは正しく動作せず、何もしない/backdrop/screen0/monitor0/image-path
プロパティを変更することを選択します。
1つの方法は、可能なすべてのプロパティを作成し、必要に応じてそれらをすべて同時に変更することです。次の2つの理由により、このソリューションが好きではありません。
また、なぜXFCEがそれほど複雑なのか理解していません。 gsettingsのように1つのプロパティで十分ではないのはなぜですか?
私はそれが仕事をするべきだと思う
次のコードを使用して、接続されたデバイスを取得してカウントします。
connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
connected=$(echo $connectedOutputs | wc -w)
次に、それらを操作して、image-pathまたはlast-imageの値を設定するかどうかを選択する必要があります
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s ~/Pictures/1.jpeg
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace0/last-image -n -t string -s ~/Pictures/1.jpeg
for i in $(xfconf-query -c xfce4-desktop -p /backdrop -l|egrep -e "screen.*/monitor.*image-path$" -e "screen.*/monitor.*/last-image$"); do
xfconf-query -c xfce4-desktop -p $i -n -t string -s ~/Pictures/2.png
xfconf-query -c xfce4-desktop -p $i -s ~/Pictures/2.png
done
1.jpegは、デフォルトで文字列を作成するために必要なファイルであると仮定します。また、2.pngは設定する画像です。 xfce4-desktopが存在することを確認するために最初の行を追加しました。
このスクリプトは私のマシンでテストされ、うまく機能しています。
それが私の友人に役立つことを願っています
編集:ポート名のリストが見つかりました here のように:
出力ポート名
Intelドライバー-UMS
VGA-アナログVGA出力
LVDS-ラップトップパネル
DP1-DisplayPort出力
TV-統合されたTV出力
TMDS-1-最初のDVI SDVO出力
TMDS-2-2番目のDVI SDVO出力
現時点では、SDVOおよびDVO TV出力はドライバーでサポートされていません。
Intelドライバー-KMS
LVDS1-ラップトップパネル
VGA1-アナログVGA出力
DVI1-デジタルビデオ出力
radeonドライバー
VGA-0-アナログVGA出力
LVDS-ラップトップパネル
Sビデオ-統合されたTV出力
DVI-0-DVI出力
詳細情報については こちら