私はMint 13とCinnamon 1.6を実行しています。時間に応じてデスクトップの壁紙が自動的に変更されるようにしたいと思います。だから私が最初に考えたのは、これを行うためにクローンタスクを設定することでした。問題は、スクリプト/ターミナルで壁紙を変更する方法がわからないことです。
私が知りたいことは:
1)端末で背景を変更する方法は?
2)これを行う組み込み方法はすでにありますか?
答え1
これが質問に対する正解です。他のものはただのハッキングです。
gsettings set org.cinnamon.desktop.background picture-uri "file:///filename"
答え2
Linux Mint 16(他のバージョンは不明)では、gsettings
両方を使用できます得る現在の壁紙に関する情報と置くそれ。
man gsettings
やや薄くなりますが、TABの完成は次のコマンドのほとんどの段階で機能します。
情報を入手する:
gsettings get org.cinnamon.desktop.background picture-uri
gsettings get org.cinnamon.desktop.background picture-opacity
gsettings get org.cinnamon.desktop.background picture-options
オプションを変更するには、「get」を「set」に変更し、最後に新しい値を追加します。
以下は、既知の壁紙のリストを繰り返すクイックスクリプトです。
#!/bin/sh
#
# Set the wallpaper from a list
#
# The list, all can be found in $BASE
BASE="file:///home/tigger/.wallpapers/"
LIST="shot1.png another.png just_no_space_in_name.png keep_adding.png"
# The current wallpaper
current=`gsettings get org.cinnamon.desktop.background picture-uri`
opacity=`gsettings get org.cinnamon.desktop.background picture-opacity`
options=`gsettings get org.cinnamon.desktop.background picture-options`
# loop over the list until we find a match
matched=0
new=""
for wp in $LIST
do
if [ $matched -eq 1 ]
then
new="${BASE}${wp}"
break
elif [ "'${BASE}${wp}'" = "${current}" ]
then
matched=1
fi
done
# if "$new" is blank, then we show the first shot
if [ "$new" = "" ]
then
new=${BASE}${LIST%% *}
fi
# set the wallpaper
gsettings set org.cinnamon.desktop.background picture-uri \'${new}\'
gsettings set org.cinnamon.desktop.background picture-opacity ${opacity}
gsettings set org.cinnamon.desktop.background picture-options ${options}
答え3
x ウィンドウシステムに関する限り、ルートウィンドウの背景を変更したいと思います。このウィンドウの設定を変更するための「組み込み」ツールはですxsetroot
。残念ながら少し昔ながらです。たとえば、背景画像のビットマップ選択のみをサポートします。
hsetroot
これと比較して、私はこのツールを好みますxsetroot
。どちらのツールもコマンドラインで使用する必要があります。
また、xリソースデータベースを介してルートウィンドウの設定を調整できると想像できますが、今はその情報を見つけることができません。
答え4
この試み:
xsetbg /path/to/wallpaper.jpg