diff --git a/.gitignore b/.gitignore index 55f5f5a..258d939 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ vim/.netrwhist vim/bundle/* !vim/bundle/Vundle.vim +*.pyc diff --git a/config/terminator/config b/config/terminator/config index b5fa93c..ccbc263 100644 --- a/config/terminator/config +++ b/config/terminator/config @@ -1,4 +1,5 @@ [global_config] + enabled_plugins = LaunchpadCodeURLHandler, SearchGoogle, APTURLHandler, GrepEditor, LaunchpadBugURLHandler title_hide_sizetext = True window_state = maximise [keybindings] @@ -117,6 +118,10 @@ type = Terminal uuid = 8eec6a48-cbfb-449c-b49e-704da6e5996d [plugins] + [[GrepEditor]] + command = vim +{line} {filepath} + groups = file line + match = ([^ \t\n\r\f\v:]+?):([0-9]+) [profiles] [[default]] background_color = "#060505" diff --git a/config/terminator/plugins/search-google.py b/config/terminator/plugins/search-google.py new file mode 100644 index 0000000..218215a --- /dev/null +++ b/config/terminator/plugins/search-google.py @@ -0,0 +1,55 @@ +import gtk +import urllib +import terminatorlib.plugin as plugin +import re + +# Written by John Cooper http://choffee.co.uk +# Copyright 2010 John Cooper +# See copyright file that comes with this file for full licence + +# Modified by cgw 2011/11/06 + +# AVAILABLE must contain a list of all the classes that you want exposed +AVAILABLE = ['SearchGoogle'] + +_spaces = re.compile(" +") + +# TODO: move some of the constants into a config object + +class SearchGoogle(plugin.Plugin): + capabilities = ['terminal_menu'] + + def do_search(self, searchMenu): + """Launch Google search for string""" + if not self.searchstring: + return + base_uri = "http://www.google.com/search?q=%s" + uri = base_uri % urllib.quote(self.searchstring.encode("utf-8")) + gtk.show_uri(None, uri, gtk.gdk.CURRENT_TIME) + + def callback(self, menuitems, menu, terminal): + """Add our menu item to the menu""" + self.terminal = terminal + item = gtk.ImageMenuItem(gtk.STOCK_FIND) + item.connect('activate', self.do_search) + if terminal.vte.get_has_selection(): + clip = gtk.clipboard_get(gtk.gdk.SELECTION_PRIMARY) + self.searchstring = clip.wait_for_text().strip() + self.searchstring = self.searchstring.replace("\n", " ") + self.searchstring = self.searchstring.replace("\t", " ") + self.searchstring = _spaces.sub(" ", self.searchstring) + else: + self.searchstring = None + if self.searchstring: + if len(self.searchstring) > 40: + displaystring = self.searchstring[:37] + "..." + else: + displaystring = self.searchstring + item.set_label("Search Google for \"%s\"" % displaystring) + item.set_sensitive(True) + else: + item.set_label("Search Google") + item.set_sensitive(False) + # Avoid turning any underscores in selection into menu accelerators + item.set_use_underline(False) + menuitems.append(item)