Tipy pre vylepšenie pracovnej plochy: GeekTool a HyperSpaces

Tipy a triky | Jakub Žitný, 27. Jún 2011

LED Cinema - desktop widgets

Pracovná plocha je najjednoduchšie prístupný adresár a zároveň spĺňa estetickú funkciu. Okrem toho, však môže poskytovať množstvo užitočných informácií a systémových logov. Najrozšírenejšia utilita pre takéto úpravy pod Mac OS X je GeekTool, dostupná zadarmo. Umožňuje pridať na plochu informácie o procesoch, voľnom mieste na disku, teplotách a vyťažení procesoru, počasí a mnohé iné.

GeekTool 1
---
GeekTool 2
GeekTool 4

Pracovné plochy vylepšené pomocou utility GeekTool, Zdroj: flickr.com

GeekTool

Po nainštalovaní sa ku GeekTool dá dostať pomocou System Preferences. Poskytuje tri základné kategórie položiek pre pracovnú plochu.

  • Súbory, najmä textové, ktorých obsah sa zobrazí na ploche. Toto sa dá využiť na sledovanie systémových aktivít (napr. /var/log/system­.log).
  • Obrázky, ktoré môžu vizualizovať niektoré systémové informácie (cez MRTG) alebo len náhodne zobraziť v zvolených intervaloch rôzne obrázky.
  • Shell mód, asi najviac využívaný spôsob využívania služieb GeekTool. Umožňuje spúšťať ľubovoľné programy z príkazového riadku. Príkazy manipulujúce s procesmi ako napríklad ‚top‘, alebo celé shell skripty. V Termináli OS X sa dajú spúšťať aj skripty AppleScript, takže je možné napríklad aj priamo komunikovať s aplikáciami ako iTunes alebo Safari.
GeekTool Screenshot

Screenshot utility GeekTool.

Ukažkové skripty

Ak niekoho táto utilita zaujala, môže využiť svoje schopnosti skriptovania v bashi alebo hľadať internete vhodné návody a nápady. Konkrétne pre GeekTool je tutoriálov hneď niekoľko, a dobrých. Napríklad tu alebo tu, zaujímavé skripty sú dostupné aj tu a všeobecne inšpiruje galéria flickr. Mimochodom, verzia shellu je pod ‚/bin/sh‘, čo je v Snow Leopard predvolený Bash 3.2.48(1). Malé základy Bashu sa dajú pochytiť aj v seriáli MacBlogu od Maroša Meszárosa.

Príkaz ‚top‘ a informácie o procesoch

Príkaz ‚top‘ poskytuje informácie o bežiacich procesoch, ktoré v zvolených intervaloch obnovuje a v zvolenom poradí zoraďuje. Na ploche môže byť užitočných zopár riadkov o procesoch, ktoré najviac vyťažujú počítač. V GeekTool je nutné tento príkaz spúšťať s prepínačom -l2, čo posiela na štandardný výstup rozdiel dvoch vzorkov. V opačnom prípade by nebol GeekTool schopný tento výstup zachytiť. Aby boli procesy zoradené od najvyťažovanej­šieho, použije sa prepínač -o s argumentom cpu (alebo priamo -ocpu). Počet riadkov sa obmedzí napríklad na 20, pomocou -n20. Počet stĺpcov sa obmedzí prepínačom -stats a argumentmi kľúčových slov reprezentujúcich jednotlivé stĺpce (napr. -stats cpu,pid,command). Výstup tohto príkazu obsahuje na začiatku všeobecné informácie o procesoroch a pamäti. Zbaviť sa ich dá kombináciami príkazov ‚sed‘, ‚grep‘ a ‚awk‘ alebo odseknutím požadovaných 20 riadkov príkazom tail. Výsledný riadok by mohol vyzerať napríklad takto:

top -ocpu -l2 -n20 -stats cpu,pid,command | tail -20

Všeobecné informácie o vyťaženosti procesoru zobrazí:

echo "\nCPU Usage\n"
top -l2 | grep usage | tail -1 | awk '{print "  "$3 "~ user time\n  " $5"~ system time"}' | sed 's/%//g;s/~/%/g'

Pravidelné intervaly obnovovania má v sebe GeekTool vstavaný, dajú sa nastaviť napríklad na jednu sekundu. Príkaz ‚top‘ sa predvolene obnovuje tiež každú sekundu. Vzhľadom k tomuto je oveľa výhodnejšie použiť príkaz ‚ps‘ na sledovanie procesov. Zároveň aj oveľa menej vyťažuje procesor. Poskytuje ale menej informácií, preto je ‚top‘ viac obľúbený. Podobný upravený výstup sa dá dosiahnuť nasledujúcou kombináciou príkazov:

echo "Processes\n"
ps -arcwwwxo "%cpu command" | grep -v 'CPU' | head -11 | awk '($1 < 10){print "   " $1" | " $2}($1 < 100 && $1 >= 10){print " " $1" | " $2}($1 >= 100){print $1 " | " $2}'
10 najvyťažovanejších procesov GeekTool

Príkaz ‚df‘ a voľné miesto na disku

