Manual updates:

Add the new PuTTY paste mode
  Add new Remotinator commands
  FAQ for other Terminator
  Add Bug handling flow
  Minor changes/corrections
This commit is contained in:
Stephen Boddy 2015-10-01 03:29:44 +02:00
parent 29a864aa1b
commit 4f0c4330d2
25 changed files with 848 additions and 266 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -210,6 +210,10 @@ Here you will see the port number, and you can simply use::
This should turn off the output, and let you explore the
internal structure more easily.
.. warning:: Using the ``-dd`` option will make the :ref:`dbus`
interface problematic. Any attempt to use :ref:`remotinator`
will hang the main application.
The debug options and their usage are detailed
:ref:`here <command-line-options-debugging>`.
@ -258,20 +262,49 @@ Remotinator is a minimal wrapper around making DBus calls, and is
typically run from *within* a Terminator terminal. This is not
strictly necessary, but if not you will have to do some extra work
to determine the valid UUID of a current terminal and pass it as the
``TERMINATOR_UUID`` environment variable. Remotinator is called with::
``TERMINATOR_UUID`` environment variable, or as the value to the
``-u``\ /\ ``--uuid`` option. Remotinator is called within Terminator
with::
$ remotinator <command>
or with one of the following::
$ remotinator --uuid <UUID> <command>
$ TERMINATOR_UUID=<UUID> remotinator <command>
$ export TERMINATOR_UUID=<UUID>; remotinator <command>
to force the UUID, or call it from outside Terminator.
The following commands are currently enabled:
- **hsplit** - Split the current terminal horizontally
- **vsplit** - Split the current terminal vertically
- **terminals** - Get a list of all terminals
- **terminal_tab** - Get the UUID of a parent tab
- **terminal_tab_title** - Get the title of a parent tab
+-----------------------+-----------------------------------------+
| Command | Action |
+=======================+=========================================+
| get_tab [1]_ | Get the UUID of a parent tab |
+-----------------------+-----------------------------------------+
| get_tab_title [1]_ | Get the title of a parent tab |
+-----------------------+-----------------------------------------+
| get_terminals | Get a list of all terminals |
+-----------------------+-----------------------------------------+
| get_window [1]_ | Get the UUID of a parent window |
+-----------------------+-----------------------------------------+
| get_window_title [1]_ | Get the title of a parent window |
+-----------------------+-----------------------------------------+
| hsplit [1]_ | Split the current terminal horizontally |
+-----------------------+-----------------------------------------+
| new_tab [1]_ | Open a new tab |
+-----------------------+-----------------------------------------+
| new_window | Open a new window |
+-----------------------+-----------------------------------------+
| vsplit [1]_ | Split the current terminal vertically |
+-----------------------+-----------------------------------------+
Calling Remotinator without a command will print the options to the
terminal.
.. [1] These entries require either TERMINATOR_UUID environment var,
or the --uuid option must be used.
Calling Remotinator without a command or with the ``-h`` will print
the options and available commands to the terminal.
.. note:: Because a layout (unless launched from the command line as
as the first instance) is normally launched as a separate
@ -279,3 +312,6 @@ terminal.
within layouts. As mentioned in the :ref:`dbus` section,
this has the potential to be improved upon.
There is a lot of scope for expanding this feature, and it is relatively
simple to do, so is an ideal task for dipping ones toes.

View File

