web-dev-qa-db-ja.com

GNOME 3で定期的に壁紙を変更しますか?

私はGNOME 3でFedora 15を使用していますが、Windows 7で可能なように壁紙を定期的に変更したいのですが、RSS/Atomまたは指定したディレクトリを使用できれば最高です。

リポジトリにツールが見つかりませんでした。スクリプトとcronで変更できると思いますが、もっとエレガントなものを探しています。

15
KovBal

これはあなたが探しているソリューションです:

やった;単なるテスト版ですが、動作します!

6
Dhananjay Sathe

次のシェルスクリプトをどこかに保存します。

#!/bin/bash

WP_DIR=/home/honeyp0t/wallpapers

cd $WP_DIR
while [ 1 ] 
  do
  set -- * 
  length=$#
  random_num=$((( $RANDOM % ($length) ) + 1)) 

  gsettings set org.gnome.desktop.background picture-uri "file://$WP_DIR/${!random_num}"

  sleep 600 
done

次に、.config/autostartのホームディレクトリで、wallpaper-changer.desktopという名前のファイルに以下を入力します。

[Desktop Entry]
Name=wallpaper-changer
Exec=/home/sammhe/bin/setbg.sh
Comment=change wallpaper every so often
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true

これにより、10分ごとに壁紙が変更されます...またはスクリプトで設定した値はすべて…

私は最初にこれを 「GNOMEシェルのカスタマイズ」というタイトルの投稿へのコメント として、OS配管工のMusingsに投稿しました。

19
Hubert Samm

Initスクリプトの代わりにcronジョブを使用したい場合は、次のようにします。インスピレーションを与えてくれたヒューバートに感謝!

#!/bin/bash

walls_dir=$HOME/.wallpapers
selection=$(find $walls_dir -type f -name "*.jpg" -o -name "*.png" | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$selection"

スクリプトをどこかに保存し(例:$HOME/bin/rotate_bg)、実行可能(chmod +x $HOME/bin/rotate_bg)にしてから、cronジョブを追加して、バックグラウンドを変更したい頻度で実行します。 crontab -eを実行して、ユーザーのcronテーブルを編集します。 これはcrontab形式を説明するリンクです 。次のエントリは、10分ごとに背景を回転させます。

*0 * * * * $HOME/bin/rotate_bg
3
Nathan Wallace

何らかの理由で、Hubert Sammに返信する方法がわかりませんが、彼のリンクは役に立ちました。ダウンした場合や、この特定の答えを得るためにすべてを読みたくない場合に備えて、Gnome 3でライブ更新の背景をどのようにして達成したかを追加しました。

〜/ .cache/gnome-control/center/backgroundsに移動すると、長い名前のファイル(「a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27」など)が、背景に設定したファイルのキャッシュバージョンになります。このファイルを削除し、同じ名前のシンボリックリンクを作成して置き換える場合:

$ rm a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27 
$ ln -s /path/to/original/file a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27

次に、元のファイルが更新されると、それを反映してデスクトップの背景が変更されます。この手法を使用して、XPlanetFXの背景を最新の状態に保ちます。たとえば、単に「background.jpg」という画像を用意し、背景を更新するたびにこのファイルを変更します。

おそらくこれに対処するためのより正しい方法は、gsettingsを使用してpicture-uriアドレスを変更して、選択したファイルを直接指すようにすることですが、設定の変更がどれだけ持続するかわからなかったため、symlinkオプションを選択しましたUIを使用して壁紙を変更するとき。ただし、どちらの方法でも理論的には機能するはずです。

注:私はテストしていないため、これは確実にはわかりませんが、通常のUIを介して背景を変更すると、長い一意のファイル名が変更され、シンボリックリンクが使用できなくなる可能性があります。 。

1
Adam

次のシェルスクリプトをどこかに保存します。

#!/bin/bash
while true; do
file=`/bin/ls -1 $1 | sort --random-sort | head -1`;path=`readlink --canonicalize "$dir/$file"`;
gsettings set org.gnome.desktop.background picture-uri "file://"$1$path;sleep $2;done

次の構文を使用して実行します。

scriptname directoryofpictures howmanyseconds
1
Brainz