Index: gutenbach-rhythmbox-plugin/__init__.py
===================================================================
--- gutenbach-rhythmbox-plugin/__init__.py	(revision 7e6a6139fb990ccc1f9ecdbb00098a86d5853efd)
+++ gutenbach-rhythmbox-plugin/__init__.py	(revision 0159c0a25905932d89659336d73d160f46a6b9f1)
@@ -5,12 +5,13 @@
 import subprocess
 
-menu_ui = """
+# UI Change is an extra item added to right-click menu when clicking on tracks
+popup_ui = """
 <ui> 
   <popup name="BrowserSourceViewPopup"> 
-    <menuitem name="Pikamp3" action="SendToPikamp3"/>
+    <menuitem name="Gutenbach" action="SendToGutenbach"/>
   </popup>
 </ui>
 """
-class Pikamp3Plugin(rb.Plugin):
+class GutenbachPlugin(rb.Plugin):
     def __init__(self):
         rb.Plugin.__init__(self)
@@ -18,29 +19,37 @@
     def activate(self, shell):
         self.shell = shell
-        # Create action for sending a track to pikamp3
-        action = gtk.Action('SendToPikamp3', _('Send to pikamp3'),
-                _("Queue selected tracks to the pikamp3 server."),
+        # Create action for sending a track to gutenbach
+        action = gtk.Action('SendToGutenbach', _('Send to gutenbach'),
+                _("Queue selected tracks to the gutenbach server."),
                 "")
-        action.connect('activate', self.pikamp3_action, shell)
-        action_group = gtk.ActionGroup('Pikamp3ActionGroup')
+        action.connect('activate', self.gutenbach_action, shell)
+        action_group = gtk.ActionGroup('GutenbachActionGroup')
         action_group.add_action(action)
         manager = shell.get_ui_manager()
         manager.insert_action_group(action_group)
-        manager.add_ui_from_string(menu_ui)
+        manager.add_ui_from_string(popup_ui)
+
+        # Default configuration options
+        self.printer = "pikamp3"
+        self.printer_host = "lbsg.mit.edu"
 
     def deactivate(self, shell):
         del self.shell
 
-    def pikamp3_action(self, action, shell):
+    def gutenbach_action(self, action, shell):
         source = shell.get_property("selected-source")
+        # For each track currently selected in the song browser
         for entry in source.get_entry_view().get_selected_entries():
+            # Only play files that are stored on the user's computer
             uri = entry.get_playback_uri()
             p = urlparse.urlparse(urllib.unquote(uri))
             if p.scheme == "file":
                 path = p.path
-                command = 'lpr -P pikamp3@lbsg.mit.edu "%s"' % path
+                if self.printer_host:
+                    printer = '@'.join([self.printer, self.printer_host])
+                else:
+                    printer = self.printer
+                command = 'lpr -P %s "%s"' % (printer, path)
                 print command
                 subprocess.Popen(command, shell=True)
 
-
-
Index: gutenbach-rhythmbox-plugin/gutenbach-prefs.ui
===================================================================
--- gutenbach-rhythmbox-plugin/gutenbach-prefs.ui	(revision 0159c0a25905932d89659336d73d160f46a6b9f1)
+++ gutenbach-rhythmbox-plugin/gutenbach-prefs.ui	(revision 0159c0a25905932d89659336d73d160f46a6b9f1)
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkDialog" id="gutenbach-prefs">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">gutenbach Configuration</property>
+    <property name="type_hint">dialog</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkVBox" id="vbox1">
+            <property name="visible">True</property>
+            <property name="orientation">vertical</property>
+            <child>
+              <object class="GtkVBox" id="vbox2">
+                <property name="visible">True</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkLabel" id="printer_label">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Printer name:</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="printer_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="text" translatable="yes">pikamp3</property>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox3">
+                <property name="visible">True</property>
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkLabel" id="host_label">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Printer host:</property>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkEntry" id="host_entry">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="OK">
+                <property name="label" translatable="yes">OK</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">OK</action-widget>
+    </action-widgets>
+  </object>
+</interface>
Index: gutenbach-rhythmbox-plugin/gutenbach.rb-plugin
===================================================================
--- gutenbach-rhythmbox-plugin/gutenbach.rb-plugin	(revision 0159c0a25905932d89659336d73d160f46a6b9f1)
+++ gutenbach-rhythmbox-plugin/gutenbach.rb-plugin	(revision 0159c0a25905932d89659336d73d160f46a6b9f1)
@@ -0,0 +1,7 @@
+[RB Plugin]
+Loader=python
+Module=gutenbach
+IAge=1
+Name=gutenbach
+Description="Print" tunes to the gutenbach server
+Authors=Nimrod Gileadi <nimrodg@mit.edu>
Index: tenbach-rhythmbox-plugin/output
===================================================================
--- gutenbach-rhythmbox-plugin/output	(revision 7e6a6139fb990ccc1f9ecdbb00098a86d5853efd)
+++ 	(revision )
@@ -1,4 +1,0 @@
-(rhythmbox:14907): Rhythmbox-DEBUG: Received SaveYourself(SmSaveLocal, !Shutdown, SmInteractStyleNone, !Fast) in state idle
-(rhythmbox:14907): Rhythmbox-DEBUG: Setting initial properties
-(rhythmbox:14907): Rhythmbox-DEBUG: Sending SaveYourselfDone(True) for initial SaveYourself
-(rhythmbox:14907): Rhythmbox-DEBUG: Received SaveComplete message in state save-yourself-done
Index: tenbach-rhythmbox-plugin/pikamp3.rb-plugin
===================================================================
--- gutenbach-rhythmbox-plugin/pikamp3.rb-plugin	(revision 7e6a6139fb990ccc1f9ecdbb00098a86d5853efd)
+++ 	(revision )
@@ -1,7 +1,0 @@
-[RB Plugin]
-Loader=python
-Module=pikamp3
-IAge=1
-Name=pikamp3
-Description="Print" tunes to the pikamp3 server
-Authors=Nimrod Gileadi <nimrodg@mit.edu>
