GNU/Linux >> Linux の 問題 >  >> Linux

BASHを使用して間隔内でGNOMEバックグラウンドを自動的に変更する方法

その自動背景が欲しいと思ったことはありませんか GNOME Linuxディストリビューションの機能を切り替えますか? CinnamonからGNOMEに切り替えた後、その機能を見逃しました🙁ソフトウェアセンターでアプリを検索しましたが、残念ながら見つけることができませんでした。ただし、本日、BASHスクリプト言語を使用することで、この欠落している機能に回避策があることをお知らせします。

要件

それほど多くはありませんが、必要なのは、スクリプトファイルのコードの数行を編集するためのテキストエディタだけです。また、テキストファイルを作成して保存する機能。それだけです🙂あなたがプログラマーの場合、私はあなたがそれを理解できるようにスクリプトにコメント(コードを文書化)を省略しました。

ステップ1:スクリプトファイルを作成する

お気に入りのテキストエディタプログラムを開き、ファイルを .change_wallpapersとして保存します ホームディレクトリにあります。

ファイル名の前にドット(。)が付いていることに注意してください。そのファイルを非表示にしたいので、ファイル名の前にドットを付けることが重要です。\

次に、以下のスクリプトをコピーして、新しく作成したスクリプトファイルに貼り付けます。

#!/bin/bash
# script to set random background wallpapers on my GNOME desktop
# set base path
export wallpaper_path=
shopt -s nullglob
# store all the image file names in wallpapers array
wallpapers=(
    $wallpaper_path/*.jpg
    $wallpaper_path/*.jpeg
    $wallpaper_path/*.png
    $wallpaper_path/*.bmp
    $wallpaper_path/*.svg
)
# get array size
wallpapers_size=${#wallpapers[*]}

ステップ2:スクリプトを変更する

​環境変数 wallpaper_pathに独自のカスタムパスを入力する必要があります 。たとえば、壁紙(または画像)ディレクトリが/ home / abc / Pictures / Wallpapersにある場合は、その行を変更する必要があります。exportwallpaper_path =<壁紙フォルダパス>

exportwallpaper_path =/ home / abc / Pictures / Wallpapersさらに、最も一般的な画像ファイルの拡張子を配列変数壁紙に追加しました 。ただし、お好みの画像ファイル形式が見落とされている可能性があります。たぶんあなたの画像はTIFFか何か他のフォーマットになっています。不足している拡張機能を自分で追加してください。たとえば、tifのサポートを追加したい場合は、このステートメントをすぐ下に追加する必要があります

$wallpaper_path/*.svg line as in:
$wallpaper_path/*.svg $wallpaper_path/*.tif

ステップ3:以下の2つのオプションのいずれかを選択します

それらの1つだけを選択してください…そして他をスキップしてください。そうしないと、問題が発生します。
​
最初のオプションは、壁紙を最初の画像から最後の画像まで順番に変更する場合です。そして、同じプロセスを何度も繰り返します。したがって、ループがなくなったときに最後の画像にとらわれることはありません。以下のコードをコピーして、スクリプトファイルの最後の行に貼り付けます。

背景を順番に変更する

# set wallpapers in incremental order
index=0
while [ $index -lt $wallpapers_size ]
do
    gsettings set org.gnome.desktop.background picture-uri ${wallpapers[$index]}
    # index is maxing out, so reset it
    if [ $(($index+1)) -eq $wallpapers_size ]
    then
        index=0
    else
        index=$(($index + 1))
    fi
    # keep the wallpaper for the specified time
    sleep 15m
done

背景をランダムな順序で変更する

あなたの壁紙がランダムに表示される連続した順序よりもランダム化を好む場合。以下のコードをコピーして、スクリプトファイルの最後の行に貼り付けます。

# set random wallpapers
# loop infinitely
while true
do
    # generate random index
    random_index=$(($RANDOM % $wallpapers_size))
    # then set a random wallpaper
    gsettings set org.gnome.desktop.background picture-uri ${wallpapers[$random_index]}
    # keep the wallpaper for the specified time
    sleep 15m
done

ステップ4:終了

.change_wallpapers スクリプトが完了しました。今やるべきことは1つだけです。ログイン時にそのスクリプトを開始します。

€‹そのために、 .profileにコードを追加する必要があります そのスクリプトを開始するファイル。それでもテキストエディタを開いている場合は、.profileファイルを起動し、これらの4行のコードを最後の行にコピーします。

# start my custom script for setting random background wallpapers
if [ -f "$HOME/.change_wallpapers" ] ; then
    bash $HOME/.change_wallpapers &
fi
をbashします。

開いているダイアログボックスで非表示のファイル.profileが見つからなかった場合は、CTRL+Hを押してすべての非表示のファイルを表示します。

後で、同じキーの組み合わせを押して、ファイルマネージャプログラムから隠しファイルとフォルダを表示しないようにすることができます。

完了したら、セッションを再起動するか再ログインして、スクリプトを有効にします。

結論

このチュートリアルがシンプルでわかりやすいものであることがおわかりいただけたでしょうか。そして、スクリプトを正常に機能させました🙂下のコメントセクションであなたの経験を教えてください。ちなみに、将来この自動バックグラウンド切り替えスクリプトを無効にしたい場合は、その .change_wallpapersを削除するだけです。 スクリプトファイルを作成し、 .profileの追加の4行を削除します ファイル。


Linux
  1. .htaccessファイルのmemory_limitを変更する方法

  2. Gnomeターミナルの背景色をオンフライで変更しますか?

  3. Bashを使用してファイルの最後から2番目の行を読み取る方法は?

  1. bash スクリプトを使用してファイル名のスペースを置き換える方法

  2. BashでCSVファイルを解析するには?

  3. rm を使わずにファイルを削除するには?

  1. Bashを使用して整数をバイナリファイルに書き込む方法は?

  2. ddを使用してFFでファイルをパディングする方法は?

  3. SFTP サーバーが使用しているエンコーディングを変更するにはどうすればよいですか?