Každý deň iný wallpaper

01.01.2007

Minule som si povedal že už nastal čas aby som si zmenil wallpaper. Pri tejto príležitosti som si ich stiahol rovno 150 smile. Povedal som si že si z nich vyberem jeden ktorý bude NAJ. Samozrejme vybrať si bolo veľmi obtiažné, a tak som sa to rozhodol riešiť inak. Spravil som si bash skript ktorý mi pri každom spustení Fluxboxu vyberie náhodný obrázok z adresára a nastaví ho ako wallpaper.

Samotný skript vyzerá následovne:

#! /bin/bash
POCET=`ls -l ~/wallpapers/| grep -v total | wc -l`
RANDOM=`date +%N`
CISLO=$RANDOM
let "CISLO %= $POCET"
if [ $CISLO -eq 0 ]
then
  CISLO=1
fi
SUBOR=`ls -l ~/wallpapers/ | grep -v total | awk 'NR == '$CISLO'{print $9}'`
Esetroot  -bgcolor 0 -fit ~/wallpapers/$SUBOR 

Čo robí daný skript je očividné. Mám z neho veľkú radosť, pretože takýmto spôsobom mám stále iný wallpaper, čo je veľmi osviežujúce. Keď si predstavím že by som rovnakú vec mal robiť napr. vo Windows, asi by som musel použiť nejaký záludný program, resp. si ho sám napísať. Ten by však každopádne nemal 11 riadkov smile. V takýchto chvíľach je bash neoceniteľný. Viem že skript sa dá napísať aj inak, podľa môjho vzoru si podobný napísal aj kamarát, avšak z menšími modifikáciami. Ak by niekto z vás mal podobné vychytávky a vylepšenia, prosím neštíťte sa ;).

update

Na základe pôvodnej diskusie k zápisu na www.abclinuxu.cz som zistil že niekto na túto featuru myslel už podstatne skôr ako ja. A síce fluxbox sám o sebe obsahuje utilitu fbsetbg a spolu s parametrom -r dokáže presne to čo môj shellovský skript. Takže pre tých čo majú Fluxbox stačí:

fbsetbg -r wallpapers/

kde wallpapers/ je cesta k adresáru s obrázkami na pozadie.