My tree has diverged a little while pulling in these changes. also some text editors are being unhelpful here with tabs. This should be two spaces for new items and 4 for continuations.I keep getting caught out by vim auto-indenting tabs for some reason.

This commit is contained in:
Chris Jones 2008-02-24 22:10:39 +00:00
commit 8c63403f1c
5 changed files with 223 additions and 39 deletions

View File

@ -1,3 +1,9 @@
terminator 0.9:
* Added support for ~/.terminatorrc
* Added kwybindings for terms size and scrollbar manipulation. Thanks
Emmanuel Bretelle.
terminator 0.8.1: terminator 0.8.1:
* Fixed ChangeLog * Fixed ChangeLog
* Revert URI matching behaviour to the same as gnome-terminal * Revert URI matching behaviour to the same as gnome-terminal
@ -17,49 +23,53 @@ terminator 0.8:
terminator 0.7: terminator 0.7:
* Fullscreen support, via a patch from Thomas Meire. Closes LP #178914 * Fullscreen support, via a patch from Thomas Meire. Closes LP #178914
* Improved behaviour when closing terminals/window. Result of work by Thomas * Improved behaviour when closing terminals/window. Result of work by
Meire. Closes LP #161121 Thomas Meire. Closes LP #161121
* Freedesktop .desktop file and appropriate setup.py entry for installing * Freedesktop .desktop file and appropriate setup.py entry for
it. Closes LP #178943 installing it. Closes LP #178943
* Translation support, with Spanish, Dutch, Italian and Romanian * Translation support, with Spanish, Dutch, Italian and Romanian
translations. Closes LP #161120 translations. Closes LP #161120
* Stop clashing with gnome-terminal's paste shortcut key, move horizontal * Stop clashing with gnome-terminal's paste shortcut key, move
splitting shortcut too, and add support for gnome-terminal's copy/paste horizontal splitting shortcut too, and add support for
shortcuts. Closes LP #179310 gnome-terminal's copy/paste shortcuts. Closes LP #179310
* Borderless support (tell your window manager not to decorate Terminator) * Borderless support (tell your window manager not to decorate
Terminator)
* Font zooming support. Closes LP #178792 * Font zooming support. Closes LP #178792
* Set the VTE widget to have a tooltip of its window title. This may be * Set the VTE widget to have a tooltip of its window title. This may be
reverted if it is annoying reverted if it is annoying
* Support GNOME Terminal profile settings for backgrounds. Closes LP #180717 * Support GNOME Terminal profile settings for backgrounds.
* Use our own default values if there is no gnome-terminal profile. Closes Closes LP #180717
LP #179315 * Use our own default values if there is no gnome-terminal profile.
Closes LP #179315
terminator 0.6: terminator 0.6:
* Use new gnome-terminal gconf key to find available profiles * 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 * Move a few more hardcoded items to our settings array (not that
overridden yet) it can be overridden yet)
* Fix handling of exiting child processes to properly track gnome-terminal * Fix handling of exiting child processes to properly track
settings gnome-terminal settings
* Add Ctrl-Tab and Ctrl-Shift-Tab as options for switching terminals (patch * Add Ctrl-Tab and Ctrl-Shift-Tab as options for switching terminals
from Kees Cook) (patch from Kees Cook)
* Stop using parent.show_all() when removing/adding a terminal and instead * Stop using parent.show_all() when removing/adding a terminal and
show the actual widgets that have been created. This prevents scrollbars instead show the actual widgets that have been created. This
from re-appearing after they have been hidden prevents scrollbars from re-appearing after they have been hidden
terminator 0.5: terminator 0.5:
* The terminator window is now able to resize smaller, thanks to Kees Cook * The terminator window is now able to resize smaller,
for the fix. thanks to Kees Cook for the fix.
* Email addresses are now matched and opened correctly. Closes LP #139015 * Email addresses are now matched and opened correctly.
Closes LP #139015
* Double clicking a URL now selects the whole URL. Closes LP #129533 * 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 * The default behaviour is now to open a single 80x24 terminal rather
four terminals in a maximised window. Closes LP #126219 and should force than four terminals in a maximised window. Closes LP #126219 and
me to fix LP #87720 should force me to fix LP #87720
* There are now hotkeys for switching between terminals, splitting terminals * There are now hotkeys for switching between terminals, splitting
and closing them. Closes LP #149931 and #148622(thanks to Huanghe for terminals and closing them. Closes LP #149931 and #148622(thanks
patches for this) to Huanghe for patches for this)
* If there is only one terminal, closing it will not produce a quit message * If there is only one terminal, closing it will not produce a quit
message
terminator 0.4: terminator 0.4:
@ -76,8 +86,8 @@ terminator 0.4:
terminator 0.3: terminator 0.3:
* Implemented terminal closing, which correctly reparents its sibling (if * Implemented terminal closing, which correctly reparents its sibling
any) (if any)
* Updated documentation to reflect a serious bug with shells that aren't * Updated documentation to reflect a serious bug with shells that aren't
bash (or at least zsh) bash (or at least zsh)

2
TODO Normal file
View File

