diff --git a/ChangeLog b/ChangeLog index f5321932..7e180444 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,102 +1,103 @@ terminator 0.9: - * Added support for ~/.terminatorrc - * Added kwybindings for terms size and scrollbar manipulation. Thanks - Emmanuel Bretelle. + * Added support for ~/.terminatorrc + * Added kwybindings for terms size and scrollbar manipulation. Thanks + Emmanuel Bretelle. terminator 0.8.1: - * Fixed ChangeLog - * Revert URI matching behaviour to the same as gnome-terminal + * Fixed ChangeLog + * Revert URI matching behaviour to the same as gnome-terminal + * Close LP #179315 with a fuller fix that provides proper colour support terminator 0.8: - * Make dependency on python-gnome optional. Non-gnome users can now reap - the glorious benefits of Terminator and will only lose the ability to - open email URLs (assuming their browser won't handle this for them). - Closes LP #184809 - * Remove blank translations from .desktop file to fix empty menu entries - Closes LP #187187 - * Add application icon at various sizes including a window icon - * New options parser allowing -x support. Closes LP191124 - * More translations (thanks!) + * Make dependency on python-gnome optional. Non-gnome users can now reap + the glorious benefits of Terminator and will only lose the ability to + open email URLs (assuming their browser won't handle this for them). + Closes LP #184809 + * Remove blank translations from .desktop file to fix empty menu entries. + Closes LP #187187 + * Add application icon at various sizes including a window icon + * New options parser allowing -x support. Closes LP191124 + * More translations (thanks!) terminator 0.7: - * Fullscreen support, via a patch from Thomas Meire. Closes LP #178914 - * Improved behaviour when closing terminals/window. Result of work by - Thomas Meire. Closes LP #161121 - * Freedesktop .desktop file and appropriate setup.py entry for - installing it. Closes LP #178943 - * Translation support, with Spanish, Dutch, Italian and Romanian - translations. Closes LP #161120 - * Stop clashing with gnome-terminal's paste shortcut key, move - horizontal splitting shortcut too, and add support for - gnome-terminal's copy/paste shortcuts. Closes LP #179310 - * Borderless support (tell your window manager not to decorate - Terminator) - * Font zooming support. Closes LP #178792 - * Set the VTE widget to have a tooltip of its window title. This may be - reverted if it is annoying - * Support GNOME Terminal profile settings for backgrounds. - Closes LP #180717 - * Use our own default values if there is no gnome-terminal profile. - Closes LP #179315 + * Fullscreen support, via a patch from Thomas Meire. Closes LP #178914 + * Improved behaviour when closing terminals/window. Result of work by + Thomas Meire. Closes LP #161121 + * Freedesktop .desktop file and appropriate setup.py entry for + installing it. Closes LP #178943 + * Translation support, with Spanish, Dutch, Italian and Romanian + translations. Closes LP #161120 + * Stop clashing with gnome-terminal's paste shortcut key, move + horizontal splitting shortcut too, and add support for + gnome-terminal's copy/paste shortcuts. Closes LP #179310 + * Borderless support (tell your window manager not to decorate + Terminator) + * Font zooming support. Closes LP #178792 + * Set the VTE widget to have a tooltip of its window title. This may be + reverted if it is annoying + * Support GNOME Terminal profile settings for backgrounds. + Closes LP #180717 + * Use our own default values if there is no gnome-terminal profile. + Closes LP #179315 terminator 0.6: - * Use new gnome-terminal gconf key to find available profiles - * Move a few more hardcoded items to our settings array (not that - it can be overridden yet) - * Fix handling of exiting child processes to properly track - gnome-terminal settings - * Add Ctrl-Tab and Ctrl-Shift-Tab as options for switching terminals - (patch from Kees Cook) - * Stop using parent.show_all() when removing/adding a terminal and - instead show the actual widgets that have been created. This - prevents scrollbars from re-appearing after they have been hidden + * Use new gnome-terminal gconf key to find available profiles + * Move a few more hardcoded items to our settings array (not that + it can be overridden yet) + * Fix handling of exiting child processes to properly track + gnome-terminal settings + * Add Ctrl-Tab and Ctrl-Shift-Tab as options for switching terminals + (patch from Kees Cook) + * Stop using parent.show_all() when removing/adding a terminal and + instead show the actual widgets that have been created. This + prevents scrollbars from re-appearing after they have been hidden terminator 0.5: - * The terminator window is now able to resize smaller, - thanks to Kees Cook for the fix. - * Email addresses are now matched and opened correctly. - Closes LP #139015 - * Double clicking a URL now selects the whole URL. Closes LP #129533 - * The default behaviour is now to open a single 80x24 terminal rather - than four terminals in a maximised window. Closes LP #126219 and - should force me to fix LP #87720 - * There are now hotkeys for switching between terminals, splitting - terminals and closing them. Closes LP #149931 and #148622(thanks - to Huanghe for patches for this) - * If there is only one terminal, closing it will not produce a quit - message + * The terminator window is now able to resize smaller, + thanks to Kees Cook for the fix. + * Email addresses are now matched and opened correctly. + Closes LP #139015 + * Double clicking a URL now selects the whole URL. Closes LP #129533 + * The default behaviour is now to open a single 80x24 terminal rather + than four terminals in a maximised window. Closes LP #126219 and + should force me to fix LP #87720 + * There are now hotkeys for switching between terminals, splitting + terminals and closing them. Closes LP #149931 and #148622(thanks + to Huanghe for patches for this) + * If there is only one terminal, closing it will not produce a quit + message terminator 0.4: - * Architecture should be all, not any - * Fix section - * Add AUTHORS file - * Rename script to drop the .py - * Handle the gnome-terminal profile better by offering command options - * Fudge around some resizing issues - * Fix child spawning to avoid segfaulting zsh - * Misc. code formatting/style improvements - * Refactor terminal splitting into one axis agnostic function - * Flesh out setup.py a tiny bit more + * Architecture should be all, not any + * Fix section + * Add AUTHORS file + * Rename script to drop the .py + * Handle the gnome-terminal profile better by offering command options + * Fudge around some resizing issues + * Fix child spawning to avoid segfaulting zsh + * Misc. code formatting/style improvements + * Refactor terminal splitting into one axis agnostic function + * Flesh out setup.py a tiny bit more terminator 0.3: - * Implemented terminal closing, which correctly reparents its sibling - (if any) - * Updated documentation to reflect a serious bug with shells that aren't - bash (or at least zsh) + * Implemented terminal closing, which correctly reparents its sibling + (if any) + * Updated documentation to reflect a serious bug with shells that aren't + bash (or at least zsh) terminator 0.2: - * Support dynamically splitting terminals + * Support dynamically splitting terminals terminator 0.1: - * Fixed some distribution wording - * Fix build-depends - * Initial release + * Fixed some distribution wording + * Fix build-depends + * Initial release diff --git a/po/es.po b/po/es.po index 886a31c3..844d4e64 100644 --- a/po/es.po +++ b/po/es.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-01-29 23:57+0000\n" -"PO-Revision-Date: 2008-01-15 00:09+0000\n" +"PO-Revision-Date: 2008-02-15 14:25+0000\n" "Last-Translator: Nicolas Valcárcel \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2008-02-14 23:16+0000\n" +"X-Launchpad-Export-Date: 2008-02-19 23:16+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: terminator:44 @@ -22,23 +22,30 @@ msgid "" "You need to install the python bindings for gobject, gtk, gconf and pango to " "run Terminator." msgstr "" +"Necesitas instalar los lazos python para gobject, gtk, gconf y pango para " +"ejecutar Terminator" #: terminator:63 msgid "" "You need to install python bindings for libvte (\"python-vte\" in " "debian/ubuntu)" msgstr "" +"Necesitas instalar lazos python para libvte (\"python-vte\" en debian/ubuntu)" #: terminator:127 #, python-format msgid "Warning: unable to find profile %s. Continue with default values..." msgstr "" +"Advertencia: No es posible encontrar perfil %s. Continuar con valores por " +"defecto..." #: terminator:213 msgid "" "Unknown value requested. Unable to find in gconf profile or default " "settings: " msgstr "" +"Valor desconocido requerido. No se pudo encontrar en perfil gconf o valores " +"por defecto " #: terminator:414 msgid "_Open Link" diff --git a/terminator b/terminator index 24f4f1b6..60775593 100755 --- a/terminator +++ b/terminator @@ -18,7 +18,7 @@ """Terminator by Chris Jones """ # import standard python libs -import os, sys, string, time, math +import os, platform, sys, string, time, math from optparse import OptionParser import gettext @@ -85,7 +85,7 @@ class TerminatorTerm: 'scroll_on_output' : False, 'scrollback_lines' : 100, 'focus' : 'sloppy', - 'child_restart' : False, + 'exit_action' : 'close', 'palette' : '#000000000000:#CDCD00000000:#0000CDCD0000:#CDCDCDCD0000:#30BF30BFA38E:#A53C212FA53C:#0000CDCDCDCD:#FAFAEBEBD7D7:#404040404040:#FFFF00000000:#0000FFFF0000:#FFFFFFFF0000:#00000000FFFF:#FFFF0000FFFF:#0000FFFFFFFF:#FFFFFFFFFFFF', 'word_chars' : '-A-Za-z0-9,./?%&#:_', 'mouse_autohide' : True, @@ -104,14 +104,15 @@ class TerminatorTerm: matches = {} - - def __init__ (self, terminator, profile = None, command = None): + def __init__ (self, terminator, profile = None, command = None, cwd = None): self.defaults['profile_dir'] = self.defaults['_profile_dir']%(self.defaults['gt_dir']) self.terminator = terminator self.gconf_client = gconf.client_get_default () self.command = command + self.cwd = cwd or os.getcwd(); + if profile == None: profile = self.gconf_client.get_string (self.defaults['gt_dir'] + '/global/default_profile') @@ -147,7 +148,7 @@ class TerminatorTerm: self._box.show () self._scrollbar = gtk.VScrollbar (self._vte.get_adjustment ()) - if self.scrollbar_position != "hidden": + if self.scrollbar_position != "hidden" and self.scrollbar_position != "disabled": self._scrollbar.show () if self.scrollbar_position == 'right': @@ -171,22 +172,18 @@ class TerminatorTerm: #for testing purpose: drag-motion self._vte.connect("drag-motion", self.on_drag_motion) self._vte.connect("drag-data-received", self.on_drag_data_received, self) + self._vte.connect ("composited-changed", self.on_composited_changed) + # self._vte.connect ("window-title-changed", self.on_vte_title_change) exit_action = self.gconf_client.get_string (self.profile + "/exit_action") - if not exit_action: - if self.defaults['child_restart']: - exit_action = "restart" - else: - exit_action = "close" + exit_action = self.reconf ("exit_action") if exit_action == "restart": self._vte.connect ("child-exited", self.spawn_child) - #gnome-terminal Bug: http://bugzilla.gnome.org/show_bug.cgi?id=518184 - #/apps/gnome-terminal/profiles//exit_action might be - #set to "left" instead of close - # LP#194771 + # We need to support "left" because some buggy versions of gnome-terminal + # set it in some situations if exit_action in ("close", "left"): self._vte.connect ("child-exited", lambda close_term: self.terminator.closeterm (self)) @@ -357,7 +354,21 @@ class TerminatorTerm: shell = pwd.getpwuid (os.getuid ())[6] args = [os.path.basename (shell)] - self._vte.fork_command (command = shell, argv = args, envv = [], loglastlog = login, logwtmp = update_records, logutmp = update_records) + self._pid = self._vte.fork_command (command = shell, argv = args, envv = [], directory=self.cwd, loglastlog = login, logwtmp = update_records, logutmp = update_records) + + def get_cwd (self): + """ Return the current working directory of the subprocess. + This function requires OS specific behaviours + """ + system = platform.system () + + if system == 'Linux': + cwd = os.path.realpath ('/proc/%s/cwd' % self._pid) + else: + # We don't have a child cwd getter for this platform, so let + # TerminatorTerm use its default + cwd = None + return (cwd) def reconf (self, property): value = self.gconf_client.get ('%s/%s'%(self.profile, property)) @@ -448,8 +459,13 @@ class TerminatorTerm: self._vte.set_scroll_background (self.reconf ('scroll_background')) self._vte.set_background_transparent (False) if background_type == "transparent": - self._vte.set_background_transparent (True) - self._vte.set_background_saturation (1 - (self.reconf ('background_darkness'))) + darkness = self.reconf ('background_darkness') + if self._vte.is_composited(): + self._vte.set_background_transparent (False) + self._vte.set_opacity(int(darkness * 65535)) + else: + self._vte.set_background_transparent (True) + self._vte.set_background_saturation (1 - darkness) colors = palette.split (':') palette = [] @@ -474,7 +490,7 @@ class TerminatorTerm: scrollbar_position = self.reconf ('scrollbar_position') if scrollbar_position != self.scrollbar_position: - if scrollbar_position == 'hidden': + if scrollbar_position == 'hidden' or scrollbar_position == 'disabled': self._scrollbar.hide () else: self._scrollbar.show () @@ -497,6 +513,9 @@ class TerminatorTerm: def on_gconf_notification (self, client, cnxn_id, entry, what): self.reconfigure_vte () + def on_composited_changed (self, widget): + self.reconfigure_vte () + def on_vte_button_press (self, term, event): # Left mouse button should transfer focus to this vte widget if event.button == 1: @@ -696,6 +715,13 @@ class Terminator: self.window.set_property ('allow-shrink', True) + # Set RGBA colormap if possible so VTE can use real alpha + # channels for transparency. + screen = self.window.get_screen() + colormap = screen.get_rgba_colormap() + if colormap: + self.window.set_colormap(colormap) + # Start out with just one terminal # FIXME: This should be really be decided from some kind of profile term = (TerminatorTerm (self, self.profile, self.command)) @@ -781,7 +807,7 @@ class Terminator: """ Split the provided widget on the horizontal or vertical axis. """ # create a new terminal and parent pane. - terminal = TerminatorTerm (self, self.profile, None) + terminal = TerminatorTerm (self, self.profile, None, widget.get_cwd()) pane = (vertical) and gtk.VPaned () or gtk.HPaned () # get the parent of the provided terminal