Geektool Scripts
These are an ever growing compilation of scripts and code snippets that I have written or collected in a format that’s easy to understand and use. If you need help feel free to email me at nic@nicinabox.com, but please read the documentation first.
UPDATE 8/15/2011 Most of these scripts have been repackaged in a gem.
I encourage you to checkout some of the Desktop screenshots on Flickr (some are very nice!) for ideas.If you have a script or something clever you'd like to add to this collection, please contact me.
These commands require that you actually install the scripts. Some are built into the system, but most are custom. For more information, check readme.html included in the download.
This package includes the following:
- Network info
- Unread Gmail
- Uptime
- Calendar (with current day denoted)
- Weather
- System Stats
- Recent Music plays
Installing the scripts
Note: this step can be skipped if you're using the gem.
Copy files to a directory in your PATH. I recommend /usr/local/bin. This will make the commands accessible by just typing the name of it, eg.
$ airportThat's it!
Using the scripts
After you've got them installed you'll want to pop open Geektool and enter the command in the Command field. You should immediately see output on your desktop. For time sensitive scripts like weather you'll probably want to set a refresh time of 30-60 seconds.
If you're using the gem and RVM you need to include and extra line in the command. Geektool runs in a subshell and does not use custom PATHs specified in your .bash_profile or .profile. Simply tell Geektool to use your profile as the source of the subshell (the period means "source").
. /Users/nic/.bash_profile # be sure to include this part if using the gem
weather -z 60614Obviously substitute my username for your own shortname.
Uptime
Displays your system's uptime.
uptime | awk '{print "Uptime : " $3 " " $4 " " $5 }' | sed -e 's/.$//g'Uptime : 25 days, 8:28Network Info
Displays your Wifi or Ethernet IP. Also see IP script
Internal IP
ifconfig en1 | grep "inet " | awk '{print $2}'192.168.1.2External IP
curl -s www.whatismyip.com/automation/n09230945.asp | awk {'print "External : " $1'}External: 72.45.123.12Calendar
cal | sed "s/^/ /;s/$/ /;s/ $(date +%e) / $(date +%e | sed 's/./#/g') /"July 2009
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 ## 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31Memory Usage
Prints out total Memory Usage
top -l 1 | awk '/PhysMem/ {print "Used: " $8}'
top -l 1 | awk '/PhysMem/ {print "Inactive: " $6+$10"M"}'Used: 1769M
Inactive: 688MCPU Usage
Horizontal
top -l 1| awk '/CPU usage/ {print $6, $7, $8, $9, $10, $11, $12, $13}'CPU usage: 22.22% user, 71.11% sys, 6.67% idleVertical
echo CPU usage
top -l 1| awk '/CPU usage/ {print $8, $9}'
top -l 1| awk '/CPU usage/ {print $10, $11}'
top -l 1| awk '/CPU usage/ {print $12, $13}'CPU usage
22.22% user,
71.11% sys,
6.67% idleUnread Gmail
This script requires a username and password. You must edit it before use. Replace USERNAME PASSWORD with your username and password. Credits to Greg Newman.
gmail3 UnreadIP Address
ipaddressEthernet : INACTIVE
Airport : 161.45.27.132