@ -0,0 +1,2 @@
* Edit doc/terminatorrc.5 manpage to contain the information about the options
* Write a Tab feature for terminator

View File

@ -53,6 +53,21 @@ Split terminals H\fBo\fRrizontally.
.B Ctrl+Shift+E .B Ctrl+Shift+E
Split terminals V\fBe\fRrtically. Split terminals V\fBe\fRrtically.
.TP .TP
.B Ctrl+Shift+Right
Move first parent HPaned handle \fBRight\fR.
.TP
.B Ctrl+Shift+Left
Move first parent HPaned handle \fBLeft\fR.
.TP
.B Ctrl+Shift+Up
Move first VPaned handle \fBUp\fR.
.TP
.B Ctrl+Shift+Down
Move first VPaned handle \fBDown\fR.
.TP
.B Ctrl+Shift+S
Hide/Show \fBS\fRcrollbar.
.TP
.B Ctrl+Shift+N .B Ctrl+Shift+N
Move to \fBn\fRext terminal. Move to \fBn\fRext terminal.
.TP .TP
@ -68,7 +83,7 @@ Close the current window.
.B F11 .B F11
Toggle fullscreen Toggle fullscreen
.SH "SEE ALSO" .SH "SEE ALSO"
.BR gnome\-terminal(1), .BR gnome\-terminal(1),terminatorrc(5)
.SH "AUTHOR" .SH "AUTHOR"
Terminator was written by Chris Jones <cmsj@tenshu.net> Terminator was written by Chris Jones <cmsj@tenshu.net>
.PP .PP

82
doc/terminatorrc.5 Normal file
View File

@ -0,0 +1,82 @@
.TH "TERMINATORRC" "5" "Feb 22, 2008" "Nicolas Valcarcel <nvalcarcel@ubuntu.com>" ""
.SH "NAME"
~/.terminatorrc \- the config file for terminator terminal emulator.
.SH "DESCRIPTION"
This manual page documents briefly the
.B termiatorrc config file.
.PP
\fBterminatorrc\fP is an optional file for configure the terminator termial emulator. It is used if there is no gconf PROFILE on the system for configuring the options of the terminal(s).
.SH "OPTIONS"
The options are defined one per line as \fB'OPTION = VALUE'\fR. The options are described below:
.TP
.B gt_dir
Default value: \fB/apps/gnome\-terminal\fR
.TP
.B _profile_dir
Default value: \fB%s/profiles\fR
.TP
.B allow_bold
Boolean value. Default value: \fBTrue\fR
.TP
.B silent_bell
Boolean value. Default value: \fBTrue\fR
.TP
.B background_color
Heximal RGB value for the background color. Default value: \fB#000000\fR
.TP
.B background_darkness
Number for the background darkness. Default value: \fB0.5\fR
.TP
.B background_type
Default value: \fBsolid\fR
.TP
.B backspace_binding
Default value: \fBascii\-del\fR
.TP
.B delete_binding
Default value: \fBdelete\-sequence\fR
.TP
.B cursor_blink
Boolean value. Default value: \fBFalse\fR
.TP
.B emulation
Default value: \fBxterm\fR
.TP
.B font
Value for the font time and size in the format \fBFONTNAME SIZENUMBER\fR. Default value: \fBSerif 10\fR
.TP
.B foreground_color
Hexadecimal RGB value for the font color. Default value: \fB#AAAAAA\fR
.TP
.B scrollbar_position
Scrollbar position. Options available: right, left and hidden. Default value: \fBright\fR
.TP
.B scroll_background
Boolean value. Default value: \fBTrue\fR
.TP
.B scroll_on_keystroke
Boolean value. Default value: \fBFalse\fR
.TP
.B scroll_on_output
Boolean value. Default value: \fBFalse\fR
.TP
.B scrollback_lines
Number of lines stored for the scrollbar. Default value: \fB100\fR
.TP
.B focus
Default value: \fBsloppy\fR
.TP
.B child_restart
Default value: \fBFalse\fR
.TP
.B palette
Default value: \fB#000000000000:#CDCD00000000:#0000CDCD0000:#CDCDCDCD0000:#30BF30BFA38E:#A53C212FA53C:#0000CDCDCDCD:#FAFAEBEBD7D7:#404040404040:#FFFF00000000:#0000FFFF0000:#FFFFFFFF0000:#00000000FFFF:#FFFF0000FFFF:#0000FFFFFFFF:#FFFFFFFFFFFF\fR
.TP
.B word_chars
Default value: \fB\-A\-Za\-z0\-9,./?%&#:_\fR
.TP
.B mouse_autohide
Boolean value. Default value: \fBTrue\fR
.SH "SEE ALSO"
.BR gnome\-terminal(1),

View File

