Index: trunk/LocationDo/LocationDo.py
===================================================================
--- trunk/LocationDo/LocationDo.py	(revision 204)
+++ trunk/LocationDo/LocationDo.py	(revision 205)
@@ -31,4 +31,5 @@
 RE_AIRPORT_STATUS = '/'.join([kSCDynamicStoreDomainState, kSCCompNetwork, kSCCompInterface, kSCCompAnyRegex, kSCEntNetAirPort])
 
+# XXX switch to Cocoa interface for Growl
 growl = app('GrowlHelperApp')
 
@@ -58,4 +59,7 @@
 currentLocation = Location()
 
+# XXX attach actions to location tag; something like:
+# locations['Siebel'].onArrive.ensureKerberosPrincipalsValid(...)
+
 def arriveAtLocation(location):
     growlNotify(NOTIFICATION_ARRIVE, 'Arriving at location', location)
@@ -68,11 +72,19 @@
         action.setDisplayBrightnessPercent(0.2)
         action.setAdiumStatus('Working in 1115 SC')
+    if '1404 SC' in location:
+        action.setDisplayBrightnessPercent(0.4)
+        action.setVolumePercent(0)
+        action.setAdiumStatus('In 1404 SC')
     if '4111 SC' in location:
-        action.openInBackground('~/Documents/MSSP/MSSP progress.oo3')
-        action.terminalDo('kswitch -p njriley@ACM.UIUC.EDU;(sleep 10;kswitch -p njriley@AD.UIUC.EDU)&!;clear;ssh yt')
+        action.openInBackground('~/Documents/Research/Research progress.oo3')
+        # XXX wait for yt to be accessible
+        # XXX start NX
+        # XXX move windows
+        action.terminalDo('kswitch -p njriley@ACM.UIUC.EDU;(sleep 10;kswitch -p njriley@AD.UIUC.EDU)&! ;clear;ssh yt')
         action.setDisplayBrightnessPercent(0.9)
         action.setAdiumStatus('Working in 4111 SC')
     if 'ACM office' in location:
         action.setDisplayBrightnessPercent(0.2)
+        action.setVolumePercent(0.5)
         action.setAdiumStatus('At ACM')
     if 'Champaign' in location:
@@ -121,4 +133,6 @@
 
 # XXX watch battery status, too, for display brightness
+# XXX look at display configuration to tell difference between 4111 and 4124
+# XXX need concept of ambiguity, ask user which location they're in (ACM/1115)
 
 airPortStatus = {'BSSID': None, 'SSID': None}
@@ -136,4 +150,6 @@
                                  '00:0e:83:05:75:d2']:
                         location.add('4111 SC')
+                    elif bssid in ['00:0e:83:05:75:a2', '00:0e:83:05:75:a0']:
+                        location.add('1404 SC')
                     elif bssid in ['00:0e:83:05:76:82', '00:0e:83:05:76:80']:
                         location.add('ACM office')
@@ -146,4 +162,10 @@
                     elif bssid == '00:02:2d:2c:cb:34':
                         location.add('B02 CSL')
+                    elif bssid == '00:13:c4:78:e1:a0':
+                        location.add('Engineering Hall')
+                    elif bssid == '00:0d:93:ed:e0:bc':
+                        location.add('340 Marlborough St.')
+                    elif bssid == '00:40:96:5a:5e:0f':
+                        location.add('BMI baggage claim')
                     elif bssid == '44:44:44:44:44:44':
                         location.add('No AirPort network')
@@ -168,4 +190,8 @@
                     elif ssid == 'CSL Wireless':
                         location.add('CSL')
+                    elif ssid == 'Wackyland':
+                        location.add('340 Marlborough St.')
+                    elif ssid == 'CIRA':
+                        location.add('BMI')
                     else:
                         growlNotify(NOTIFICATION_UNKNOWN, 'Unknown SSID', ssid,
Index: trunk/LocationDo/SCNetworkReachabilitymodule.c
===================================================================
--- trunk/LocationDo/SCNetworkReachabilitymodule.c	(revision 204)
+++ trunk/LocationDo/SCNetworkReachabilitymodule.c	(revision 205)
@@ -18,4 +18,6 @@
 	   (flags & kSCNetworkFlagsConnectionAutomatic)));
 }
+
+/* XXX should have a way to cancel (e.g. on location detach) */
 
 static void
Index: trunk/LocationDo/action.py
===================================================================
--- trunk/LocationDo/action.py	(revision 204)
+++ trunk/LocationDo/action.py	(revision 205)
@@ -60,5 +60,7 @@
 
 def terminalDo(command):
+    # XXX if this launches Terminal, it inherits our PYTHONPATH
     terminalApp = app(id='com.apple.Terminal')
+    # XXX this does not create a new Terminal window; fix
     terminalApp.do_script(command + '; exit')
 
