Fórum Ubuntu CZ/SK
Ostatní => Tipy a triky pro Linux => Téma založeno: Tomáš Břinčil 10 Ledna 2011, 21:43:48
-
Script, který pravidelně stáhne náhodnou tapetu z wallbase.net (http://wallbase.net/random/all/eqeq/0x0/0/111/32) a v pravidelných intervalech ji obmění.
Ve scriptu by mělo být vše popsané, je potřeba jej nakonfigurovat.
Je vhodné ho dát do aplikací spuštěných při přihlášení.
Pokud se ptáte proč jsem nepoužil CRON, protože DBUS.
#!/usr/bin/env bash
#####################################################################
# #
# Thanks to wallbase.net for you great database of wallpapers! #
# #
# Random Wallpaper switcher for Ubuntu #
# Author: Tomáš Břinčil #
# me@tomasbrincil.cz - www.tomasbrincil.cz #
#####################################################################
# WARNING! Do not paste wallbase.sh script into DIRECTORY
# and any file you don't want delete.
# Directory to archive yours wallpapers.
DIRECTORY="/home/snouman/Obrázky/Wallpapers"
# Size in Kb of cache for stored wallpapers.
CACHE="50000"
# 100 lean wallpapers
# 010 may contain soft/erotic poses (non nude), partial nudity (bikini), some gore
# 001 contains nude/erotic(softcore)/boobs/vagina, gore/violence, etc...
# You may combine them. For example 011 means that wallpapers obtains girls in bikini AND nude/erotic...
CATEGORY="110"
# Time in seconds for one wallpaper.
TIME="300"
# Resolutions
# Standard WideScreen
# 800x600 1024x600
# 1024x768 1280x800
# 1280x960 1366x768
# 1280x1024 1440x900
# 1400x1050 1600x900
# 1600x1200 1680x1050
# 2560x2048 1920x1080
# 1920x1200
# 2560x1440
# 2560x1600
RESOLUTION="1680x1050"
# Ratio should be "0"
# If you have dual monitor, two LCDs set 2.50
# In case dual wide, two LCD 1680x1050 set 3.20
RATIO="0"
while [ 1 ]
do
cd $DIRECTORY
wget -O .cache -q "http://wallbase.net/random/213/eqeq/$RESOLUTION/$RATIO/$CATEGORY/20"
LINK=(`cat .cache | grep -E 'http://wallbase.net/wallpaper/[0-9]{6}' -m 1 -o`)
wget -O .cache -q $LINK
IMG=(`cat .cache | grep -E '\http://wallbase2.org/rozne/[0123456789abcdefABCDEF]{32}/wallpaper-[0-9]{0,10}.jpg' -m 1 -o`)
SIZEBEFORE=(`du | awk '{print $1}'`)
wget -q $IMG
SIZEAFTER=(`du | awk '{print $1}'`)
NEWONE=(`ls -ur | tail -1`)
if [ $SIZEBEFORE -lt $SIZEAFTER ] ; then
gconftool-2 -t string -s /desktop/gnome/background/picture_filename "$DIRECTORY/$NEWONE"
echo $NEWONE
sleep $TIME
fi
while [ $CACHE -lt $SIZEAFTER ]
do
rm `ls -c | tail -n 1`
SIZEAFTER=(`du | awk '{print $1}'`)
done
done
-
take bych potreboval zmenit pozadi, uz ho mam notne presezene :)
zde jsem nasel par bash tipu, treba se ti budou priste hodit:
cd $DIRECTORY
http://mywiki.wooledge.org/BashPitfalls#cd_.24.28dirname_.22.24f.22.29
http://mywiki.wooledge.org/BashPitfalls#cd_.2BAC8-foo.3B_bar
rm `ls -c | tail -n 1`
http://mywiki.wooledge.org/ParsingLs
take mam par dotazu:
LINK=(`cat .cache | grep -E 'http://wallbase.net/wallpaper/[0-9]{6}' -m 1 -o`)
proc spoustis tu rouru v subshellu? je v tom nejaka vyhoda oproti
LINK=`cat .cache | grep -E 'http://wallbase.net/wallpaper/[0-9]{6}' -m 1 -o`
?
SIZEBEFORE=(`du | awk '{print $1}'`)
ktereho souboru/adresare vlastne velikost meris?
-
...
SIZEBEFORE=(`du | awk '{print $1}'`)
ktereho souboru/adresare vlastne velikost meris?
Měřím velikost "." aktuálního adresáře.
Díky za skvělý tipy, příště to bude určitě lepší 8)
-
Měřím velikost "." aktuálního adresáře.
problem, pokud dany adresar obsahuje jine podadresare$ du
4 ./test2
60 .
$ SIZEBEFORE=(`du | awk '{print $1}'`); echo $SIZEBEFORE
4
-
dá sa to aj cez Drapes (záclony plochy):)
-
Měřím velikost "." aktuálního adresáře.
problem, pokud dany adresar obsahuje jine podadresare$ du
4 ./test2
60 .
$ SIZEBEFORE=(`du | awk '{print $1}'`); echo $SIZEBEFORE
4
Proč by tam měly být?
-
Na stránkách Ubuntu Tweak jsem narazil na tohle:http://ubuntu-tweak.com/app/wally/ (http://ubuntu-tweak.com/app/wally/), nemuselo by to být špatné, osobně tyhle volovinky moc nežeru.