@ -161,6 +161,7 @@ class TerminatorTerm:
self._vte.connect ("key-press-event", self.on_vte_key_press) self._vte.connect ("key-press-event", self.on_vte_key_press)
self._vte.connect ("button-press-event", self.on_vte_button_press) self._vte.connect ("button-press-event", self.on_vte_button_press)
self._vte.connect ("popup-menu", self.on_vte_popup_menu) self._vte.connect ("popup-menu", self.on_vte_popup_menu)
self._vte.connect ("composited-changed", self.on_composited_changed)
# self._vte.connect ("window-title-changed", self.on_vte_title_change) # self._vte.connect ("window-title-changed", self.on_vte_title_change)
exit_action = self.gconf_client.get_string (self.profile + "/exit_action") exit_action = self.gconf_client.get_string (self.profile + "/exit_action")
@ -291,8 +292,13 @@ class TerminatorTerm:
self._vte.set_scroll_background (self.reconf ('scroll_background')) self._vte.set_scroll_background (self.reconf ('scroll_background'))
self._vte.set_background_transparent (False) self._vte.set_background_transparent (False)
if background_type == "transparent": if background_type == "transparent":
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_transparent (True)
self._vte.set_background_saturation (1 - (self.reconf ('background_darkness'))) self._vte.set_background_saturation (1 - darkness)
colors = palette.split (':') colors = palette.split (':')
palette = [] palette = []
@ -340,6 +346,9 @@ class TerminatorTerm:
def on_gconf_notification (self, client, cnxn_id, entry, what): def on_gconf_notification (self, client, cnxn_id, entry, what):
self.reconfigure_vte () self.reconfigure_vte ()
def on_composited_changed (self, widget):
self.reconfigure_vte ()
def on_vte_button_press (self, term, event): def on_vte_button_press (self, term, event):
# Left mouse button should transfer focus to this vte widget # Left mouse button should transfer focus to this vte widget
if event.button == 1: if event.button == 1:
@ -404,6 +413,12 @@ class TerminatorTerm:
elif keyname == 'V': elif keyname == 'V':
self._vte.paste_clipboard () self._vte.paste_clipboard ()
return (True) return (True)
elif keyname == 'S':
self.do_scrollbar_toggle ()
return (True)
elif keyname in ('Up', 'Down', 'Left', 'Right'):
self.terminator.resizeterm (self, keyname)
return (True)
if keyname and (keyname == 'Tab' or keyname.endswith('_Tab')): if keyname and (keyname == 'Tab' or keyname.endswith('_Tab')):
if event.state == gtk.gdk.CONTROL_MASK: if event.state == gtk.gdk.CONTROL_MASK:
@ -477,7 +492,7 @@ class TerminatorTerm:
item = gtk.MenuItem () item = gtk.MenuItem ()
menu.append (item) menu.append (item)
item = gtk.CheckMenuItem (_("Show scrollbar")) item = gtk.CheckMenuItem (_("Show _scrollbar"))
item.set_active (self._scrollbar.get_property ('visible')) item.set_active (self._scrollbar.get_property ('visible'))
item.connect ("toggled", lambda menu_item: self.do_scrollbar_toggle ()) item.connect ("toggled", lambda menu_item: self.do_scrollbar_toggle ())
menu.append (item) menu.append (item)
@ -534,6 +549,13 @@ class Terminator:
self.window.set_property ('allow-shrink', True) 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 # Start out with just one terminal
# FIXME: This should be really be decided from some kind of profile # FIXME: This should be really be decided from some kind of profile
term = (TerminatorTerm (self, self.profile, self.command)) term = (TerminatorTerm (self, self.profile, self.command))
@ -729,6 +751,59 @@ class Terminator:
#self.window.set_title(self.term_list[previous]._vte.get_window_title()) #self.window.set_title(self.term_list[previous]._vte.get_window_title())
self.term_list[previous]._vte.grab_focus () self.term_list[previous]._vte.grab_focus ()
def resizeterm (self, widget, keyname):
vertical = False
if keyname in ('Up', 'Down'):
vertical = True
elif keyname in ('Left', 'Right'):
vertical = False
else:
return
parent = self.get_first_parent_paned(widget.get_box (),vertical)
if parent == None:
return
#We have a corresponding parent pane
#
#allocation = parent.get_allocation()
if keyname in ('Up', 'Down'):
maxi = parent.get_child1().get_allocation().height + parent.get_child2().get_allocation().height - 1
else:
maxi = parent.get_child1().get_allocation().width + parent.get_child2().get_allocation().width - 1
move = 10
if keyname in ('Up', 'Left'):
move = -10
move = max(2, parent.get_position() + move)
move = min(maxi, move)
parent.set_position(move)
def get_first_parent_paned (self, widget, vertical = None):
"""This method returns the first parent pane of a widget.
if vertical is True returns the first VPaned
if vertical is False return the first Hpaned
if is None return the First Paned"""
if isinstance (widget, gtk.Window):
return None
parent = widget.get_parent()
if isinstance (parent, gtk.Paned) and vertical is None:
return parent
if isinstance (parent, gtk.VPaned) and vertical:
return parent
elif isinstance (parent, gtk.HPaned) and not vertical:
return parent
return self.get_first_parent_paned(parent, vertical)
def execute_cb (option, opt, value, parser): def execute_cb (option, opt, value, parser):
assert value is None assert value is None
value = [] value = []