Najrýchlejší spôsob ako zistiť v OS X, koľko voľného miesta ostáva na disku je otvoriť nejaký priečinok a pozrieť sa na jeho spodnú lištu. Príkaz ‚df‘ zobrazuje informácie o voľnom mieste na diskových zariadeniach. Pomocou prepínaču -H sa tieto informácie zobrazia v zmysluplných hodnotách ako sú gigabajty alebo megabajty. S odstránením nepotrebných informácií, riadok pre GeekTool môže vyzerať napríklad nasledovne:

echo "Disk Space\n"
df -H | grep 'disk0s2' | awk '{print "  " $4 " available\n "  $3 " used" }' | sed 's/G/ GB/g;s/M/ MB/g'

Komunikácia s aplikáciami pomocou AppleScript

V OS X je nainštalovaná konzolová aplikácia ‚osascript‘, ktorá umožňuje spúšťať skripty AppleScript. V GeekTool sa pomocou neho dá zobraziť napríklad aktuálne prehrávaná skladba v iTunes, nasledovným kódom:

state=`osascript -e 'tell application "iTunes" to player state as string'`;
if [ $state = "playing" ]; then
  artist=`osascript -e 'tell application "iTunes" to artist of current track as string'`;
  track=`osascript -e 'tell application "iTunes" to name of current track as string'`;
  echo "\niTunes\n\n  $artist"
  echo "  $track" | cut -c 1-20;
fi

Príkaz ‚date‘ a informácie o počasí

Pokiaľ nemáte dátum zobrazený v hornom menu, tak si ho určite umiestnite na svoju plochu. Je to asi najjednoduchší príkaz.

Zobrazí deň:
date "+%d"

mesiac:
date "+%m"

rok:
date "+%Y"

alebo aj čas:
date "+%I:%M"

Tieto argumenty sa dajú kombinovať a aj pomocou vhodného pozadia a zvoleného písma môžu vytvoriť pekný meniaci sa kúsok na pracovnej ploche. Iná káva už je zobraziť predpoveď počasia. Keďže takéto informácie systém neuchováva, treba ich stiahnuť z internetu pomocou príkazu ‚curl‘ alebo ‚wget‘. Populárny internetový provider predpovedí počasia pre rôzne aplikácie a webstránky je Yahoo Weather. Stiahnutím xml feedu a odstránením nepotrebných tagov zobrazí predpoveď počasia nasledujúca kombinácia príkazov.

curl --silent "http://xml.weather.yahoo.com/forecastrss?w=821207&u=c" | grep -E '(Current Conditions:|C<BR)' | sed -e 's/Current Conditions://' -e 's/<br \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<description>//' -e 's/<\/description>//'

Príkaz ‚cal‘ zobrazí kalendár, aktuálny mesiac. Upravený stream editorom ‚sed‘, môže pre GeekTool vyzerať nasledovne:

cal | sed "s/^/ /;s/$/ /;s/ $(date +%e) / $(date +%e | sed 's/./#/g') /"
Dátum, čas a počasie pomocou GeekTool

Dátum, čas a počasie pomocou GeekTool, Zdroj: flickr.com

Okrem spomenutých príkazov sa dajú použiť ešte mnohé iné. Veľmi populárne sú ‚uptime‘, ktorý ukáže ako dlho je počítač zapnutý alebo ‚ifconfig‘ pre sieťové parametre, napríklad zobrazenie verejnej IP adresy. Web je plný inšpirácií, nenechajte obmedzovať svoju fantáziu.

HyperSpaces

Ďalšia utilita vylepšujúca pracovnú plochu je HyperSpaces, dostupná z AppStore za 10,49 EUR. Vďaka nej je možné v Mac OS X pomenovávať pracovné plochy a ku každej priradiť iné pozadie. Po príchode Mac OS X Lion pravdepodobne jej vývojári predstavia aktualizáciu, ktorá bude priamo spolupracovať s Mission Control. Zatiaľ si potencionálni záujemcovia môžu stiahnuť demo verziu a prípadne na každú plochu si dať nové pozadia z vývojárskych verzií OS X Lion, ktoré je možné stiahnuť tu.

HyperSpaces

HyperSpaces, Zdroj: itunes.apple.com

27.06.2011 o 12:41

Hyperspaces pre Mac OS X Lion nebudú:

http://thecoco­abots.com/…pos­t/376/Mac OS X Lion

27.06.2011 o 12:57

Gratulujem. GeekTool je ako Minecraft – dlhé nastavovanie a vylepšovanie a potom prakticky žiadny úžitok a ešte to aj spôsobí kritickú chybu a zmaže si nastavenia (creeper).

27.06.2011 o 16:40

s GeekToolom som sa par dni hral. uznavam ze sa da dosiahnut celkom zaujimavy vysledny efekt… prakticka vyuzitelnost je vsak velmi otazna, a stabilita u mna bola velmi slaba… pri spustenom GeekToole mi zacal lagovat system a zoparkrat na mna vybafol critical error….. tak sme sa rozlucili… ale pekne to je. to ano… :)

27.06.2011 o 18:26

Ahoj,

GeekTool volna obdoba conky pre GNOME.

Inak s Conky velmi dobre skusenosti, takze odporucam stiahnut zdrojak k tomu a prepisat, aby fungoval pod OSX.

28.06.2011 o 10:20

@Psittacula: To prirovnanie s Minecrafom je velmi trefne :)



MacBlog.sk je elektronické médium a súkromným priestorom, kde vám poskytovateľ
umožňuje odoslať komentár k článku. Váš komentár nemusí byť zaručene uverejnený.





TOPlist