diff --git a/doc/terminator.1 b/doc/terminator.1 index f028933e..cf0bdb78 100644 --- a/doc/terminator.1 +++ b/doc/terminator.1 @@ -224,6 +224,12 @@ Restore font size to original setting. .B Alt+T Rename titlebar. .TP +.B Alt+F2 +Rename terminal title. +.TP +.B Alt+Shift+F2 +Rename tab title. +.TP .B Super+1 Insert terminal number, i.e. 1 to 12. .TP diff --git a/doc/terminator_config.5 b/doc/terminator_config.5 index f76fc793..cc80ae62 100644 --- a/doc/terminator_config.5 +++ b/doc/terminator_config.5 @@ -286,6 +286,14 @@ Note that 1 may need to be provided as ! or similar, depending on your keyboard layout. Default value: \fBUnbound\fR .TP +.B edit_tab_title +Edit the currently active tab's title +Default value: \fBF2\fR +.TP +.B edit_terminal_title +Edit the currently active terminal's title +Default value: \fBF2\fR +.TP .B full_screen Toggle the window to a fullscreen window. Default value: \fBF11\fR diff --git a/terminatorlib/config.py b/terminatorlib/config.py index 5323d834..b0654b9c 100755 --- a/terminatorlib/config.py +++ b/terminatorlib/config.py @@ -191,6 +191,8 @@ DEFAULTS = { 'insert_number' : '1', 'insert_padded' : '0', 'edit_window_title': 't', + 'edit_tab_title' : 'F2', + 'edit_terminal_title': 'F2', 'layout_launcher' : 'l', 'next_profile' : '', 'previous_profile' : '', diff --git a/terminatorlib/editablelabel.py b/terminatorlib/editablelabel.py index b5bd17ea..a76dbfc2 100644 --- a/terminatorlib/editablelabel.py +++ b/terminatorlib/editablelabel.py @@ -26,7 +26,8 @@ class EditableLabel(gtk.EventBox): # pylint: disable-msg=R0904 """ An eventbox that partialy emulate a gtk.Label - On double-click, the label is editable, entering an empty will revert back to automatic text + On double-click or key binding the label is editable, entering an empty + will revert back to automatic text """ _label = None _ebox = None @@ -69,30 +70,34 @@ class EditableLabel(gtk.EventBox): """get the text from the label""" return(self._label.get_text()) + def edit(self): + """ Start editing the widget text """ + self.remove(self._label) + self._entry = gtk.Entry() + self._entry.set_text(self._label.get_text()) + self._entry.show() + self.add(self._entry) + sig = self._entry.connect("focus-out-event", self._entry_to_label) + self._entry_handler_id.append(sig) + sig = self._entry.connect("activate", self._on_entry_activated) + self._entry_handler_id.append(sig) + sig = self._entry.connect("key-press-event", + self._on_entry_keypress) + self._entry_handler_id.append(sig) + sig = self._entry.connect("button-press-event", + self._on_entry_buttonpress) + self._entry_handler_id.append(sig) + self._entry.grab_focus() + def _on_click_text(self, widget, event): # pylint: disable-msg=W0613 """event handling text edition""" if event.button != 1: return False if event.type == gtk.gdk._2BUTTON_PRESS: - self.remove (self._label) - self._entry = gtk.Entry () - self._entry.set_text (self._label.get_text ()) - self._entry.show () - self.add (self._entry) - sig = self._entry.connect ("focus-out-event", self._entry_to_label) - self._entry_handler_id.append(sig) - sig = self._entry.connect ("activate", self._on_entry_activated) - self._entry_handler_id.append(sig) - sig = self._entry.connect ("key-press-event", - self._on_entry_keypress) - self._entry_handler_id.append(sig) - sig = self._entry.connect("button-press-event", - self._on_entry_buttonpress) - self._entry_handler_id.append(sig) - self._entry.grab_focus () - return(True) - return(False) + self.edit() + return True + return False def _entry_to_label (self, widget, event): # pylint: disable-msg=W0613 diff --git a/terminatorlib/notebook.py b/terminatorlib/notebook.py index c5228a8e..628696e3 100755 --- a/terminatorlib/notebook.py +++ b/terminatorlib/notebook.py @@ -536,6 +536,9 @@ class TabLabel(gtk.HBox): else: return(None) + def edit(self): + self.label.edit() + def update_button(self): """Update the state of our close button""" if not self.config['close_button_on_tab']: diff --git a/terminatorlib/prefseditor.py b/terminatorlib/prefseditor.py index 6eed6032..3f791e72 100755 --- a/terminatorlib/prefseditor.py +++ b/terminatorlib/prefseditor.py @@ -148,6 +148,8 @@ class PrefsEditor: 'insert_number' : _('Insert terminal number'), 'insert_padded' : _('Insert padded terminal number'), 'edit_window_title': _('Edit window title'), + 'edit_terminal_title': _('Edit terminal title'), + 'edit_tab_title' : _('Edit tab title'), 'layout_launcher' : _('Open layout launcher window'), 'next_profile' : _('Switch to next profile'), 'previous_profile' : _('Switch to previous profile'), diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index 20704855..2d2a9cf0 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -1836,6 +1836,20 @@ class Terminal(gtk.VBox): dialog.destroy() return + def key_edit_tab_title(self): + window = self.get_toplevel() + if not window.is_child_notebook(): + return + + notebook = window.get_children()[0] + n_page = notebook.get_current_page() + page = notebook.get_nth_page(n_page) + label = notebook.get_tab_label(page) + label.edit() + + def key_edit_terminal_title(self): + self.titlebar.label.edit() + def key_layout_launcher(self): LAYOUTLAUNCHER=LayoutLauncher()