Geektool

Aus d0b
Zur Navigation springenZur Suche springen


Mein Geektool Desktop
Mein Geektool Desktop in Bearbeitung

Geektool

Geektool ist ein nettes Program, welches System Informationen und mehr, über 3 verschiedene Plugin Varianten (Shell, File, Image) einblenden kann. Ein Skript für Geektool nennt sich übrigens Geeklet.

Man sollte darauf achten das die "refresh"-Zeiten passend zu dem jeweiligen Skript sind, wir wollen unser System z.B. nicht jede Sekunde fragen was für n Tag heute ist.

Auf den abgebildeten Desktop, ist in der Mitte links ein weiteres Programm zu sehen welches sich atmonitor nennt, das hat jedoch nichts mit Geektool zu tun.


Geeklets

HD Kapazität & Ram Frei

df -Hl | grep 'disk0s2' | awk '{print "HD: "$2 "B / Frei: " $4"B  ("$5" Voll)"}'
top -l 1 | awk '/PhysMem/ {print "RAM Frei : " $10 " "}'

Letztes Timemachine Backup

printf "Last TM Backup: " && defaults read /private/var/db/.TimeMachine.Results BACKUP_COMPLETED_DATE | awk '{print $1 " " $2}'

WAN IP

wip=`curl --silent http://checkip.dyndns.org | awk '{print $6}' | cut -f 1 -d "<"`
echo "WAN: $wip"

LAN & WLAN Status

#!/usr/bin/perl
$en0_info = `ifconfig en0 | grep "inet" | grep -v 127.0.0.1`;
$en1_info = `ifconfig en1 | grep "inet" | grep -v 127.0.0.1`;
#$ext_info = `curl --silent http://checkip.dyndns.org | awk '{printf $6}' | cut -f 1 -d "<" | tr -d 'n'`;
$airport_network = `/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | awk -F: '/SSID/  {print $2}'`;

if($en0_info)
{
	$en0_info =~ /inet (.*) netmask/s;
	$output .= "en0:  $1 \n";
}
else
{ $output .= "en0: xxx.xxx.xxx.xxx \n";}

if($en1_info)
{
	$en1_info =~ /inet (.*) netmask/s;
	$en1_info = $1;
	$output .= "en1: $en1_info \n\n $airport_network \n";
}
else
	{ $output .= "en1: xxx.xxx.xxx.xxx \n";}


print "$output"; 

Uptime

uptime | awk '{print "UPTIME  : " $3 " " $4 " " $5 " " }'; 

Batterie Status

my_ac_adapt=`ioreg -w0 -l | grep ExternalConnected | awk '{print $5}'` 
if [ "$my_ac_adapt" == "Yes" ] 
then 
echo "Power : External" 
else 
cur_power=`ioreg -w0 -l | grep CurrentCapacity | awk '{print $5}'` 
max_power=`ioreg -w0 -l | grep MaxCapacity | awk '{print $5}'` 
bat_percent=`echo "scale=2;$cur_power / $max_power" | bc` 
bat_percent=`echo "$bat_percent * 100" | bc | sed 's/.00//'` 
cyc_count=`ioreg -w0 -l | grep "Cycle Count" | awk 'BEGIN { FS = "=" } ; {print $8}' | awk 'BEGIN { FS = "}" } ; {print $1}'` 
echo "Power : Battery ($bat_percent%)" 
echo "Cycles : $cyc_count" 
fi 


Ical Todo Liste

(benötigt Icalbuddy)

/usr/local/bin/icalBuddy -nc -li 3 -npn uncompletedTasks

Ical Kalenderauszug von heute

(benötigt Icalbuddy)

/usr/local/bin/icalBuddy -nc -npn eventsToday | sed -e "s/*/--/" | sed -e "s/!/!!/"

Wetter für heute (muss natürlich angepasst werden)

curl --silent "http://weather.yahooapis.com/forecastrss?p=GMXX4675&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>//' -e 's/Fair/heiter/g'  -e 's/Partly/teilweise/g' -e 's/Sunny/sonnig/g' -e 's/Mostly/meist/g' -e 's/Light/leichter/g'
 -e 's/Rain/Regen/g' -e 's/Showers/Schauer/g' -e 's/T-showers/Gewitter/g' -e 's/Mostly/meist/g' -e 's/Scattered/vereinzelt/g' -e 
's/Showers Late/abends Schauer/g' -e 's/AM/vormittags/g' -e 's/PM/nachmittags/g' -e 's/Clear/klar/g' -e 's/Cloudy/bewoelkt/g' -e 
's/Wind/windig/g' -e 's/Few/gelegentlich/g' -e 's/Thunderstorm/Gewittersturm/g' -e 's/Thunder/Gewitter/g' -e 's/Snow/Schnee/g' -e
 's/Fog/Nebel/g' -e 's/Early/morgens/g' -e 's/Late/abends/g' -e 's/Drizzle/Niesel/g' -e 's/Isolated/isoliert/g' -e 
's/Mix/wechselhaft/g' -e 's/Wintry/winterlich/g' -e 's/to/oder/g' -e 's/Mist/leichter Nebel/g'

Fuzzy Clock op Kölsch

#!/usr/bin/osascript

set hrs to do shell script "date +%l"
set min to do shell script "date +%M"
set numwrds to {"Ens", "Zwei", "Drei", "Vier", "Fuennef", "Sechs", "Sibbe", "Aach", "Nueng", "Zehn", "Elf", "Zwölf", "Druecksehn", 
"Veezehn", "Fuffzehn", "Sechssehn", "Sibbezehn", "Aachzehn", "Nuengzehn", "Zwanzich", "Enunzwanzich", "Zweiunzwanzich", "Dreiunzwanzich", 
"Veeunzwanzich", "Fuennfunzwanzich", "Sechsunzwanzich", "Sibbeunzwanzich", "Aachunzwanzich", "Nuengunzwanzich", "halb"}
set headr to "Et is "
if min = 0 then
	set hr to item hrs of numwrds
	return headr & hr & " o'clock."
else if min < 31 then
	set hr to item hrs of numwrds
	set mn to item min of numwrds
	return headr & mn & " noh " & hr & "."
else
	set hr to item (hrs + 1) of numwrds
	set mn to item (60 - min) of numwrds
	return headr & mn & " vür " & hr & "."
end if

About the Mac

echo `sw_vers -productName` \(v`sw_vers -productVersion`\) - `sysctl -n hw.model`; echo `sysctl -n machdep.cpu.brand_string |
 sed -e 's/([^)]*)//g' | tr '@' '-'`