Debian/Ubuntu Tips and Tricks

Debuntu

Debian/Ubuntu Tips and Tricks

Terminator is getting a plugin system

Posted by chantra on June 16th, 2010

I already spoke about Terminator a while back. Since then,, quite some time has passed and lots of features were added...

In the last 7+ months, cmsj as worked a lot on getting the whole architecture re-implemented in a more object-like architecture which makes the different component of Terminator interact together more naturally.

Those changes have been pushed to trunk since release 0.90. The current release of Ubuntu (Lucid) is now shipping 0.93 which is well stable to be honest.

Built-in plugins

Anyhow, except for the internal stuff and changes that you can get from the ChangeLog, I would like to highlight the plugin system which is now party of the future 1.X release.

So far, there is 2 places where plugins can hook:

  • URL handler
  • Terminal Menu

As of today's trunk, terminator comes with a few built-in plugins which are located in terminatorlib/plugins/:

  • activitywatch.py : watch activity on a terminal
  • custom_commands.py : allow to add custom commands to the terminal menu
  • terminalshot.py : does a screenshot of the current terminal
  • url_handlers.py : changes known patterns into clickable URL, like launchpad bug/code/projects.. URLs

By default, the custom command plugin is disabled, to enable it change your ~/.config/terminator/config to reflect something like:

[global_config]
  disabled_plugins = TestPlugin

Making your own plugin

What does a plugin allow usually? Well, being able to bring your features to terminator without changing the core code.

Chris has made a tutorial on how-to write plugins for Terminator.

If you feel like doing a bit of python hacking, dive in and come with great plugin ideas then come and jump on IRC at irc.freenode.net, channel #terminator and share your code :)

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>