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:
* Fixed ChangeLog
* Revert URI matching behaviour to the same as gnome-terminal
@ -17,49 +23,53 @@ terminator 0.8:
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
* 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)
* 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
* 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
* 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
* 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 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:
@ -76,8 +86,8 @@ terminator 0.4:
terminator 0.3:
* Implemented terminal closing, which correctly reparents its sibling (if
any)
* 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)

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

@ -38,10 +38,10 @@ Terminator window (good with \-m)
.TP
.B \-p, \-\-profile=PROFILE
Loads the GNOME Terminal profile named PROFILE
.TP
.TP
.B \-e, \-\-command=COMMAND
Runs the specified command instead of your default shell or profile specified command
.TP
.TP
.B \-x, \-\-execute=COMMAND [ARGS]
Runs \fBthe rest of the command line\fR instead of your default shell or profile specified command.
.SH "KEYBINDINGS"
@ -53,6 +53,21 @@ Split terminals H\fBo\fRrizontally.
.B Ctrl+Shift+E
Split terminals V\fBe\fRrtically.
.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
Move to \fBn\fRext terminal.
.TP
@ -64,11 +79,11 @@ Close the current terminal.
.TP
.B Ctrl+Shift+Q
Close the current window.
.TP
.TP
.B F11
Toggle fullscreen
.SH "SEE ALSO"
.BR gnome\-terminal(1),
.BR gnome\-terminal(1),terminatorrc(5)
.SH "AUTHOR"
Terminator was written by Chris Jones <cmsj@tenshu.net>
.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 ("button-press-event", self.on_vte_button_press)
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)
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_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 = []
@ -340,6 +346,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:
@ -404,6 +413,12 @@ class TerminatorTerm:
elif keyname == 'V':
self._vte.paste_clipboard ()
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 event.state == gtk.gdk.CONTROL_MASK:
@ -477,7 +492,7 @@ class TerminatorTerm:
item = gtk.MenuItem ()
menu.append (item)
item = gtk.CheckMenuItem (_("Show scrollbar"))
item = gtk.CheckMenuItem (_("Show _scrollbar"))
item.set_active (self._scrollbar.get_property ('visible'))
item.connect ("toggled", lambda menu_item: self.do_scrollbar_toggle ())
menu.append (item)
@ -534,6 +549,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))
@ -728,7 +750,60 @@ class Terminator:
#self.window.set_title(self.term_list[previous]._vte.get_window_title())
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):
assert value is None
value = []