@ -12,6 +12,24 @@ Here I'll try to list some common questions that get asked for.
Why...
------
...is there another terminal program called Terminator?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is `another terminal`_ project programmed in Java. It was begun a
bit before this project, but when this projects creator searched the
name I guess the other project did not come up. I don't know the details,
but this project was always Terminator to me. I haven't received
complaints from the other project, although they do get some people
asking in their Groups for support on this project. Please don't do that
folks.
I have contemplated a name change, although this project has a lot of
visibility with it's current name, and it is hard to come up with a decent
`alternative`_.
.. _another terminal: https://code.google.com/p/jessies/wiki/Terminator
.. _alternative: http://gnometerminator.blogspot.com/2015/09/whats-in-name.html
...write in Python? It's slow/bloated/bad?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -158,6 +158,11 @@ something is an issue, such as:
Bugs
-----------------------------
Bugs (and feature requests) are raised and dealt with in the Launchpad
`bugs`_ page.
.. _bugs: https://bugs.launchpad.net/terminator
- **Fixing** - OK, so yeah, this is coding.
- **Reproduce and improving** - Sometimes bugs are lacking info to
reproduce, or my system is too different. Or perhaps the original
@ -167,8 +172,119 @@ Bugs
gotta do it. Shepherd bugs to the point where it has a priority,
a milestone, reproduction steps, confirmation, submitted patches
validated, and so on.
- **Raising** - If you have searched and cannot find your bug, you
can raise a new one.
See https://bugs.launchpad.net/terminator
Feature requests are initially raised as bugs, and if it passes the
rather undefined criteria, it will be marked as a **wishlist** item.
Bug handling
^^^^^^^^^^^^
I have had one person (possibly others) who are hesitant to use the
status' because they've been "told off" by the developers of other
projects, and people/projects are often different in how they want to
handle bugs. So, with that in mind, let me present my idea of how a
bug should be handled. First a pretty picture:
.. image:: imgs/launchpad_bugflow.png
So, the darker blue states are the ones available in Launchpad that
can be manually set. The two marked with a red outline require bug
supervisor role to set, which means a member of the Terminator team.
The pale blue states are ones that I personally feel should be there,
but are missing. I'll explain my intention with those in the
appropriate sections below. The grey state is set automatically only,
and cannot be set by anyone.
Initial/New
~~~~~~~~~~~
When you the user create a bug it goes into **New**. If another user
clicks the *This bug affects you* link, this gets moved to **Confirmed**.
Investigation
~~~~~~~~~~~~~
If I (or indeed someone else) go to a *New* or *Confirmed* bug, and
are unable to reproduce it then it will be marked **Incomplete**, and
someone (preferably the original raiser, but it can be someone else
affected) needs to revisit and provide the requested additional info.
Ideally when that is added there would be a *New Info* (or similar)
state that the user would set the bug to, and then the dashed line
would be taken.
Because we don't have this state, we "skip" straight through and abuse
the **Confirmed** state. Set the bug (back) to **Confirmed**, and
assign the official tag *new-info*. Once the ticket is reviewed the
tag will be removed, and a new state assigned, possibly even
*Incomplete* again.
Note that I am aware of the two *Incomplete* options for with and
without response, but the way it works is unclear, and I can't switch
between the two myself, and it is not clear when Launchpad switches
it. So, I'll be ignoring them and treating *Incomplete* as a single
state.
Acceptance
~~~~~~~~~~
At this point the bug should provide enough information to be
reproducible. Only a supervisor can set an issue to **Triaged**. This
state says, "Yes, the information provided either permits me to
reproduce myself, or see what went wrong from provided logs, config,
etc." Typically they go here when I don't have the time to start
working on an immediate fix.
Alternatively I (or anyone) could start working on a bug. Ideally the
issue should be set to **In Progress**, and assigned to the person
picking it up. That way, two people don't work on the same issue.
Sometimes, for trivial or interesting bugs, they might get looked at
and fixed so fast that they skip all *Acceptance* categories, and go
straight to one of the *Resolved* states.
Resolved
~~~~~~~~
**Fix Committed** is for when a fix is pushed to the main Launchpad
bazaar repository and typically I do this. If you create a contribution
via a branch, and commit to your branch, do not set to this yourself.
Instead associate the bug with the branch, and request a merge. When
I do the merge I will also set the bug to *Fix Committed*.
An **Invalid** bug is usually because the user didn't understand
something, or it is in fact a support request.
Only a bug supervisor can set an issue to **Won't Fix**. It is the
supervisors way of ending the discussion when it is felt that a bug
does not fit the projects plans, but someone can't `let it go`_.
**Opinion** is typically when the user and I have a different
expectation about behaviour or a new feature, or I think that something
being proposed would actually be a negative for Terminator. Unlike
*Won't Fix*, this can still be discussed within the ticket.
**Not Responsible** is our second missing virtual state. For me this
is when, for example, an issue actually resides in *libvte*, or *GTK*.
Again, there is a new official tag *not-responsible*, and the bug
will actually end up set to *Invalid*.
The final virtual state is **No Action**, which is for various reasons.
Sometimes other work has resolved an issue already, or the user was
using an old version, and the fix is already in trunk or released.
Again there is a new official tag *no-action*. These will then be put
in one of the following: *Invalid*, *Fix Committed*, or *Fix Released*,
depending on circumstance.
Our last Resolved state is the automatically set **Expired** one.
Available
~~~~~~~~~
The last state is **Fix Released**, indicating that there has been a
release containing a fix to the issue.
Of course this flow and states are not set in stone. A bug can be
brought out of *Expired* if necessary. Or back from *In Progress* to
*Confirmed* or *Triaged* if the assignee decides to stop working on
the bug for some reason.
.. _let it go: https://www.youtube.com/watch?v=L0MK7qz13bU#t=1m05s
-----------------------------
Plugins
@ -188,7 +304,7 @@ Oh come on... Coding? Again!
I see lots of people say how Terminator is really good, and it is,
but like anything, it could be better!
To give an idea, as I write this manual in July 2015, there are 83
To give an idea, as of October 2015, revision 1663, there are 86
`wishlist items`_.
.. note:: Just because an item is marked as wishlist, it doesn't
@ -202,7 +318,7 @@ To give an idea, as I write this manual in July 2015, there are 83
merged.
Some of these wishlist items are also in my own text file of "Things
to do" / "Big bag of crazy", which as of August 2015, revision 1598,
to do" / "Big bag of crazy", which as of October 2015, revision 1663,
looks like this::
Enhancements which may or may not have a wishlist item
@ -214,6 +330,15 @@ looks like this::
http://people.canonical.com/~dpm/api/devel/GIR/python/Unity-3.0.html
Possibly use the progress bar and or counter for something too.
Add an appindicator menu for launching sessions.
If we can figure out how to do arbritrary highlighting, perhaps we can get a "highlight differences" mode like used to exist in ClusTerm.
This could also be limted to highlighting diffs between those in the same group.
Synchronised scroll based on groups
Triggers (actions) based on regex for received text
A "swap" mode for drag and drop
Encrypted dumping/logging to disk
Search
Might be able to missuse the ClusTerm method of overwriting to "highlight" (gtk2 only)
Layouts
Layout Launcher
@ -236,6 +361,7 @@ looks like this::
Store the custom command and working directory when we load a layout, so making small changes and saving doesn't lose everything.
It could be possible to detect the current command and working directory with psutil, but could be tricky. (i.e. do we ignore bash?)
A per layout "save on exit" option to always remember last setup/positions etc. Probably requires above to be done first.
A per layout shortcut launch hotkey
Missing shortcuts:
Just shortcut:
@ -262,7 +388,7 @@ looks like this::
right-click menu replicating GNOME-Terminals (move left/right, close, rename)
Menus
Add acellerators (i.e. "Shift+Ctr+O") might look too cluttered.
Add accelerators (i.e. "Shift+Ctr+O") might look too cluttered.
Preferences
Profiles
@ -272,22 +398,20 @@ looks like this::
Terminal title editable
Button in prefs to duplicate a layout
Ordering in list
Working directory - add dialog too, see http://stackoverflow.com/questions/10868167/make-filechooserdialog-allow-user-to-select-a-folder-directory
Keybindings
Add a list of the default keybindings to the Preferences -> Keybindings window?
Option for close_button_on_tab in prefs. (needs tab right-click menu first
Option to rebalance siblings on a split (don't think children or ancestors make sense)
Figure out how to get the tree view to jump to selected row for prefseditor
Config file
Items should be sorted for saving. Easier for comparing and spotting changes.
Plugins
Give plugins ability to register shortcuts
Custom Commands is blocking, perhaps make non-blocking
Drag and Drop
Terminal without target opens new window
Tab to different/new window depending on target
LP#0768520: Terminal without target opens new window
LP#1471009: Tab to different/new window depending on target
Major architectural
Improve DBus interface, add coordination between sessions, i.e.:
@ -318,31 +442,6 @@ looks like this::
Let window title = terminal titlebar - perhaps other combos. Some kind of %T %G %W substitution?
If we can figure out how to do arbritrary highlighting, perhaps we can get a "highlight differences" mode like used to exist in ClusTerm.
This could also be limted to highlighting diffs between those in the same group.
Issues encountered where not aware of any LP bug
================================================
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 & gtk3. Intentional?
BUG: Zoom on a split non-maximised window on just one terminal causes window size changes if zoomed terminal font is
bigger that the non-zoomed window.
BUG: Groups: Create two tabs with splits. Super+G (group all), move to other tab and Super+T (group tabs), move back and type
Output in tab group too. Also for custom groups.
Ungrouping all also nukes changed groups. Right?
Also with Super+T and changing one terms group, still receives input, and loses custom group when turning off tab group.
BUG: Hide on lose focus broken. LP#843674
focus-out signal callback defers (idle_add) the call to hide.
If one of our own windows/menus pops up, an inhibit flag is set.
When the window/menu is closed we call a deferred hide on the main window
In the deferred function, we check if we now have focus, and do not hide
In the deferred function, we check if inhibit is set and do not hide
Could create a popup_menu subclass that sets the inhibiter
So as you can see, still lots of room for improvements, and plenty of
ideas if you are trying to find small starter tasks.
@ -377,41 +476,39 @@ thing lit up with a smorgasbord of items where my installed packages
were not new enough.
If you are feeling brave and adventurous, there are some instructions
in `comment #15`_ of the `porting bug`_ that will help you get the
GTK3 version running. Assistance knocking off the remaining rough
edges will be very much appreciated.
in this `blog post`_ that will help you get the GTK3 version running.
Assistance knocking off the remaining rough edges will be very much
appreciated.
For the record, as of August 2015, with the `gtk3 branch`_ at revision
1577, these are the outstanding items::
For the record, as of October 2015, with the `gtk3 branch`_ at revision
1612, these are the outstanding items::
Outstanding GTK3 tasks/items/reviews etc remaining
===================================================
Outstanding trunk revisions: 1599-1602 (minus manual, that comes later), 1613-1615, 1617
If titlebar text wider than window, the visual bell icon does not appear
If editing label in titlebar, the whole layout gets distorted until finished, then snaps back to mostly correct layout
In High contrast mode the titlebar background only works over the group button
In High contrast mode the titles are invisible for terminals with a group
Fix/reimplement the DBUS for GTK3. GI seems incomplete with no Server. Try to get old style working again.
Need to go through all the Gtk.STOCK_* items and remove. Deprecated.
Outstanding GTK3 port tasks/items/reviews etc.
==============================================
Outstanding trunk revisions: 1634 & 1637, 1647 (assuming all is good), 1663
Need to go through all the Gtk.STOCK_* items and remove. Deprecated in 3.10. Very low priority as won't be problem till 4.0.
Homogeneous_tabbar removed? Why?
Need to set the version requirements - how? needed?
terminal.py:on_vte_size_allocate, check for self.vte.window missing. Consequences?
terminal.py:understand diff in args between old fork and new spawn of bash. Consequences?
VERIFY(8)/FIXME(7) FOR GTK3 items to be dealt with
VERIFY(8)/FIXME(6) FOR GTK3 items to be dealt with
For future with vte0.40+ - reimplement/restore the word_chars stuff.
Not fixable so far as I can see
===============================
[Function N/A in 0.38+, will it return?] visible_bell - removed and not mentioned. Check capability not possible, or can be faked.
Outstanding GTK3 port tasks/items/reviews etc. for future release
=================================================================
vte 0.40+
Reimplement/restore the word_chars stuff.
Once the GTK3 port is done there is also a long overdue port to
Python3, especially in light of some distributions trying to
eliminate Python2 from the base installs. Yes, Python2 will be with
us for a long time yet, but this should serve as a warning.
.. _comment #15: https://bugs.launchpad.net/terminator/+bug/1030562/comments/15
.. _porting bug: https://bugs.launchpad.net/terminator/+bug/1030562
I even have some new items specifically for the GTK3 branch which I'm
still thinking about, but I'm not ready to declare. I suspect I might
get a bit of unwanted pressure if I were to mention these, so for now
they are under NDA. 😃
.. _blog post: http://gnometerminator.blogspot.com/2015/09/so-you-want-to-try-terminator-gtk3.html
.. _gtk3 branch: https://code.launchpad.net/~gnome-terminator/terminator/gtk3
--------------------------
@ -454,6 +551,8 @@ Here is a list of some useful sets of documentation:
+---------------------------+-------------------------------------------------------------------+
| Bazaar DVCS | http://doc.bazaar.canonical.com/en/ |
+---------------------------+-------------------------------------------------------------------+
| Launchpad Help | https://help.launchpad.net/ |
+---------------------------+-------------------------------------------------------------------+
| **GTK 2** |
+---------------------------+-------------------------------------------------------------------+
| PyGTK | https://developer.gnome.org/pygtk/stable/ |

View File

@ -424,12 +424,18 @@ scrollback buffer with more flexibility:
+---------------------+----------+-------------------------------------+
| Half page [TS]_ | Up, Down | |
+---------------------+----------+-------------------------------------+
| Line [TS]_ | Up, Down | |
| Line [TS]_ [MS]_ | Up, Down | |
+---------------------+----------+-------------------------------------+
.. [VS] Default actions from VTE that are not configurable.
.. [XL] Where X may vary depending on distribution. On mine it is 4.
.. [TS] Additional movement options from Terminator that are configurable.
.. [VS] **VTE Shortcuts:** Default actions from VTE that are not configurable.
.. [XL] **X Lines:** Where X may vary depending on distribution. On mine
it is 4.
.. [TS] **Terminator Shortcuts:** Additional movement options from Terminator
that are configurable.
.. [MS] **Masked Shortcuts:** VTE provides default shortcuts for line up/down,
on ``Shift``\ +\ ``Ctrl``\ +\ ``Arrow Up/Dn``, but they are masked
by shortcuts for resizing terminals. You can disable or reassign
the resizing shortcuts to regain access to the VTE default.
-----------------------------------
Search the buffer

View File

@ -14,16 +14,22 @@ Documentation process started 2015-07-17 by Stephen Boddy.
All contributions and improvements are welcome.
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| Updated for | Date | Author / Editor | Notes |
+==============+============+=================+================================+
+==============+============+=================+===================================+
| 0.97, r1598 | 2015-08-07 | Stephen Boddy | Initial creation |
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| 0.97, r1621 | 2015-08-21 | Stephen Boddy | Minor changes/corrections |br| |
| | | | Added links to dev docs |
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| 0.98 | 2015-08-26 | Stephen Boddy | Stick a fork in it, it's done |
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| 0.98, r1663 | 2015-09-30 | Stephen Boddy | Add the new PuTTY paste mode |br| |
| | | | Add new Remotinator commands |br| |
| | | | FAQ for other Terminator |br| |
| | | | Add Bug handling flow |br| |
| | | | Minor changes/corrections |
+--------------+------------+-----------------+-----------------------------------+
.. note:: Ideally this documentation should be kept up-to-date with
the changes as they go in. This way things don't get missed.

View File

@ -61,7 +61,7 @@ Behaviour
The first window opened will not be displayed in the taskbar.
Subsequent windows will show in the taskbar (bug?).
**Window geometry hints** (default: on)
**Window geometry hints** (default: off)
If this is checked, then when resizing Terminator will attempt to
step the sizing by the current font, and display a small box with the
@ -93,6 +93,12 @@ Behaviour
receive keystrokes.
- *None* - Only the current terminal receives keystrokes.
**PuTTY style paste** (default: off)
Make the right mouse button operate like in PuTTY, so ``right-click``
will paste the Primary selection, and ``middle-click`` will open
the :ref:`Context Menu <context-menu>`. (For ex-PuTTY users).
**Re-use profiles for new terminals** (default: off)
When creating a new terminal with splitting or new tabs, if this is
@ -101,7 +107,7 @@ Behaviour
**Use custom URL handler** (default: off)
If this is enabled then Ctrl+left-mouse-click on a URL will try to use
If this is enabled then ``Ctrl``\ +\ ``click`` on a URL will try to use
the command defined in *Custom URL handler* to open the link. If not
enabled, Terminator will attempt to open the link with its internal
logic.
@ -258,7 +264,7 @@ a separate window launched from the menu bar.
**Select-by-word characters** (default: ``-A-Za-z0-9,./?%&#:_``)
Using double-click to select text will use this pattern to define
Using ``double-click`` to select text will use this pattern to define
what characters are considered part of the word.
""""""
@ -639,7 +645,7 @@ Keybindings
This is a list of all available keyboard shortcuts in the application.
To change a keybinding, first highlight the entry you wish to change.
Next click on the *Keybinding* column again. The entry should change
Next ``click`` on the *Keybinding* column again. The entry should change
to **New accelerator...**. Simply perform the shortcut you wish to
set. If you change your mind use ``Esc`` (Escape) key to revert back
to the existing shortcut. If you wish to delete a shortcut, use the

View File

@ -187,6 +187,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -423,6 +424,12 @@ the meantime you can use:</p>
<p class="last">This should turn off the output, and let you explore the
internal structure more easily.</p>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">Using the <code class="docutils literal"><span class="pre">-dd</span></code> option will make the <a class="reference internal" href="#dbus"><span>DBus</span></a>
interface problematic. Any attempt to use <a class="reference internal" href="#remotinator"><span>Remotinator</span></a>
will hang the main application.</p>
</div>
<p>The debug options and their usage are detailed
<a class="reference internal" href="#command-line-options-debugging"><span>here</span></a>.</p>
</div>
@ -462,20 +469,69 @@ layouts.</p>
typically run from <em>within</em> a Terminator terminal. This is not
strictly necessary, but if not you will have to do some extra work
to determine the valid UUID of a current terminal and pass it as the
<code class="docutils literal"><span class="pre">TERMINATOR_UUID</span></code> environment variable. Remotinator is called with:</p>
<code class="docutils literal"><span class="pre">TERMINATOR_UUID</span></code> environment variable, or as the value to the
<code class="docutils literal"><span class="pre">-u</span></code>/<code class="docutils literal"><span class="pre">--uuid</span></code> option. Remotinator is called within Terminator
with:</p>
<div class="highlight-python"><div class="highlight"><pre>$ remotinator &lt;command&gt;
</pre></div>
</div>
<p>or with one of the following:</p>
<div class="highlight-python"><div class="highlight"><pre>$ remotinator --uuid &lt;UUID&gt; &lt;command&gt;
$ TERMINATOR_UUID=&lt;UUID&gt; remotinator &lt;command&gt;
$ export TERMINATOR_UUID=&lt;UUID&gt;; remotinator &lt;command&gt;
</pre></div>
</div>
<p>to force the UUID, or call it from outside Terminator.</p>
<p>The following commands are currently enabled:</p>
<ul class="simple">
<li><strong>hsplit</strong> - Split the current terminal horizontally</li>
<li><strong>vsplit</strong> - Split the current terminal vertically</li>
<li><strong>terminals</strong> - Get a list of all terminals</li>
<li><strong>terminal_tab</strong> - Get the UUID of a parent tab</li>
<li><strong>terminal_tab_title</strong> - Get the title of a parent tab</li>
</ul>
<p>Calling Remotinator without a command will print the options to the
terminal.</p>
<table border="1" class="docutils">
<colgroup>
<col width="36%" />
<col width="64%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Command</th>
<th class="head">Action</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>get_tab <a class="footnote-reference" href="#id12" id="id5">[1]</a></td>
<td>Get the UUID of a parent tab</td>
</tr>
<tr class="row-odd"><td>get_tab_title <a class="footnote-reference" href="#id12" id="id6">[1]</a></td>
<td>Get the title of a parent tab</td>
</tr>
<tr class="row-even"><td>get_terminals</td>
<td>Get a list of all terminals</td>
</tr>
<tr class="row-odd"><td>get_window <a class="footnote-reference" href="#id12" id="id7">[1]</a></td>
<td>Get the UUID of a parent window</td>
</tr>
<tr class="row-even"><td>get_window_title <a class="footnote-reference" href="#id12" id="id8">[1]</a></td>
<td>Get the title of a parent window</td>
</tr>
<tr class="row-odd"><td>hsplit <a class="footnote-reference" href="#id12" id="id9">[1]</a></td>
<td>Split the current terminal horizontally</td>
</tr>
<tr class="row-even"><td>new_tab <a class="footnote-reference" href="#id12" id="id10">[1]</a></td>
<td>Open a new tab</td>
</tr>
<tr class="row-odd"><td>new_window</td>
<td>Open a new window</td>
</tr>
<tr class="row-even"><td>vsplit <a class="footnote-reference" href="#id12" id="id11">[1]</a></td>
<td>Split the current terminal vertically</td>
</tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="id12" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[1]</td><td><em>(<a class="fn-backref" href="#id5">1</a>, <a class="fn-backref" href="#id6">2</a>, <a class="fn-backref" href="#id7">3</a>, <a class="fn-backref" href="#id8">4</a>, <a class="fn-backref" href="#id9">5</a>, <a class="fn-backref" href="#id10">6</a>, <a class="fn-backref" href="#id11">7</a>)</em> These entries require either TERMINATOR_UUID environment var,
or the &#8211;uuid option must be used.</td></tr>
</tbody>
</table>
<p>Calling Remotinator without a command or with the <code class="docutils literal"><span class="pre">-h</span></code> will print
the options and available commands to the terminal.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Because a layout (unless launched from the command line as
@ -484,6 +540,8 @@ instance requiring the <code class="docutils literal"><span class="pre">-u</span
within layouts. As mentioned in the <a class="reference internal" href="#dbus"><span>DBus</span></a> section,
this has the potential to be improved upon.</p>
</div>
<p>There is a lot of scope for expanding this feature, and it is relatively
simple to do, so is an ideal task for dipping ones toes.</p>
</div>
</div>

View File

@ -187,6 +187,7 @@
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -260,6 +261,19 @@
<p>Here I&#8217;ll try to list some common questions that get asked for.</p>
<div class="section" id="why">
<h2>Why...<a class="headerlink" href="#why" title="Permalink to this headline"></a></h2>
<div class="section" id="is-there-another-terminal-program-called-terminator">
<h3>...is there another terminal program called Terminator?<a class="headerlink" href="#is-there-another-terminal-program-called-terminator" title="Permalink to this headline"></a></h3>
<p>There is <a class="reference external" href="https://code.google.com/p/jessies/wiki/Terminator">another terminal</a> project programmed in Java. It was begun a
bit before this project, but when this projects creator searched the
name I guess the other project did not come up. I don&#8217;t know the details,
but this project was always Terminator to me. I haven&#8217;t received
complaints from the other project, although they do get some people
asking in their Groups for support on this project. Please don&#8217;t do that
folks.</p>
<p>I have contemplated a name change, although this project has a lot of
visibility with it&#8217;s current name, and it is hard to come up with a decent
<a class="reference external" href="http://gnometerminator.blogspot.com/2015/09/whats-in-name.html">alternative</a>.</p>
</div>
<div class="section" id="write-in-python-it-s-slow-bloated-bad">
<h3>...write in Python? It&#8217;s slow/bloated/bad?<a class="headerlink" href="#write-in-python-it-s-slow-bloated-bad" title="Permalink to this headline"></a></h3>
<div class="section" id="performance">

View File

@ -186,6 +186,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -208,7 +209,17 @@
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettinginvolved.html#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>

View File

@ -186,6 +186,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -208,7 +209,17 @@
<li class="toctree-l2"><a class="reference internal" href="#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="#gtk3-port">GTK3 Port</a></li>
@ -393,6 +404,8 @@ on-screen keyboards, text-to-speech, speech-to-text, and so on.</li>
</div>
<div class="section" id="bugs">
<h2>Bugs<a class="headerlink" href="#bugs" title="Permalink to this headline"></a></h2>
<p>Bugs (and feature requests) are raised and dealt with in the Launchpad
<a class="reference external" href="https://bugs.launchpad.net/terminator">bugs</a> page.</p>
<ul class="simple">
<li><strong>Fixing</strong> - OK, so yeah, this is coding.</li>
<li><strong>Reproduce and improving</strong> - Sometimes bugs are lacking info to
@ -403,8 +416,104 @@ enough.</li>
gotta do it. Shepherd bugs to the point where it has a priority,
a milestone, reproduction steps, confirmation, submitted patches
validated, and so on.</li>
<li><strong>Raising</strong> - If you have searched and cannot find your bug, you
can raise a new one.</li>
</ul>
<p>See <a class="reference external" href="https://bugs.launchpad.net/terminator">https://bugs.launchpad.net/terminator</a></p>
<p>Feature requests are initially raised as bugs, and if it passes the
rather undefined criteria, it will be marked as a <strong>wishlist</strong> item.</p>
<div class="section" id="bug-handling">
<h3>Bug handling<a class="headerlink" href="#bug-handling" title="Permalink to this headline"></a></h3>
<p>I have had one person (possibly others) who are hesitant to use the
status&#8217; because they&#8217;ve been &#8220;told off&#8221; by the developers of other
projects, and people/projects are often different in how they want to
handle bugs. So, with that in mind, let me present my idea of how a
bug should be handled. First a pretty picture:</p>
<img alt="_images/launchpad_bugflow.png" src="_images/launchpad_bugflow.png" />
<p>So, the darker blue states are the ones available in Launchpad that
can be manually set. The two marked with a red outline require bug
supervisor role to set, which means a member of the Terminator team.
The pale blue states are ones that I personally feel should be there,
but are missing. I&#8217;ll explain my intention with those in the
appropriate sections below. The grey state is set automatically only,
and cannot be set by anyone.</p>
<div class="section" id="initial-new">
<h4>Initial/New<a class="headerlink" href="#initial-new" title="Permalink to this headline"></a></h4>
<p>When you the user create a bug it goes into <strong>New</strong>. If another user
clicks the <em>This bug affects you</em> link, this gets moved to <strong>Confirmed</strong>.</p>
</div>
<div class="section" id="investigation">
<h4>Investigation<a class="headerlink" href="#investigation" title="Permalink to this headline"></a></h4>
<p>If I (or indeed someone else) go to a <em>New</em> or <em>Confirmed</em> bug, and
are unable to reproduce it then it will be marked <strong>Incomplete</strong>, and
someone (preferably the original raiser, but it can be someone else
affected) needs to revisit and provide the requested additional info.
Ideally when that is added there would be a <em>New Info</em> (or similar)
state that the user would set the bug to, and then the dashed line
would be taken.</p>
<p>Because we don&#8217;t have this state, we &#8220;skip&#8221; straight through and abuse
the <strong>Confirmed</strong> state. Set the bug (back) to <strong>Confirmed</strong>, and
assign the official tag <em>new-info</em>. Once the ticket is reviewed the
tag will be removed, and a new state assigned, possibly even
<em>Incomplete</em> again.</p>
<p>Note that I am aware of the two <em>Incomplete</em> options for with and
without response, but the way it works is unclear, and I can&#8217;t switch
between the two myself, and it is not clear when Launchpad switches
it. So, I&#8217;ll be ignoring them and treating <em>Incomplete</em> as a single
state.</p>
</div>
<div class="section" id="acceptance">
<h4>Acceptance<a class="headerlink" href="#acceptance" title="Permalink to this headline"></a></h4>
<p>At this point the bug should provide enough information to be
reproducible. Only a supervisor can set an issue to <strong>Triaged</strong>. This
state says, &#8220;Yes, the information provided either permits me to
reproduce myself, or see what went wrong from provided logs, config,
etc.&#8221; Typically they go here when I don&#8217;t have the time to start
working on an immediate fix.</p>
<p>Alternatively I (or anyone) could start working on a bug. Ideally the
issue should be set to <strong>In Progress</strong>, and assigned to the person
picking it up. That way, two people don&#8217;t work on the same issue.</p>
<p>Sometimes, for trivial or interesting bugs, they might get looked at
and fixed so fast that they skip all <em>Acceptance</em> categories, and go
straight to one of the <em>Resolved</em> states.</p>
</div>
<div class="section" id="resolved">
<h4>Resolved<a class="headerlink" href="#resolved" title="Permalink to this headline"></a></h4>
<p><strong>Fix Committed</strong> is for when a fix is pushed to the main Launchpad
bazaar repository and typically I do this. If you create a contribution
via a branch, and commit to your branch, do not set to this yourself.
Instead associate the bug with the branch, and request a merge. When
I do the merge I will also set the bug to <em>Fix Committed</em>.</p>
<p>An <strong>Invalid</strong> bug is usually because the user didn&#8217;t understand
something, or it is in fact a support request.</p>
<p>Only a bug supervisor can set an issue to <strong>Won&#8217;t Fix</strong>. It is the
supervisors way of ending the discussion when it is felt that a bug
does not fit the projects plans, but someone can&#8217;t <a class="reference external" href="https://www.youtube.com/watch?v=L0MK7qz13bU#t=1m05s">let it go</a>.</p>
<p><strong>Opinion</strong> is typically when the user and I have a different
expectation about behaviour or a new feature, or I think that something
being proposed would actually be a negative for Terminator. Unlike
<em>Won&#8217;t Fix</em>, this can still be discussed within the ticket.</p>
<p><strong>Not Responsible</strong> is our second missing virtual state. For me this
is when, for example, an issue actually resides in <em>libvte</em>, or <em>GTK</em>.
Again, there is a new official tag <em>not-responsible</em>, and the bug
will actually end up set to <em>Invalid</em>.</p>
<p>The final virtual state is <strong>No Action</strong>, which is for various reasons.
Sometimes other work has resolved an issue already, or the user was
using an old version, and the fix is already in trunk or released.
Again there is a new official tag <em>no-action</em>. These will then be put
in one of the following: <em>Invalid</em>, <em>Fix Committed</em>, or <em>Fix Released</em>,
depending on circumstance.</p>
<p>Our last Resolved state is the automatically set <strong>Expired</strong> one.</p>
</div>
<div class="section" id="available">
<h4>Available<a class="headerlink" href="#available" title="Permalink to this headline"></a></h4>
<p>The last state is <strong>Fix Released</strong>, indicating that there has been a
release containing a fix to the issue.</p>
<p>Of course this flow and states are not set in stone. A bug can be
brought out of <em>Expired</em> if necessary. Or back from <em>In Progress</em> to
<em>Confirmed</em> or <em>Triaged</em> if the assignee decides to stop working on
the bug for some reason.</p>
</div>
</div>
</div>
<div class="section" id="plugins">
<h2>Plugins<a class="headerlink" href="#plugins" title="Permalink to this headline"></a></h2>
@ -417,7 +526,7 @@ an idea for a neat plugin no-one else has done.</p>
<p>Oh come on... Coding? Again!</p>
<p>I see lots of people say how Terminator is really good, and it is,
but like anything, it could be better!</p>
<p>To give an idea, as I write this manual in July 2015, there are 83
<p>To give an idea, as of October 2015, revision 1663, there are 86
<a class="reference external" href="https://bugs.launchpad.net/terminator/+bugs?field.searchtext=&amp;orderby=-importance&amp;search=Search&amp;field.status%3Alist=NEW&amp;field.status%3Alist=CONFIRMED&amp;field.status%3Alist=TRIAGED&amp;field.status%3Alist=INPROGRESS&amp;field.status%3Alist=INCOMPLETE_WITH_RESPONSE&amp;field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&amp;field.importance%3Alist=WISHLIST&amp;assignee_option=any&amp;field.assignee=&amp;field.bug_reporter=&amp;field.bug_commenter=&amp;field.subscriber=&amp;field.structural_subscriber=&amp;field.tag=&amp;field.tags_combinator=ANY&amp;field.has_cve.used=&amp;field.omit_dupes.used=&amp;field.omit_dupes=on&amp;field.affects_me.used=&amp;field.has_patch.used=&amp;field.has_branches.used=&amp;field.has_branches=on&amp;field.has_no_branches.used=&amp;field.has_no_branches=on&amp;field.has_blueprints.used=&amp;field.has_blueprints=on&amp;field.has_no_blueprints.used=&amp;field.has_no_blueprints=on">wishlist items</a>.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
@ -432,7 +541,7 @@ your approach is good, and has a realistic chance of being
merged.</p>
</div>
<p>Some of these wishlist items are also in my own text file of &#8220;Things
to do&#8221; / &#8220;Big bag of crazy&#8221;, which as of August 2015, revision 1598,
to do&#8221; / &#8220;Big bag of crazy&#8221;, which as of October 2015, revision 1663,
looks like this:</p>
<div class="highlight-python"><div class="highlight"><pre>Enhancements which may or may not have a wishlist item
======================================================
@ -443,6 +552,15 @@ Completely new features
http://people.canonical.com/~dpm/api/devel/GIR/python/Unity-3.0.html
Possibly use the progress bar and or counter for something too.
Add an appindicator menu for launching sessions.
If we can figure out how to do arbritrary highlighting, perhaps we can get a &quot;highlight differences&quot; mode like used to exist in ClusTerm.
This could also be limted to highlighting diffs between those in the same group.
Synchronised scroll based on groups
Triggers (actions) based on regex for received text
A &quot;swap&quot; mode for drag and drop
Encrypted dumping/logging to disk
Search
Might be able to missuse the ClusTerm method of overwriting to &quot;highlight&quot; (gtk2 only)
Layouts
Layout Launcher
@ -465,6 +583,7 @@ Layouts
Store the custom command and working directory when we load a layout, so making small changes and saving doesn&#39;t lose everything.
It could be possible to detect the current command and working directory with psutil, but could be tricky. (i.e. do we ignore bash?)
A per layout &quot;save on exit&quot; option to always remember last setup/positions etc. Probably requires above to be done first.
A per layout shortcut launch hotkey
Missing shortcuts:
Just shortcut:
@ -491,7 +610,7 @@ Tabs
right-click menu replicating GNOME-Terminals (move left/right, close, rename)
Menus
Add acellerators (i.e. &quot;Shift+Ctr+O&quot;) might look too cluttered.
Add accelerators (i.e. &quot;Shift+Ctr+O&quot;) might look too cluttered.
Preferences
Profiles
@ -501,22 +620,20 @@ Preferences
Terminal title editable
Button in prefs to duplicate a layout
Ordering in list
Working directory - add dialog too, see http://stackoverflow.com/questions/10868167/make-filechooserdialog-allow-user-to-select-a-folder-directory
Keybindings
Add a list of the default keybindings to the Preferences -&gt; Keybindings window?
Option for close_button_on_tab in prefs. (needs tab right-click menu first
Option to rebalance siblings on a split (don&#39;t think children or ancestors make sense)
Figure out how to get the tree view to jump to selected row for prefseditor
Config file
Items should be sorted for saving. Easier for comparing and spotting changes.
Plugins
Give plugins ability to register shortcuts
Custom Commands is blocking, perhaps make non-blocking
Drag and Drop
Terminal without target opens new window
Tab to different/new window depending on target
LP#0768520: Terminal without target opens new window
LP#1471009: Tab to different/new window depending on target
Major architectural
Improve DBus interface, add coordination between sessions, i.e.:
@ -546,31 +663,6 @@ All non main windows to be changed to glade files
For me the two different sets of next/prev shortcuts are a bit of a mystery.
Let window title = terminal titlebar - perhaps other combos. Some kind of %T %G %W substitution?
If we can figure out how to do arbritrary highlighting, perhaps we can get a &quot;highlight differences&quot; mode like used to exist in ClusTerm.
This could also be limted to highlighting diffs between those in the same group.
Issues encountered where not aware of any LP bug
================================================
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 &amp; gtk3. Intentional?
BUG: Zoom on a split non-maximised window on just one terminal causes window size changes if zoomed terminal font is
bigger that the non-zoomed window.
BUG: Groups: Create two tabs with splits. Super+G (group all), move to other tab and Super+T (group tabs), move back and type
Output in tab group too. Also for custom groups.
Ungrouping all also nukes changed groups. Right?
Also with Super+T and changing one terms group, still receives input, and loses custom group when turning off tab group.
BUG: Hide on lose focus broken. LP#843674
focus-out signal callback defers (idle_add) the call to hide.
If one of our own windows/menus pops up, an inhibit flag is set.
When the window/menu is closed we call a deferred hide on the main window
In the deferred function, we check if we now have focus, and do not hide
In the deferred function, we check if inhibit is set and do not hide
Could create a popup_menu subclass that sets the inhibiter
</pre></div>
</div>
<p>So as you can see, still lots of room for improvements, and plenty of
@ -598,37 +690,35 @@ Even getting &#8220;Joe Bloggs&#8221; to add a PPA can be a struggle.</p>
thing lit up with a smorgasbord of items where my installed packages
were not new enough.</p>
<p>If you are feeling brave and adventurous, there are some instructions
in <a class="reference external" href="https://bugs.launchpad.net/terminator/+bug/1030562/comments/15">comment #15</a> of the <a class="reference external" href="https://bugs.launchpad.net/terminator/+bug/1030562">porting bug</a> that will help you get the
GTK3 version running. Assistance knocking off the remaining rough
edges will be very much appreciated.</p>
<p>For the record, as of August 2015, with the <a class="reference external" href="https://code.launchpad.net/~gnome-terminator/terminator/gtk3">gtk3 branch</a> at revision
1577, these are the outstanding items:</p>
<div class="highlight-python"><div class="highlight"><pre>Outstanding GTK3 tasks/items/reviews etc remaining
===================================================
Outstanding trunk revisions: 1599-1602 (minus manual, that comes later), 1613-1615, 1617
If titlebar text wider than window, the visual bell icon does not appear
If editing label in titlebar, the whole layout gets distorted until finished, then snaps back to mostly correct layout
In High contrast mode the titlebar background only works over the group button
In High contrast mode the titles are invisible for terminals with a group
Fix/reimplement the DBUS for GTK3. GI seems incomplete with no Server. Try to get old style working again.
Need to go through all the Gtk.STOCK_* items and remove. Deprecated.
in this <a class="reference external" href="http://gnometerminator.blogspot.com/2015/09/so-you-want-to-try-terminator-gtk3.html">blog post</a> that will help you get the GTK3 version running.
Assistance knocking off the remaining rough edges will be very much
appreciated.</p>
<p>For the record, as of October 2015, with the <a class="reference external" href="https://code.launchpad.net/~gnome-terminator/terminator/gtk3">gtk3 branch</a> at revision
1612, these are the outstanding items:</p>
<div class="highlight-python"><div class="highlight"><pre>Outstanding GTK3 port tasks/items/reviews etc.
==============================================
Outstanding trunk revisions: 1634 &amp; 1637, 1647 (assuming all is good), 1663
Need to go through all the Gtk.STOCK_* items and remove. Deprecated in 3.10. Very low priority as won&#39;t be problem till 4.0.
Homogeneous_tabbar removed? Why?
Need to set the version requirements - how? needed?
terminal.py:on_vte_size_allocate, check for self.vte.window missing. Consequences?
terminal.py:understand diff in args between old fork and new spawn of bash. Consequences?
VERIFY(8)/FIXME(7) FOR GTK3 items to be dealt with
VERIFY(8)/FIXME(6) FOR GTK3 items to be dealt with
For future with vte0.40+ - reimplement/restore the word_chars stuff.
Not fixable so far as I can see
===============================
[Function N/A in 0.38+, will it return?] visible_bell - removed and not mentioned. Check capability not possible, or can be faked.
Outstanding GTK3 port tasks/items/reviews etc. for future release
=================================================================
vte 0.40+
Reimplement/restore the word_chars stuff.
</pre></div>
</div>
<p>Once the GTK3 port is done there is also a long overdue port to
Python3, especially in light of some distributions trying to
eliminate Python2 from the base installs. Yes, Python2 will be with
us for a long time yet, but this should serve as a warning.</p>
<p>I even have some new items specifically for the GTK3 branch which I&#8217;m
still thinking about, but I&#8217;m not ready to declare. I suspect I might
get a bit of unwanted pressure if I were to mention these, so for now
they are under NDA. 😃</p>
</div>
<div class="section" id="terminator-api-docs">
<h2>Terminator API Docs<a class="headerlink" href="#terminator-api-docs" title="Permalink to this headline"></a></h2>
@ -668,41 +758,44 @@ the A-Team... Or better yet, send me some changes that fix this.</p>
<tr class="row-even"><td>Bazaar DVCS</td>
<td><a class="reference external" href="http://doc.bazaar.canonical.com/en/">http://doc.bazaar.canonical.com/en/</a></td>
</tr>
<tr class="row-odd"><td colspan="2"><strong>GTK 2</strong></td>
<tr class="row-odd"><td>Launchpad Help</td>
<td><a class="reference external" href="https://help.launchpad.net/">https://help.launchpad.net/</a></td>
</tr>
<tr class="row-even"><td>PyGTK</td>
<tr class="row-even"><td colspan="2"><strong>GTK 2</strong></td>
</tr>
<tr class="row-odd"><td>PyGTK</td>
<td><a class="reference external" href="https://developer.gnome.org/pygtk/stable/">https://developer.gnome.org/pygtk/stable/</a></td>
</tr>
<tr class="row-odd"><td>VTE for GTK 2</td>
<tr class="row-even"><td>VTE for GTK 2</td>
<td><a class="reference external" href="https://developer.gnome.org/vte/0.28/">https://developer.gnome.org/vte/0.28/</a></td>
</tr>
<tr class="row-even"><td colspan="2"><strong>GTK 3</strong></td>
<tr class="row-odd"><td colspan="2"><strong>GTK 3</strong></td>
</tr>
<tr class="row-odd"><td>GObject Introspection</td>
<tr class="row-even"><td>GObject Introspection</td>
<td><a class="reference external" href="https://wiki.gnome.org/Projects/GObjectIntrospection">https://wiki.gnome.org/Projects/GObjectIntrospection</a></td>
</tr>
<tr class="row-even"><td>GObject</td>
<tr class="row-odd"><td>GObject</td>
<td><a class="reference external" href="https://developer.gnome.org/gobject/stable/">https://developer.gnome.org/gobject/stable/</a></td>
</tr>
<tr class="row-odd"><td>PyGObject Introspection</td>
<tr class="row-even"><td>PyGObject Introspection</td>
<td><a class="reference external" href="https://wiki.gnome.org/Projects/PyGObject">https://wiki.gnome.org/Projects/PyGObject</a></td>
</tr>
<tr class="row-even"><td>PyGObject</td>
<tr class="row-odd"><td>PyGObject</td>
<td><a class="reference external" href="https://developer.gnome.org/pygobject/stable/">https://developer.gnome.org/pygobject/stable/</a></td>
</tr>
<tr class="row-odd"><td>Many PIGO autodocs</td>
<tr class="row-even"><td>Many PIGO autodocs</td>
<td><a class="reference external" href="http://lazka.github.io/pgi-docs/">http://lazka.github.io/pgi-docs/</a></td>
</tr>
<tr class="row-even"><td>GDK3 Ref. Manual</td>
<tr class="row-odd"><td>GDK3 Ref. Manual</td>
<td><a class="reference external" href="https://developer.gnome.org/gdk3/stable/">https://developer.gnome.org/gdk3/stable/</a></td>
</tr>
<tr class="row-odd"><td>GTK3 Ref. Manual</td>
<tr class="row-even"><td>GTK3 Ref. Manual</td>
<td><a class="reference external" href="https://developer.gnome.org/gtk3/stable/index.html">https://developer.gnome.org/gtk3/stable/index.html</a></td>
</tr>
<tr class="row-even"><td>Python GTK+ 3 Tutorial</td>
<tr class="row-odd"><td>Python GTK+ 3 Tutorial</td>
<td><a class="reference external" href="http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html">http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html</a></td>
</tr>
<tr class="row-odd"><td>VTE for GTK 3</td>
<tr class="row-even"><td>VTE for GTK 3</td>
<td><a class="reference external" href="https://developer.gnome.org/vte/0.38/">https://developer.gnome.org/vte/0.38/</a></td>
</tr>
</tbody>

View File

@ -187,6 +187,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -773,7 +774,7 @@ scrollback buffer with more flexibility:</p>
<td>Up, Down</td>
<td>&nbsp;</td>
</tr>
<tr class="row-odd"><td>Line <a class="reference internal" href="#ts" id="id13">[TS]</a></td>
<tr class="row-odd"><td>Line <a class="reference internal" href="#ts" id="id13">[TS]</a> <a class="reference internal" href="#ms" id="id14">[MS]</a></td>
<td>Up, Down</td>
<td>&nbsp;</td>
</tr>
@ -782,19 +783,30 @@ scrollback buffer with more flexibility:</p>
<table class="docutils citation" frame="void" id="vs" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[VS]</td><td><em>(<a class="fn-backref" href="#id8">1</a>, <a class="fn-backref" href="#id9">2</a>)</em> Default actions from VTE that are not configurable.</td></tr>
<tr><td class="label">[VS]</td><td><em>(<a class="fn-backref" href="#id8">1</a>, <a class="fn-backref" href="#id9">2</a>)</em> <strong>VTE Shortcuts:</strong> Default actions from VTE that are not configurable.</td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="xl" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id10">[XL]</a></td><td>Where X may vary depending on distribution. On mine it is 4.</td></tr>
<tr><td class="label"><a class="fn-backref" href="#id10">[XL]</a></td><td><strong>X Lines:</strong> Where X may vary depending on distribution. On mine
it is 4.</td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="ts" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[TS]</td><td><em>(<a class="fn-backref" href="#id11">1</a>, <a class="fn-backref" href="#id12">2</a>, <a class="fn-backref" href="#id13">3</a>)</em> Additional movement options from Terminator that are configurable.</td></tr>
<tr><td class="label">[TS]</td><td><em>(<a class="fn-backref" href="#id11">1</a>, <a class="fn-backref" href="#id12">2</a>, <a class="fn-backref" href="#id13">3</a>)</em> <strong>Terminator Shortcuts:</strong> Additional movement options from Terminator
that are configurable.</td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="ms" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id14">[MS]</a></td><td><strong>Masked Shortcuts:</strong> VTE provides default shortcuts for line up/down,
on <code class="docutils literal"><span class="pre">Shift</span></code>+<code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">Arrow</span> <span class="pre">Up/Dn</span></code>, but they are masked
by shortcuts for resizing terminals. You can disable or reassign
the resizing shortcuts to regain access to the VTE default.</td></tr>
</tbody>
</table>
</div>
@ -839,7 +851,7 @@ terminal.</p>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>Target in <a class="footnote-reference" href="#id15" id="id14">[4]</a></td>
<tr class="row-even"><td>Target in <a class="footnote-reference" href="#id16" id="id15">[4]</a></td>
<td><code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">+</span></code>/<code class="docutils literal"><span class="pre">wheelup</span></code></td>
</tr>
<tr class="row-odd"><td>Target out</td>
@ -868,10 +880,10 @@ terminal.</p>
</tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="id15" rules="none">
<table class="docutils footnote" frame="void" id="id16" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id14">[4]</a></td><td>Target terminal is the current terminal when using the
<tr><td class="label"><a class="fn-backref" href="#id15">[4]</a></td><td>Target terminal is the current terminal when using the
keyboard shortcuts, or the terminal under the mouse when using
the <code class="docutils literal"><span class="pre">wheelup</span></code>/<code class="docutils literal"><span class="pre">wheeldown</span></code>.</td></tr>
</tbody>

View File

@ -187,6 +187,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -209,7 +210,17 @@
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettinginvolved.html#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>
@ -261,10 +272,10 @@
<p>All contributions and improvements are welcome.</p>
<table border="1" class="docutils">
<colgroup>
<col width="19%" />
<col width="16%" />
<col width="23%" />
<col width="43%" />
<col width="18%" />
<col width="15%" />
<col width="22%" />
<col width="45%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Updated for</th>
@ -290,6 +301,15 @@ Added links to dev docs</td>
<td>Stephen Boddy</td>
<td>Stick a fork in it, it&#8217;s done</td>
</tr>
<tr class="row-odd"><td>0.98, r1663</td>
<td>2015-09-30</td>
<td>Stephen Boddy</td>
<td>Add the new PuTTY paste mode <br />
Add new Remotinator commands <br />
FAQ for other Terminator <br />
Add Bug handling flow <br />
Minor changes/corrections</td>
</tr>
</tbody>
</table>
<div class="admonition note">

View File

@ -186,6 +186,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -208,7 +209,17 @@
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettinginvolved.html#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>

Binary file not shown.

View File

@ -187,6 +187,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -209,7 +210,17 @@
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettinginvolved.html#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>
@ -299,7 +310,7 @@ window to lose focus and disappear.</p>
<blockquote>
<div>The first window opened will not be displayed in the taskbar.
Subsequent windows will show in the taskbar (bug?).</div></blockquote>
<p><strong>Window geometry hints</strong> (default: on)</p>
<p><strong>Window geometry hints</strong> (default: off)</p>
<blockquote>
<div><p>If this is checked, then when resizing Terminator will attempt to
step the sizing by the current font, and display a small box with the
@ -335,6 +346,11 @@ receive keystrokes.</li>
<li><em>None</em> - Only the current terminal receives keystrokes.</li>
</ul>
</div></blockquote>
<p><strong>PuTTY style paste</strong> (default: off)</p>
<blockquote>
<div>Make the right mouse button operate like in PuTTY, so <code class="docutils literal"><span class="pre">right-click</span></code>
will paste the Primary selection, and <code class="docutils literal"><span class="pre">middle-click</span></code> will open
the <a class="reference internal" href="gettingstarted.html#context-menu"><span>Context Menu</span></a>. (For ex-PuTTY users).</div></blockquote>
<p><strong>Re-use profiles for new terminals</strong> (default: off)</p>
<blockquote>
<div>When creating a new terminal with splitting or new tabs, if this is
@ -342,7 +358,7 @@ enabled, then the profile from the previously focussed terminal will
also be used for the new one.</div></blockquote>
<p><strong>Use custom URL handler</strong> (default: off)</p>
<blockquote>
<div>If this is enabled then Ctrl+left-mouse-click on a URL will try to use
<div>If this is enabled then <code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">click</span></code> on a URL will try to use
the command defined in <em>Custom URL handler</em> to open the link. If not
enabled, Terminator will attempt to open the link with its internal
logic.</div></blockquote>
@ -498,7 +514,7 @@ longer possible in GNOME Terminator.</div></blockquote>
available on middle-click.</div></blockquote>
<p><strong>Select-by-word characters</strong> (default: <code class="docutils literal"><span class="pre">-A-Za-z0-9,./?%&amp;#:_</span></code>)</p>
<blockquote>
<div>Using double-click to select text will use this pattern to define
<div>Using <code class="docutils literal"><span class="pre">double-click</span></code> to select text will use this pattern to define
what characters are considered part of the word.</div></blockquote>
<div class="section" id="cursor">
<h4>Cursor<a class="headerlink" href="#cursor" title="Permalink to this headline"></a></h4>
@ -844,7 +860,7 @@ was launched from, or the users home directory.</div></blockquote>
<img alt="_images/prefs_keybindings.png" src="_images/prefs_keybindings.png" />
<p>This is a list of all available keyboard shortcuts in the application.</p>
<p>To change a keybinding, first highlight the entry you wish to change.
Next click on the <em>Keybinding</em> column again. The entry should change
Next <code class="docutils literal"><span class="pre">click</span></code> on the <em>Keybinding</em> column again. The entry should change
to <strong>New accelerator...</strong>. Simply perform the shortcut you wish to
set. If you change your mind use <code class="docutils literal"><span class="pre">Esc</span></code> (Escape) key to revert back
to the existing shortcut. If you wish to delete a shortcut, use the

View File

@ -185,6 +185,7 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html#why">Why...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#is-there-another-terminal-program-called-terminator">...is there another terminal program called Terminator?</a></li>
<li class="toctree-l3"><a class="reference internal" href="faq.html#write-in-python-it-s-slow-bloated-bad">...write in Python? It&#8217;s slow/bloated/bad?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="faq.html#performance">Performance</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-dumb-way">Memory use - The dumb way</a></li>
@ -207,7 +208,17 @@
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-action-shots">Terminator action shots</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#manual-updates">Manual updates</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#testing">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#bugs">Bugs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettinginvolved.html#bug-handling">Bug handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#initial-new">Initial/New</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#investigation">Investigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#acceptance">Acceptance</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#resolved">Resolved</a></li>
<li class="toctree-l4"><a class="reference internal" href="gettinginvolved.html#available">Available</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#main-application-development">Main Application Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#gtk3-port">GTK3 Port</a></li>

File diff suppressed because one or more lines are too long

View File

@ -210,6 +210,10 @@ Here you will see the port number, and you can simply use::
This should turn off the output, and let you explore the
internal structure more easily.
.. warning:: Using the ``-dd`` option will make the :ref:`dbus`
interface problematic. Any attempt to use :ref:`remotinator`
will hang the main application.
The debug options and their usage are detailed
:ref:`here <command-line-options-debugging>`.
@ -258,20 +262,49 @@ Remotinator is a minimal wrapper around making DBus calls, and is
typically run from *within* a Terminator terminal. This is not
strictly necessary, but if not you will have to do some extra work
to determine the valid UUID of a current terminal and pass it as the
``TERMINATOR_UUID`` environment variable. Remotinator is called with::
``TERMINATOR_UUID`` environment variable, or as the value to the
``-u``\ /\ ``--uuid`` option. Remotinator is called within Terminator
with::
$ remotinator <command>
or with one of the following::
$ remotinator --uuid <UUID> <command>
$ TERMINATOR_UUID=<UUID> remotinator <command>
$ export TERMINATOR_UUID=<UUID>; remotinator <command>
to force the UUID, or call it from outside Terminator.
The following commands are currently enabled:
- **hsplit** - Split the current terminal horizontally
- **vsplit** - Split the current terminal vertically
- **terminals** - Get a list of all terminals
- **terminal_tab** - Get the UUID of a parent tab
- **terminal_tab_title** - Get the title of a parent tab
+-----------------------+-----------------------------------------+
| Command | Action |
+=======================+=========================================+
| get_tab [1]_ | Get the UUID of a parent tab |
+-----------------------+-----------------------------------------+
| get_tab_title [1]_ | Get the title of a parent tab |
+-----------------------+-----------------------------------------+
| get_terminals | Get a list of all terminals |
+-----------------------+-----------------------------------------+
| get_window [1]_ | Get the UUID of a parent window |
+-----------------------+-----------------------------------------+
| get_window_title [1]_ | Get the title of a parent window |
+-----------------------+-----------------------------------------+
| hsplit [1]_ | Split the current terminal horizontally |
+-----------------------+-----------------------------------------+
| new_tab [1]_ | Open a new tab |
+-----------------------+-----------------------------------------+
| new_window | Open a new window |
+-----------------------+-----------------------------------------+
| vsplit [1]_ | Split the current terminal vertically |
+-----------------------+-----------------------------------------+
Calling Remotinator without a command will print the options to the
terminal.
.. [1] These entries require either TERMINATOR_UUID environment var,
or the --uuid option must be used.
Calling Remotinator without a command or with the ``-h`` will print
the options and available commands to the terminal.
.. note:: Because a layout (unless launched from the command line as
as the first instance) is normally launched as a separate
@ -279,3 +312,6 @@ terminal.
within layouts. As mentioned in the :ref:`dbus` section,
this has the potential to be improved upon.
There is a lot of scope for expanding this feature, and it is relatively
simple to do, so is an ideal task for dipping ones toes.

View File

@ -12,6 +12,24 @@ Here I'll try to list some common questions that get asked for.
Why...
------
...is there another terminal program called Terminator?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is `another terminal`_ project programmed in Java. It was begun a
bit before this project, but when this projects creator searched the
name I guess the other project did not come up. I don't know the details,
but this project was always Terminator to me. I haven't received
complaints from the other project, although they do get some people
asking in their Groups for support on this project. Please don't do that
folks.
I have contemplated a name change, although this project has a lot of
visibility with it's current name, and it is hard to come up with a decent
`alternative`_.
.. _another terminal: https://code.google.com/p/jessies/wiki/Terminator
.. _alternative: http://gnometerminator.blogspot.com/2015/09/whats-in-name.html
...write in Python? It's slow/bloated/bad?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -158,6 +158,11 @@ something is an issue, such as:
Bugs
-----------------------------
Bugs (and feature requests) are raised and dealt with in the Launchpad
`bugs`_ page.
.. _bugs: https://bugs.launchpad.net/terminator
- **Fixing** - OK, so yeah, this is coding.
- **Reproduce and improving** - Sometimes bugs are lacking info to
reproduce, or my system is too different. Or perhaps the original
@ -167,8 +172,119 @@ Bugs
gotta do it. Shepherd bugs to the point where it has a priority,
a milestone, reproduction steps, confirmation, submitted patches
validated, and so on.
- **Raising** - If you have searched and cannot find your bug, you
can raise a new one.
See https://bugs.launchpad.net/terminator
Feature requests are initially raised as bugs, and if it passes the
rather undefined criteria, it will be marked as a **wishlist** item.
Bug handling
^^^^^^^^^^^^
I have had one person (possibly others) who are hesitant to use the
status' because they've been "told off" by the developers of other
projects, and people/projects are often different in how they want to
handle bugs. So, with that in mind, let me present my idea of how a
bug should be handled. First a pretty picture:
.. image:: imgs/launchpad_bugflow.png
So, the darker blue states are the ones available in Launchpad that
can be manually set. The two marked with a red outline require bug
supervisor role to set, which means a member of the Terminator team.
The pale blue states are ones that I personally feel should be there,
but are missing. I'll explain my intention with those in the
appropriate sections below. The grey state is set automatically only,
and cannot be set by anyone.
Initial/New
~~~~~~~~~~~
When you the user create a bug it goes into **New**. If another user
clicks the *This bug affects you* link, this gets moved to **Confirmed**.
Investigation
~~~~~~~~~~~~~
If I (or indeed someone else) go to a *New* or *Confirmed* bug, and
are unable to reproduce it then it will be marked **Incomplete**, and
someone (preferably the original raiser, but it can be someone else
affected) needs to revisit and provide the requested additional info.
Ideally when that is added there would be a *New Info* (or similar)
state that the user would set the bug to, and then the dashed line
would be taken.
Because we don't have this state, we "skip" straight through and abuse
the **Confirmed** state. Set the bug (back) to **Confirmed**, and
assign the official tag *new-info*. Once the ticket is reviewed the
tag will be removed, and a new state assigned, possibly even
*Incomplete* again.
Note that I am aware of the two *Incomplete* options for with and
without response, but the way it works is unclear, and I can't switch
between the two myself, and it is not clear when Launchpad switches
it. So, I'll be ignoring them and treating *Incomplete* as a single
state.
Acceptance
~~~~~~~~~~
At this point the bug should provide enough information to be
reproducible. Only a supervisor can set an issue to **Triaged**. This
state says, "Yes, the information provided either permits me to
reproduce myself, or see what went wrong from provided logs, config,
etc." Typically they go here when I don't have the time to start
working on an immediate fix.
Alternatively I (or anyone) could start working on a bug. Ideally the
issue should be set to **In Progress**, and assigned to the person
picking it up. That way, two people don't work on the same issue.
Sometimes, for trivial or interesting bugs, they might get looked at
and fixed so fast that they skip all *Acceptance* categories, and go
straight to one of the *Resolved* states.
Resolved
~~~~~~~~
**Fix Committed** is for when a fix is pushed to the main Launchpad
bazaar repository and typically I do this. If you create a contribution
via a branch, and commit to your branch, do not set to this yourself.
Instead associate the bug with the branch, and request a merge. When
I do the merge I will also set the bug to *Fix Committed*.
An **Invalid** bug is usually because the user didn't understand
something, or it is in fact a support request.
Only a bug supervisor can set an issue to **Won't Fix**. It is the
supervisors way of ending the discussion when it is felt that a bug
does not fit the projects plans, but someone can't `let it go`_.
**Opinion** is typically when the user and I have a different
expectation about behaviour or a new feature, or I think that something
being proposed would actually be a negative for Terminator. Unlike
*Won't Fix*, this can still be discussed within the ticket.
**Not Responsible** is our second missing virtual state. For me this
is when, for example, an issue actually resides in *libvte*, or *GTK*.
Again, there is a new official tag *not-responsible*, and the bug
will actually end up set to *Invalid*.
The final virtual state is **No Action**, which is for various reasons.
Sometimes other work has resolved an issue already, or the user was
using an old version, and the fix is already in trunk or released.
Again there is a new official tag *no-action*. These will then be put
in one of the following: *Invalid*, *Fix Committed*, or *Fix Released*,
depending on circumstance.
Our last Resolved state is the automatically set **Expired** one.
Available
~~~~~~~~~
The last state is **Fix Released**, indicating that there has been a
release containing a fix to the issue.
Of course this flow and states are not set in stone. A bug can be
brought out of *Expired* if necessary. Or back from *In Progress* to
*Confirmed* or *Triaged* if the assignee decides to stop working on
the bug for some reason.
.. _let it go: https://www.youtube.com/watch?v=L0MK7qz13bU#t=1m05s
-----------------------------
Plugins
@ -188,7 +304,7 @@ Oh come on... Coding? Again!
I see lots of people say how Terminator is really good, and it is,
but like anything, it could be better!
To give an idea, as I write this manual in July 2015, there are 83
To give an idea, as of October 2015, revision 1663, there are 86
`wishlist items`_.
.. note:: Just because an item is marked as wishlist, it doesn't
@ -202,7 +318,7 @@ To give an idea, as I write this manual in July 2015, there are 83
merged.
Some of these wishlist items are also in my own text file of "Things
to do" / "Big bag of crazy", which as of August 2015, revision 1598,
to do" / "Big bag of crazy", which as of October 2015, revision 1663,
looks like this::
Enhancements which may or may not have a wishlist item
@ -214,6 +330,15 @@ looks like this::
http://people.canonical.com/~dpm/api/devel/GIR/python/Unity-3.0.html
Possibly use the progress bar and or counter for something too.
Add an appindicator menu for launching sessions.
If we can figure out how to do arbritrary highlighting, perhaps we can get a "highlight differences" mode like used to exist in ClusTerm.
This could also be limted to highlighting diffs between those in the same group.
Synchronised scroll based on groups
Triggers (actions) based on regex for received text
A "swap" mode for drag and drop
Encrypted dumping/logging to disk
Search
Might be able to missuse the ClusTerm method of overwriting to "highlight" (gtk2 only)
Layouts
Layout Launcher
@ -236,6 +361,7 @@ looks like this::
Store the custom command and working directory when we load a layout, so making small changes and saving doesn't lose everything.
It could be possible to detect the current command and working directory with psutil, but could be tricky. (i.e. do we ignore bash?)
A per layout "save on exit" option to always remember last setup/positions etc. Probably requires above to be done first.
A per layout shortcut launch hotkey
Missing shortcuts:
Just shortcut:
@ -262,7 +388,7 @@ looks like this::
right-click menu replicating GNOME-Terminals (move left/right, close, rename)
Menus
Add acellerators (i.e. "Shift+Ctr+O") might look too cluttered.
Add accelerators (i.e. "Shift+Ctr+O") might look too cluttered.
Preferences
Profiles
@ -272,22 +398,20 @@ looks like this::
Terminal title editable
Button in prefs to duplicate a layout
Ordering in list
Working directory - add dialog too, see http://stackoverflow.com/questions/10868167/make-filechooserdialog-allow-user-to-select-a-folder-directory
Keybindings
Add a list of the default keybindings to the Preferences -> Keybindings window?
Option for close_button_on_tab in prefs. (needs tab right-click menu first
Option to rebalance siblings on a split (don't think children or ancestors make sense)
Figure out how to get the tree view to jump to selected row for prefseditor
Config file
Items should be sorted for saving. Easier for comparing and spotting changes.
Plugins
Give plugins ability to register shortcuts
Custom Commands is blocking, perhaps make non-blocking
Drag and Drop
Terminal without target opens new window
Tab to different/new window depending on target
LP#0768520: Terminal without target opens new window
LP#1471009: Tab to different/new window depending on target
Major architectural
Improve DBus interface, add coordination between sessions, i.e.:
@ -318,31 +442,6 @@ looks like this::
Let window title = terminal titlebar - perhaps other combos. Some kind of %T %G %W substitution?
If we can figure out how to do arbritrary highlighting, perhaps we can get a "highlight differences" mode like used to exist in ClusTerm.
This could also be limted to highlighting diffs between those in the same group.
Issues encountered where not aware of any LP bug
================================================
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 & gtk3. Intentional?
BUG: Zoom on a split non-maximised window on just one terminal causes window size changes if zoomed terminal font is
bigger that the non-zoomed window.
BUG: Groups: Create two tabs with splits. Super+G (group all), move to other tab and Super+T (group tabs), move back and type
Output in tab group too. Also for custom groups.
Ungrouping all also nukes changed groups. Right?
Also with Super+T and changing one terms group, still receives input, and loses custom group when turning off tab group.
BUG: Hide on lose focus broken. LP#843674
focus-out signal callback defers (idle_add) the call to hide.
If one of our own windows/menus pops up, an inhibit flag is set.
When the window/menu is closed we call a deferred hide on the main window
In the deferred function, we check if we now have focus, and do not hide
In the deferred function, we check if inhibit is set and do not hide
Could create a popup_menu subclass that sets the inhibiter
So as you can see, still lots of room for improvements, and plenty of
ideas if you are trying to find small starter tasks.
@ -377,41 +476,39 @@ thing lit up with a smorgasbord of items where my installed packages
were not new enough.
If you are feeling brave and adventurous, there are some instructions
in `comment #15`_ of the `porting bug`_ that will help you get the
GTK3 version running. Assistance knocking off the remaining rough
edges will be very much appreciated.
in this `blog post`_ that will help you get the GTK3 version running.
Assistance knocking off the remaining rough edges will be very much
appreciated.
For the record, as of August 2015, with the `gtk3 branch`_ at revision
1577, these are the outstanding items::
For the record, as of October 2015, with the `gtk3 branch`_ at revision
1612, these are the outstanding items::
Outstanding GTK3 tasks/items/reviews etc remaining
===================================================
Outstanding trunk revisions: 1599-1602 (minus manual, that comes later), 1613-1615, 1617
If titlebar text wider than window, the visual bell icon does not appear
If editing label in titlebar, the whole layout gets distorted until finished, then snaps back to mostly correct layout
In High contrast mode the titlebar background only works over the group button
In High contrast mode the titles are invisible for terminals with a group
Fix/reimplement the DBUS for GTK3. GI seems incomplete with no Server. Try to get old style working again.
Need to go through all the Gtk.STOCK_* items and remove. Deprecated.
Outstanding GTK3 port tasks/items/reviews etc.
==============================================
Outstanding trunk revisions: 1634 & 1637, 1647 (assuming all is good), 1663
Need to go through all the Gtk.STOCK_* items and remove. Deprecated in 3.10. Very low priority as won't be problem till 4.0.
Homogeneous_tabbar removed? Why?
Need to set the version requirements - how? needed?
terminal.py:on_vte_size_allocate, check for self.vte.window missing. Consequences?
terminal.py:understand diff in args between old fork and new spawn of bash. Consequences?
VERIFY(8)/FIXME(7) FOR GTK3 items to be dealt with
VERIFY(8)/FIXME(6) FOR GTK3 items to be dealt with
For future with vte0.40+ - reimplement/restore the word_chars stuff.
Not fixable so far as I can see
===============================
[Function N/A in 0.38+, will it return?] visible_bell - removed and not mentioned. Check capability not possible, or can be faked.
Outstanding GTK3 port tasks/items/reviews etc. for future release
=================================================================
vte 0.40+
Reimplement/restore the word_chars stuff.
Once the GTK3 port is done there is also a long overdue port to
Python3, especially in light of some distributions trying to
eliminate Python2 from the base installs. Yes, Python2 will be with
us for a long time yet, but this should serve as a warning.
.. _comment #15: https://bugs.launchpad.net/terminator/+bug/1030562/comments/15
.. _porting bug: https://bugs.launchpad.net/terminator/+bug/1030562
I even have some new items specifically for the GTK3 branch which I'm
still thinking about, but I'm not ready to declare. I suspect I might
get a bit of unwanted pressure if I were to mention these, so for now
they are under NDA. 😃
.. _blog post: http://gnometerminator.blogspot.com/2015/09/so-you-want-to-try-terminator-gtk3.html
.. _gtk3 branch: https://code.launchpad.net/~gnome-terminator/terminator/gtk3
--------------------------
@ -454,6 +551,8 @@ Here is a list of some useful sets of documentation:
+---------------------------+-------------------------------------------------------------------+
| Bazaar DVCS | http://doc.bazaar.canonical.com/en/ |
+---------------------------+-------------------------------------------------------------------+
| Launchpad Help | https://help.launchpad.net/ |
+---------------------------+-------------------------------------------------------------------+
| **GTK 2** |
+---------------------------+-------------------------------------------------------------------+
| PyGTK | https://developer.gnome.org/pygtk/stable/ |

View File

@ -424,12 +424,18 @@ scrollback buffer with more flexibility:
+---------------------+----------+-------------------------------------+
| Half page [TS]_ | Up, Down | |
+---------------------+----------+-------------------------------------+
| Line [TS]_ | Up, Down | |
| Line [TS]_ [MS]_ | Up, Down | |
+---------------------+----------+-------------------------------------+
.. [VS] Default actions from VTE that are not configurable.
.. [XL] Where X may vary depending on distribution. On mine it is 4.
.. [TS] Additional movement options from Terminator that are configurable.
.. [VS] **VTE Shortcuts:** Default actions from VTE that are not configurable.
.. [XL] **X Lines:** Where X may vary depending on distribution. On mine
it is 4.
.. [TS] **Terminator Shortcuts:** Additional movement options from Terminator
that are configurable.
.. [MS] **Masked Shortcuts:** VTE provides default shortcuts for line up/down,
on ``Shift``\ +\ ``Ctrl``\ +\ ``Arrow Up/Dn``, but they are masked
by shortcuts for resizing terminals. You can disable or reassign
the resizing shortcuts to regain access to the VTE default.
-----------------------------------
Search the buffer

View File

@ -14,16 +14,22 @@ Documentation process started 2015-07-17 by Stephen Boddy.
All contributions and improvements are welcome.
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| Updated for | Date | Author / Editor | Notes |
+==============+============+=================+================================+
+==============+============+=================+===================================+
| 0.97, r1598 | 2015-08-07 | Stephen Boddy | Initial creation |
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| 0.97, r1621 | 2015-08-21 | Stephen Boddy | Minor changes/corrections |br| |
| | | | Added links to dev docs |
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| 0.98 | 2015-08-26 | Stephen Boddy | Stick a fork in it, it's done |
+--------------+------------+-----------------+--------------------------------+
+--------------+------------+-----------------+-----------------------------------+
| 0.98, r1663 | 2015-09-30 | Stephen Boddy | Add the new PuTTY paste mode |br| |
| | | | Add new Remotinator commands |br| |
| | | | FAQ for other Terminator |br| |
| | | | Add Bug handling flow |br| |
| | | | Minor changes/corrections |
+--------------+------------+-----------------+-----------------------------------+
.. note:: Ideally this documentation should be kept up-to-date with
the changes as they go in. This way things don't get missed.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -61,7 +61,7 @@ Behaviour
The first window opened will not be displayed in the taskbar.
Subsequent windows will show in the taskbar (bug?).
**Window geometry hints** (default: on)
**Window geometry hints** (default: off)
If this is checked, then when resizing Terminator will attempt to
step the sizing by the current font, and display a small box with the
@ -107,7 +107,7 @@ Behaviour
**Use custom URL handler** (default: off)
If this is enabled then Ctrl+left-mouse-click on a URL will try to use
If this is enabled then ``Ctrl``\ +\ ``click`` on a URL will try to use
the command defined in *Custom URL handler* to open the link. If not
enabled, Terminator will attempt to open the link with its internal
logic.
@ -264,7 +264,7 @@ a separate window launched from the menu bar.
**Select-by-word characters** (default: ``-A-Za-z0-9,./?%&#:_``)
Using double-click to select text will use this pattern to define
Using ``double-click`` to select text will use this pattern to define
what characters are considered part of the word.
""""""
@ -645,7 +645,7 @@ Keybindings
This is a list of all available keyboard shortcuts in the application.
To change a keybinding, first highlight the entry you wish to change.
Next click on the *Keybinding* column again. The entry should change
Next ``click`` on the *Keybinding* column again. The entry should change
to **New accelerator...**. Simply perform the shortcut you wish to
set. If you change your mind use ``Esc`` (Escape) key to revert back
to the existing shortcut. If you wish to delete a shortcut, use the