Mit diesem Artikel möchte ich euch mit meiner neuen Leidenschaft des Desktoptunings bekannt machen. Seit kurzem verschönere ich sehr gern meinen Desktop.
Hier zeige ich euch mein zweites Ergebnis. Den Tron inspirierten Desktop.
Hier mal das Gesamtergebnis:
Ich habe dafür folgende 3 Tools verwendet:
1. GeekTool
GeekTool ist das wichtigste Tool beim Desktoptuning, da man damit diverse Scripts verwenden kann, die die verschiedenen Daten auf dem Desktop anzeigen.
Bowtie ist ein nettes Tool um damit iTunes Daten auf dem Desktop anzuzeigen. Man kann damit, je nach gewähltem Theme Albumartwork, Album/Songinformationen und Steuerungen anzeigen lassen.
DateLine ist ein interessantes Tool um eine dezente Kalenderübersicht anzeigen zu lassen. Ihr findet die App im Mac Appstore.
Ok. Gehen wir in die Details.
Hier lasse ich mit GeekTool nur einen Text anzeigen. In diesem Fall "www.STYNG1975"
code: echo "dein Text"
An dieser Stelle lasse ich mir im linken Reifen den Tag und im rechten Reifen den Monat anzeigen.
code Tag: date +%d
code Monat: date +%B
An dieser Stelle lass ich mir zum einen den Wochentag anzeigen
code: date +%A
und zum anderen habe ich mir hier einen Kalender im Querformat anzeigen lassen
code:
#!/bin/bash
export LC_TIME=de_DE
cal | sed -e '/ 1 /s/ / /g' -e '/ 1 /!s/ / /g' | sed -e '/Su/s/^/ /g' -e 's/^/ /g' -e '/Su/!s/^/ /g'| sed -e '1d' -e '2p;2p;2p;2p' | sed -e '$!N;s/\n/ /' -e '$!N;s/\n/ /' -e '$!N;s/\n/ /' -e '$!N;s/\n/ /' | sed -e 's/ 9 / 9 /g' -e 's/ 8 / 8 /g' | sed "s/^/ /;s/$/ /;s/ $(date +%e) /\|$(date +%e)\|/"
Hier habe ich einen sehr transparenten Kalender als Monatsansicht mit der Markierung des aktuellen Tages im Blockformat eingebaut
code:
cal | sed "s/^/ /;s/$/ /;s/ $(date +%e) / $(date +%e | sed 's/./@/g') /"
An dieser stelle lasse ich mir meinen Twitterfeed anzeigen
code:
#!/usr/bin/osascript
set ShowTweets to 8
on replace_chars(this_text, search_string, replacement_string)
set text item delimiters to the search_string
set the item_list to every text item of this_text
set AppleScript's text item delimiters to the replacement_string
set this_text to the item_list as string
set AppleScript's text item delimiters to ""
return this_text
end replace_chars
set esc to ASCII character 27
set nl to ASCII character 10
set output to nl
tell application "System Events"
set myList to (name of every process)
end tell
if myList contains "Twitter" then
tell application "Twitter"
repeat with s from 1 to ShowTweets
set _text to my replace_chars(display text of status s of home timeline of the current account, nl, " ")
set _auth to name of author of status s of home timeline of the current account
set r to retweeter of status s of home timeline of the current account
if r is not missing value then
set _retweet to _auth
set _auth to name of retweeter of status s of home timeline of the current account
end if
-- if s mod 2 = 0 then
-- set _auth to esc & "[1;31m" & _auth & esc & "[0m"
-- else
set _auth to esc & "[1m" & _auth & esc & "[0m"
-- end if
if r is not missing value then
set output to output & " " & _auth & " - RT " & _retweet & " " & _text
else
set output to output & " " & _auth & " - " & _text
end if
set output to output & nl
end repeat
end tell
output
else
"Twitter is not running"
end if
Im rechten Reifen wird mir die Datenmenge im Trash/Mülleimer anzeigt.
Im linken Reifen werden mir die gesamte Anzahl aller ungelesenen Mails angezeigt.
Neben dem Linken Reifen werden mir die 10 Aktivsten Prozesse meines Macs Angezeigt.
Darüber wird mir die sogenannte "Uptime" angezeigt, d.h. wie lange mein Mac schon läuft seit demletzen Start.
Hier nun die Codes:
code Trash:
echo "TRASH"
du -sh ~/.Trash/ | awk '{print "" $1}'
code Mails
echo "eMails"
echo 'tell application "Mail" to return unread count of mailboxes of accounts' | osascript | perl -e "@a=split ',',<STDIN>; foreach (@a) {\$n += \$_}; print \"\$n\n\";" print "eMails"
code Prozesse
ps -arcwwwxo "command %cpu %mem" | grep -v grep | head -13
code uptime
#!/bin/bash
then=$(sysctl kern.boottime | awk '{print $5}' | sed "s/,//")
now=$(date +%s)
diff=$(($now-$then))
days=$(($diff/86400));
diff=$(($diff-($days*86400)))
hours=$(($diff/3600))
diff=$(($diff-($hours*3600)))
minutes=$(($diff/60))
seconds=$(($diff-($minutes*60)))
function format {
if [ $1 == 1 ]; then
echo $1 ' ' $2
else
echo $1 ' ' $2's'
fi
}
echo 'Uptime: '`format $days "day"` `format $hours "hour"` `format $minutes "minute"` `format $seconds "second"`
Hier lasse ich mir den DatenTransfer im Netzwerk, die Systemdaten und das Wort "System" anzeigen
code DataTransfer
echo "Data Transfer"
#!/bin/sh
# get the current number of bytes in and bytes out
myvar1=`netstat -ib | grep -e "en1" -m 1 | awk '{print $7}'` # bytes in
myvar3=`netstat -ib | grep -e "en1" -m 1 | awk '{print $10}'` # bytes out
#wait one second
sleep 1
# get the number of bytes in and out one second later
myvar2=`netstat -ib | grep -e "en1" -m 1 | awk '{print $7}'` # bytes in again
myvar4=`netstat -ib | grep -e "en1" -m 1 | awk '{print $10}'` # bytes out again
# find the difference between bytes in and out during that one second
subin=$(($myvar2 - $myvar1))
subout=$(($myvar4 - $myvar3))
# convert bytes to kilobytes
kbin=`echo "scale=2; $subin/1024;" | bc`
kbout=`echo "scale=2; $subout/1024;" | bc`
# print the results
echo "IN: $kbin Kb/sec"
echo "OUT: $kbout Kb/sec"
code System Daten
system_profiler SPHardwareDataType SPSoftwareDataType | perl -e '@info= <> ; $info= join("", @info) ;if($info=~m@[\r\n]+\s*Memory:\s*([^\r\n]+)[\r\n]+@) {print "$1\n";}if($info=~m@[\r\n]+\s*Total Number Of Cores:\s*([^\r\n]+)[\r\n]+@) {print "$1 x ";}if($info=~m@[\r\n]+\s*Processor Speed:\s*([^\r\n]+)[\r\n]+@) {print "$1 "; } if($info=~m@[\r\n]+\s*Processor Name:\s*([^\r\n]+)[\r\n]+@) {print "$1\n";}if($info=~m@[\r\n]+\s*System Version:\s*([^\r\n]+)[\r\n]+@) {print "$1\n";}'
Hier lasse ich mir die Wetter Daten präsentieren. Sonnenaufgang, Sonnenuntergang, Aktuelles Wetter und die 2-Tage Vorschau
code Sonnenaufgang:
curl http://m.wund.com/global/stations/10389.html | grep 'Sunrise' | sed -e :a -e 's/<[^>]*>//g;/</N;//ba' | sed -e 's/Sunrise/Aufgang: /g' | sed -e 's/CET//g' | cut -c 1-14
code Sonnenuntergang:
curl http://m.wund.com/global/stations/10389.html | grep 'Sunset' | sed -e :a -e 's/<[^>]*>//g;/</N;//ba' | sed -e 's/Sunset/Untergang: /g' | sed -e 's/PST//g' | cut -c 1-15 | sed -e 's/ 6:/ 18:/g' | sed -e 's/ 7:/ 19:/g' | sed -e 's/ 8:/ 20:/g' | sed -e 's/ 9:/ 21:/g' | sed -e 's/ 10:/ 22:/g' | sed -e 's/ 11:/ 23:/g' | sed -e 's/ 5:/ 17:/g'
code aktuelles Wetter
curl --silent "http://weather.yahooapis.com/forecastrss?p=GMXX1273&u=c" | grep -E '(Current Conditions:| C<BR)' | sed -e 's/<b>Current Conditions\:<\/b><br \/>//;s/<BR \/>//;s/Clear/heiter/; s/Partly Cloudy/heiter bis wolkig/;s/Cloudy/bedeckt/;s/Few/wenige/;s/Wind/windig/;s/Fair/heiter/;s/Isolated/vereinzelt/; s/Heavy/starker/;s/Light/leichter/;s/Mostly/meist/;s/Mix/wechselhaft/; s/Partly/zum Teil/;s/Scattered/vereinzelt/;s/Sunny/sonnig/;s/Wintry/winterlich/;s/Drizzle/Nieselregen/;s/Fog/Nebel/; s/Mist/leichter Nebel/;s/Rain/Regen/;s/Showers/Schauer/; s/Showers Late/abends Schauer/;s/Shower/Schauer/;s/Showers in the Vicinity/Schauer in der Umgebung/;s/Snow/Schnee/; s/T-showers/Gewitter/;s/Thundershower/Gewitterschauer/;s/Thunderstorm/Gewittersturm/;s/Thunder/Gewitter/; s/AM/vormittags/;s/PM/nachmittags/;s/Early/morgens/;s/Late/abends/;s/to/oder/;s/\ C$/\°C/;/^ *$/d; s/.*/ &/'
code 2-Tage Vorschau
curl --silent "http://weather.yahooapis.com/forecastrss?p=GMXX1273&u=c" | grep -E '(High:)' | sed -e 's/<BR \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<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/Shower/Schauer/g' -e 's/Showers in the Vicinity/Schauer in der Umgebung/g' -e 's/T-showers/Gewitter/g' -e 's/Thundershower/Gewitterschauer/g' -e 's/Heavy/starker/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/bedeckt/g' -e 's/Wind/windig/g' -e 's/Few/wenige/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' -e 's/Mon/Mo/g' -e 's/Tue/Di/g' -e 's/Wed/Mi/g' -e 's/Thu/Do/g' -e 's/Fri/Fr/g' -e 's/Sat/Sa/g' -e 's/Sun/So/g' -e 's/High/max/g' -e 's/Low/\- min/g' -e 's/\://g' -e 's/\./,/g' -e 's/\([0-9][0-9]*\)/&\°C/g'
Hier lasse ich mir die Uhrzeit anzeigen und einen alternativen Kalender als Monatsübersicht OHNE Markierung für den aktuellen Tag
code Uhrzeit: date +%H:%M
code Kalender:
cal | sed -E '1,$'"s/ ($(date +%e))( |$)/ \1$(echo '\033[0m')\2/"
und lasst but not least kommt oben rechts in der ecke noch
Bowtie zum Einsatz.
Ich benutze in diesem Beispiel das Theme BT-2 by Philip Antoni
Das Wallpaper habe ich mir aus 2 bestehenden Wallpapers zusammengebastelt und modifiziert.
So das wär's erstmal. Wer Fragen hat, möchte diese bitte unten in die Kommentare schreiben.
Ich freue mich über jedes Feedback via Kommentar.
Ihr dürft den Artikel natürlich auch gern mit anderen Teilen, zB auf Twitter, Facebook, Google+ usw.
Cheers
STYNG