GNU/Linux >> Znalost Linux >  >> Linux

Jak automaticky změnit pozadí GNOME v intervalech pomocí BASH

Chtěli jste někdy mít toto automatické pozadí? přepnutí funkce ve vaší distribuci GNOME Linux? Tato funkce mi chyběla poté, co jsem přešel ze Cinnamon na GNOME 🙁 Hledal jsem aplikace v softwarovém centru a bohužel jsem žádnou nenašel. Dnes vám však s radostí mohu oznámit, že existuje řešení této chybějící funkce pomocí skriptovacího jazyka BASH.

Požadavek

Nic moc, vše, co potřebujete, je textový editor k úpravě několika řádků kódu v souboru skriptu. A možnost vytvářet a ukládat textové soubory. To je ono 🙂 V případě, že jste programátor, vynechal jsem ve skriptu komentáře (zdokumentovaný kód), abyste mu rozuměli.

Krok 1:Vytvořte soubor skriptu

Otevřete svůj oblíbený textový editor a uložte soubor jako .change_wallpapers  ve svém domovském adresáři.

Všimněte si tečky (.) před názvem souboru. Chceme, aby byl tento soubor skrytý, takže je důležité před jeho názvem přidat tečku.\

Poté zkopírujte a vložte níže uvedený skript do nově vytvořeného souboru skriptu.

#!/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[*]}

Krok 2:Úprava skriptu

​Musíte zadat svou vlastní cestu do proměnné prostředí wallpaper_path . Pokud je například adresář vaší tapety (nebo obrázku) v /home/abc/Pictures/Wallpapers, museli byste upravit tento řádek:export wallpaper_path= do

export wallpaper_path=/home/abc/Pictures/WallpapersNavíc jsem přidal nejběžnější přípony obrázkových souborů do proměnné pole tapety . Ale váš preferovaný formát souboru obrázku mohl být vynechán. Možná jsou vaše obrázky ve formátu TIFF nebo v něčem jiném. Ujistěte se, že jste chybějící rozšíření přidali sami. Pokud například chci přidat podporu pro tif, budu muset přidat toto prohlášení níže

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

Krok 3:Vyberte jednu ze dvou níže uvedených možností

Vyberte si pouze jednu z nich... a druhou přeskočte. V opačném případě narazíte na problémy.
​
První možností je, pokud chcete, aby se tapeta měnila v sekvenčním pořadí, tj. počínaje prvním obrázkem a pokračovat k poslednímu. A pak opakujte stejný proces znovu a znovu. Takže nezůstanete u posledního obrázku, když dojde smyčka. Zkopírujte a vložte níže uvedený kód na poslední řádek souboru skriptu.

Změňte pozadí v sekvenčním pořadí

# 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

Změňte pozadí v náhodném pořadí

Pokud dáváte přednost náhodnosti před sekvenčním pořadím, kde se vaše tapety zobrazují náhodně. Zkopírujte a vložte níže uvedený kód na poslední řádek souboru skriptu.

# 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

Krok 4:Dokončení

Vaše .change_wallpapers  skript je hotový. Nyní zbývá udělat jen jednu věc; spuštění tohoto skriptu, když se přihlásíte.

€‹Za tímto účelem musíme k vašemu profilu .profile přidat nějaký kód soubor ke spuštění tohoto skriptu. Pokud stále máte otevřený textový editor, spusťte soubor .profile a zkopírujte tyto čtyři řádky kódu na poslední řádek.

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

V případě, že se vám v dialogovém okně Otevřít nepodařilo najít skrytý soubor .profile, zobrazte všechny skryté soubory stisknutím kláves CTRL + H.

Později můžete stisknutím stejné kombinace kláves deaktivovat zobrazování skrytých souborů a složek v programu pro správu souborů.

Až budete hotovi, restartujte relaci nebo se znovu přihlaste, aby skript vstoupil v platnost.

Závěr

Doufám, že jste tento návod považovali za jednoduchý a snadno sledovatelný. A váš skript úspěšně funguje 🙂 Dejte mi vědět své zkušenosti v sekci komentářů níže. Mimochodem, pokud byste někdy v budoucnu chtěli deaktivovat tento skript automatického přepínání na pozadí, vše, co musíte udělat, je smazat .change_wallpapers skriptu a odstraňte tyto další čtyři řádky ze svého .profile soubor.


Linux
  1. Změnit barvu pozadí terminálu Gnome za letu?

  2. Jak nahradit mezery v názvech souborů pomocí bash skriptu

  3. Jak analyzovat soubor CSV v Bash?

  1. Jak změnit Cron Shell (sh to Bash)?

  2. Jak číst předposlední řádek v souboru pomocí Bash?

  3. Jak zapsat celé číslo do binárního souboru pomocí Bash?

  1. Jak podložit soubor pomocí FF pomocí dd?

  2. Jak změnit kódování, které používá můj SFTP server?

  3. Jak odstranit soubor bez použití rm?