diff -Naur a/ChangeLog b/ChangeLog --- a/ChangeLog 2015-09-08 17:27:00.000000000 +0200 +++ b/ChangeLog 2015-10-10 11:55:37.000000000 +0200 @@ -1,3 +1,11 @@ +terminator trunk: + * Features + * Enhancements + * Bug fixes + * Fix for those not running IBus, where the IBus workaround caused + broken keys in other keymaps set with non-IBus tools (Steve + Boddy, LP#1494606) + terminator 0.98: * Features * Layout launcher with option or shortcut (Steve Boddy) diff -Naur a/debian/changelog b/debian/changelog --- a/debian/changelog 2015-09-08 17:27:00.000000000 +0200 +++ b/debian/changelog 2015-10-10 11:55:37.000000000 +0200 @@ -1,3 +1,9 @@ +terminator (0.98) trusty; urgency=low + + * New upstream release of 0.98 + + -- Stephen Boddy Wed, 26 Aug 2015 20:28:10 +0200 + terminator (0.97~ppa3) saucy; urgency=low * No-change upload for saucy diff -Naur a/debian/control b/debian/control --- a/debian/control 2015-09-08 17:27:00.000000000 +0200 +++ b/debian/control 2015-10-10 11:55:37.000000000 +0200 @@ -14,7 +14,7 @@ Package: terminator Architecture: all -Depends: ${python:Depends}, ${misc:Depends}, python-vte, python-gobject, python-gtk2 (>= 2.14.0), gconf2, libgtk2.0-bin, hicolor-icon-theme +Depends: ${python:Depends}, ${misc:Depends}, python-vte, python-gobject, python-gtk2 (>= 2.14.0), python-psutil, gconf2, libgtk2.0-bin, hicolor-icon-theme XB-Python-Version: ${python:Versions} Provides: x-terminal-emulator Recommends: xdg-utils, python-gnome2, python-keybinder diff -Naur a/remotinator b/remotinator --- a/remotinator 2015-09-08 17:27:00.000000000 +0200 +++ b/remotinator 2015-10-10 11:55:37.000000000 +0200 @@ -29,7 +29,7 @@ sys.exit(1) APP_NAME='remotinator' -APP_VERSION='0.97' +APP_VERSION='0.98' COMMANDS={ 'hsplit': ['terminal_hsplit', 'Split the current terminal horizontally'], diff -Naur a/terminator b/terminator --- a/terminator 2015-09-08 17:27:00.000000000 +0200 +++ b/terminator 2015-10-10 11:55:37.000000000 +0200 @@ -20,6 +20,8 @@ import sys import os +import psutil +import pwd try: ORIGCWD = os.getcwd() except OSError: @@ -57,7 +59,11 @@ # Workaround for IBus intefering with broadcast when using dead keys # Environment also needs IBUS_DISABLE_SNOOPER=1, or double chars appear # in the receivers. - os.environ['IBUS_DISABLE_SNOOPER']='1' + username = pwd.getpwuid(os.getuid()).pw_name + ibus_running = [p for p in psutil.process_iter() if p.name == 'ibus-daemon' and p.username == username] + ibus_running = len(ibus_running) > 0 + if ibus_running: + os.environ['IBUS_DISABLE_SNOOPER']='1' dbus_service = None @@ -69,7 +75,6 @@ # launch gui, return selection LAYOUTLAUNCHER=LayoutLauncher() else: - # Attempt to import our dbus server. If one exists already we will just # connect to that and ask for a new window. If not, we will create one and # continue. Failure to import dbus, or the global config option "dbus" @@ -112,6 +117,7 @@ TERMINATOR.set_origcwd(ORIGCWD) TERMINATOR.set_dbus_data(dbus_service) TERMINATOR.reconfigure() + TERMINATOR.ibus_running = ibus_running try: dbg('Creating a terminal with layout: %s' % OPTIONS.layout) diff -Naur a/terminatorlib/terminal.py b/terminatorlib/terminal.py --- a/terminatorlib/terminal.py 2015-09-08 17:27:00.000000000 +0200 +++ b/terminatorlib/terminal.py 2015-10-10 11:55:37.000000000 +0200 @@ -844,13 +844,14 @@ dbg('Terminal::on_keypress: Called on %s with no event' % widget) return(False) - # Workaround for IBus intefering with broadcast when using dead keys + # Workaround for IBus interfering with broadcast when using dead keys # Environment also needs IBUS_DISABLE_SNOOPER=1, or double chars appear # in the receivers. - if (event.state | gtk.gdk.MODIFIER_MASK ) ^ gtk.gdk.MODIFIER_MASK != 0: - dbg('Terminal::on_keypress: Ingore processed event with event.state %d' % event.state) - return(False) - + if self.terminator.ibus_running: + if (event.state | gtk.gdk.MODIFIER_MASK ) ^ gtk.gdk.MODIFIER_MASK != 0: + dbg('Terminal::on_keypress: Ignore processed event with event.state %d' % event.state) + return(False) + # FIXME: Does keybindings really want to live in Terminator()? mapping = self.terminator.keybindings.lookup(event) diff -Naur a/terminatorlib/terminator.py b/terminatorlib/terminator.py --- a/terminatorlib/terminator.py 2015-09-08 17:27:00.000000000 +0200 +++ b/terminatorlib/terminator.py 2015-10-10 11:55:37.000000000 +0200 @@ -32,6 +32,7 @@ pid_cwd = None gnome_client = None debug_address = None + ibus_running = None doing_layout = None layoutname = None