diff --git a/an.py b/an.py
index 92e3a59eb94b514ee180a5fabce1959e723feaee..9b17d71498929c663a371f647128a24340dcae0e 100755
--- a/an.py
+++ b/an.py
@@ -16,7 +16,7 @@ import sys
 
 engineer = "Peterson"
 # period should match cron job period
-period = 600
+period = 60
 
 # needed for notifyOSX()
 osx_command = "/Users/kpetersn/Applications/terminal-notifier.app/Contents/MacOS/terminal-notifier"
@@ -39,13 +39,31 @@ def notifyOSX(ioc, state, time_str):
   notify_command = "%s -title \"%s is %s\" -message \"%s\" -open \"%s\"" % (osx_command, ioc, state, time_str, eng_url)
   os.system(notify_command)
 
+def notifyGnome3(ioc, state, time_str):
+  subject = "%s is %s" % (ioc, state)
+  message = "Snapshot time: %s" % time_str
+  url = "%s%s" % (ioc_url, ioc)
+  # Priority 0 and 1 disappear on their own and end up in the history until it is clicked
+  # Priority 2 never disappears on its own and never ends up in the history because it requires interaction to dismiss
+  priority = 1
+  
+  # Not sure if this is a good idea
+  #!if state == "DOWN":
+  #!  priority = 2
+    
+  notify_command = "./gnome3-notify.py \'%s\' \'%s\' %i \'%s\'" % (subject, message, priority, url)
+  #!print notify_command
+
+  os.system(notify_command)
+
 def notifyCombo(ioc, state, time_str):
-  notifyOSX(ioc, state, time_str)
+  notifyGnome3(ioc, state, time_str)
   notifyEmail(ioc, state, time_str)
 
 # set notification function
 #!notify = notifyConsole
 notify = notifyEmail
+#!notify = notifyGnome3
 #!notify = notifyOSX
 #!notify = notifyCombo
 
diff --git a/gnome3-notify.py b/gnome3-notify.py
new file mode 100755
index 0000000000000000000000000000000000000000..6d862fd1f47eee248964175209c570eadf340ccc
--- /dev/null
+++ b/gnome3-notify.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+
+import sys
+import os
+import gi
+gi.require_version('Notify', '0.7')
+from gi.repository import Notify
+#!from gi.repository import GLib
+
+# This function is unused because I can't get the callbacks to work
+def xdg_open(arg):
+    global loop
+    # open file or url
+    if arg != None:
+	  command = "xdg-open \'%s\'" % arg
+	  #!command = "touch %s" % arg
+	  os.system(command)
+	  loop.quit()
+
+def main(args):
+    global xdg_open
+    numArgs = len(args)
+    summary = args[0]
+    body = args[1]
+    if numArgs >= 3:
+        priority = int(args[2])
+    else:
+        priority = 0
+    if numArgs >= 4:
+        url = args[3]
+        # If hyperlinks were supported we could append the URL To the body
+        #!body = body + "\n<a href=" + url + ">" + url + "</a>"
+    else:
+        url = None
+
+    #!print "url =", url
+
+    # The app name doesn't appear in the notifications
+    Notify.init("gnome3-notify.py")
+	
+    # Create the notification (icon depends on priority - 0 & 1 = info, 2 = error)
+    notification = Notify.Notification.new(summary, body)
+    # An icon can be chosen indepenently of the priority, which is probably a bad idea
+    #!notification = Notify.Notification.new(summary, body, "dialog-information")
+    #!notification = Notify.Notification.new(summary, body, "dialog-warning")
+    #!notification = Notify.Notification.new(summary, body, "dialog-error")
+    
+    # This should work but it doesn't
+    #!num = notification.add_action("action_click", "More Info", xdg_open, url)
+    
+    # urgency 0 or 1 = popup disappers quickly; urgency = 2 makes the popup persist
+    # Note: the number 1, 2, or 3 can be passed to set_urgency() directly, but an int can't
+    notification.set_urgency(Notify.Urgency(priority))
+
+	# Make the notification appear
+    notification.show()
+
+
+	
+if __name__ == '__main__':
+  #!print sys.argv
+  if len(sys.argv) < 3:
+    print "Usage: gnome3-notify.py <summary> <body> [priority] [url]"
+    #!print sys.argv
+  else:
+    #!global loop
+
+    main(sys.argv[1:])
+    
+    #!loop = GLib.MainLoop()
+    #!loop.run()
+
+    Notify.uninit()