Some manual updates

This commit is contained in:
Stephen Boddy 2015-08-21 02:11:31 +02:00
parent 43f765bf76
commit 4bd6913267
30 changed files with 649 additions and 371 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

@ -201,7 +201,14 @@ Here you will see the port number, and you can simply use::
into this terminal, even though it is already there in
the launching terminal. This can get rather annoying,
and seems counter-productive to me, so a way to turn
off the output in the debug console may be added.
off the output in the debug console may be added. In
the meantime you can use::
>>> from terminatorlib import util
... util.DEBUG=False
This should turn off the output, and let you explore the
internal structure more easily.
The debug options and their usage are detailed
:ref:`here <command-line-options-debugging>`.

View File

@ -255,7 +255,7 @@ How do I...
- Hide on lose focus: On
- Hide from taskbar
- Window borders: Off (use ``Alt``\ +\ ``click-drag`` and
``Alt``\ +\ ``right-click-drag`` to position and size window.)
``Alt``\ +\ ``middle-click-drag`` to position and size window.)
- Set the Toggle window visibility shortcut to your preference
.. note:: It must be the first Terminator instance started, because

View File

@ -114,10 +114,11 @@ So this is going to try:
version, and I'll relegate it to the en_US folder. The
default will remain British English.
In order to create the html for manual, you must have the sphinx_rtd_theme
package installed. This does not appear to be packaged for Ubuntu
14.04 LTS as far as I can tell. This means you must install it using
the pip tool. This may need installing on your system too with::
In order to create the html for the manual, you must have the
sphinx_rtd_theme package installed. This does not appear to be
packaged for Ubuntu 14.04 LTS as far as I can tell. This means you
must install it using the pip tool. This may need installing on your
system too with::
sudo apt-get install python-pip
@ -204,136 +205,130 @@ 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,
looks like this::
Enhancements which may, or may not, have a wishlist item
========================================================
Finish the WIP window icons
Enhancements which may or may not have a wishlist item
======================================================
Completely new features
Add libunity quicklist of saved layouts
https://wiki.ubuntu.com/Unity/LauncherAPI#Python_Example
http://www.techques.com/question/24-64436/Refreshing-of-Dynamic-Quicklist-doesn%27t-work-after-initialization
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.
Add a list of the default keybindings to the Preferences -> Keybindings window?
Layouts
Layout Launcher
Could bind the shortcut as a global toggle to hide show
Could save
window position/size
hidden status
always on top
pin to visible workspace
Layout needs to save/load more settings
Per layout?
Group mode status (all, group, off)
Split to this group
Autoclean groups
Per window
always on top
pin to visible workspace
Per tab
Per terminal
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.
Add libunity quicklist of saved layouts
https://wiki.ubuntu.com/Unity/LauncherAPI#Python_Example
http://www.techques.com/question/24-64436/Refreshing-of-Dynamic-Quicklist-doesn%27t-work-after-initialization
http://people.canonical.com/~dpm/api/devel/GIR/python/Unity-3.0.html
Possibly use the progress bar and or counter for something too.
Missing shortcuts:
Just shortcut:
Context menu (in addition to Windows menu button - not always available on all keyboards)
Group menu
Open preferences
Change tab text (#1054300-patch), titlebar text, group name
Toggle titlebar visibility
Equalise the splitters (siblings/siblings+children/siblings+parents,all)
Zoom +receiver in/out/reset
Zoom all in/out/reset
New code:
Open a shortcut help overlay (Ctrl-F1?)
Insert tab text, titlebar text, group name value into terminal(s)
Last terminal / tab / window(again to jump back to original) #1440049
Limit broadcast group/all to current tab / window (toggle)
Broadcast temporarily off when maximised or zoomed to single term (toggle)
Add an appindicator menu for launching sessions.
Titlebar
Add large action/status icons for when titlebar is bigger.
Improve the look/spacing of the titlebar, i.e. the spacing around/between elements
Layout Launcher
Could bind the shortcut as a global toggle to hide show
Could save
window position/size
hidden status
always on top
pin to visible workspace
Tabs
right-click menu replicating GNOME-Terminals (move left/right, close, rename)
Layout needs to save/load more settings
Per layout?
Group mode status (all, group, off)
Split to this group
Autoclean groups
Per window
always on top
pin to visible workspace
Per tab
Per terminal
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.
Menus
Add acellerators (i.e. "Shift+Ctr+O") might look too cluttered.
Preferences
Profiles
Add preselection to the profile tab
Layouts
Have changing widgets depending on what is selected in the tree
Terminal title editable
Button in prefs to duplicate a layout
Ordering in list
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
Config file
Items should be sorted for saving. Easier for comparing and spotting changes.
Give plugins ability to register shortcuts
Missing shortcuts:
Context menu (in addition to Windows menu button - not always available on all keyboards)
Group menu
Open preferences
Open a shortcut help overlay
Change tab text (#1054300-patch), titlebar text, group name
Toggle titlebar visibility
Equalise the splitters
Launch help (F1)
Zoom +receiver in/out/reset
Zoom all in/out/reset
Last terminal (again to jump back to original) #1440049
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
Improve DBus interface, add coordination between sessions, i.e.:
multiple DBus ports? register them with a master DBus session, be able to query these, etc
be able to drive them more with command line commands, and not just from within own shell
Remotinator improvements
Abstract out the session/layout allowing multiple logical layouts in the same process to reduce resource used
This is a big piece of work, as a lot of the Terminator class would need seperating out.
Hide window should find the last focussed window and hide that. Second hit unhides and focusses it
Add a power hide to hide all of shortcut bound instances windows
Use the dbus if available to hide the current active window, then unhide it on second shortcut press
If the dbus is available:
The hide will go to the focussed instance, instead of the first to grab the shortcut
Add a super power hide to hide all Terminator windows
In both cases a second shortcut unhides whatever was hidden
Major architectural
Improve DBus interface, add coordination between sessions, i.e.:
multiple DBus ports? register them with a master DBus session, be able to query these, etc
be able to drive them more with command line commands, and not just from within own shell
Remotinator improvements
Abstract out the session/layout allowing multiple logical layouts in the same process to reduce resource used
This is a big piece of work, as a lot of the Terminator class would need seperating out.
Hide window should find the last focussed window and hide that. Second hit unhides and focusses it
Add a power hide to hide all of shortcut bound instances windows
Use the dbus if available to hide the current active window, then unhide it on second shortcut press
If the dbus is available:
The hide will go to the focussed instance, instead of the first to grab the shortcut
Add a super power hide to hide all Terminator windows
In both cases a second shortcut unhides whatever was hidden
Split with command / Inherit command/workdir/groups etc
Somehow make Layout Launcher, Preferences, & poss. Custom Commands singleton/borg (possibly use dbus)
Custom Commands is blocking, perhaps make non-blocking
Button in prefs to duplicate a layout
Check widget for close_button_on_tab in prefs.
When in zoomed/maximised mode
Perhaps the menu could contain a quick switch sub menu, rather than having to Restore, right-click, maximise
Shortcuts for next/prev,up/down/left/right, etc. How should they behave
Limit broadcast group/all to current tab
Broadcast off when maximised or zoomed to single term
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.
Add preselection to the profile tab
Figure out how to get the tree view to jump to selected row for prefseditor
Ability to insert window, titlebar, or group value into terminal(s)
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.
Add large action/status icons for when titlebar is bigger.
Issues encountered where not aware of any LP bug
================================================
Issues encountered which may, or may not, already have an LP bug
================================================================
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 & gtk3. Intentional?
BUG: Issue if initial window (no tabs) has any splits, then creating new tab causes the first tab to be misnamed, gtk2 & gtk3.
Also on GTK3 only (but cannot reproduce now): it also causes a problem if using the "Menu" key to open the context menu
on the unamed tab; it does not dissappear by clicking out of it.
BUG: Ctrl+right-click-drag does not work. Can initiate drag, but no targets work.
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 & gtk3.
BUG: If first tab is split the tabs label width increases and pushes others off window gtk3 (in gtk2, the label shifts right, but other tabs OK)
BUG: With longer translations the buttons in the prefs sidebars can get chopped off.
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.
@ -345,7 +340,8 @@ looks like this::
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.
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.
@ -390,20 +386,20 @@ For the record, as of August 2015, with the `gtk3 branch`_ at revision
Outstanding GTK3 tasks/items/reviews etc remaining
===================================================
Outstanding trunk revisions:
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/reimplment the DBUS for GTK3. GI seems incomplete with no Server. Try to get old style working again.
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.
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(8) FOR GTK3 items to be dealt with
VERIFY(8)/FIXME(7) FOR GTK3 items to be dealt with
For future with vte0.40+ - reimplment/restore the word_chars stuff.
For future with vte0.40+ - reimplement/restore the word_chars stuff.
Not fixable so far as I can see
===============================
@ -419,7 +415,7 @@ us for a long time yet, but this should serve as a warning.
.. _gtk3 branch: https://code.launchpad.net/~gnome-terminator/terminator/gtk3
--------------------------
API Docs
Terminator API Docs
--------------------------
Strictly speaking this isn't an API as such, because it is just using
@ -442,3 +438,62 @@ then even less is displayed in the sidebar.) If you can help, join
the A-Team... Or better yet, send me some changes that fix this.
.. _Terminator API docs: ../apidoc/index.html
--------------------------
Other Docs for Developers
--------------------------
Here is a list of some useful sets of documentation:
+---------------------------+-------------------------------------------------------------------+
| **General** |
+---------------------------+-------------------------------------------------------------------+
| Python | https://docs.python.org/release/2.7/index.html |
+---------------------------+-------------------------------------------------------------------+
| GNOME Dev. Center | https://developer.gnome.org/ |
+---------------------------+-------------------------------------------------------------------+
| Bazaar DVCS | http://doc.bazaar.canonical.com/en/ |
+---------------------------+-------------------------------------------------------------------+
| **GTK 2** |
+---------------------------+-------------------------------------------------------------------+
| PyGTK | https://developer.gnome.org/pygtk/stable/ |
+---------------------------+-------------------------------------------------------------------+
| VTE for GTK 2 | https://developer.gnome.org/vte/0.28/ |
+---------------------------+-------------------------------------------------------------------+
| **GTK 3** |
+---------------------------+-------------------------------------------------------------------+
| GObject Introspection | https://wiki.gnome.org/Projects/GObjectIntrospection |
+---------------------------+-------------------------------------------------------------------+
| GObject | https://developer.gnome.org/gobject/stable/ |
+---------------------------+-------------------------------------------------------------------+
| PyGObject Introspection | https://wiki.gnome.org/Projects/PyGObject |
+---------------------------+-------------------------------------------------------------------+
| PyGObject | https://developer.gnome.org/pygobject/stable/ |
+---------------------------+-------------------------------------------------------------------+
| Many PIGO autodocs | http://lazka.github.io/pgi-docs/ |
+---------------------------+-------------------------------------------------------------------+
| GDK3 Ref. Manual | https://developer.gnome.org/gdk3/stable/ |
+---------------------------+-------------------------------------------------------------------+
| GTK3 Ref. Manual | https://developer.gnome.org/gtk3/stable/index.html |
+---------------------------+-------------------------------------------------------------------+
| Python GTK+ 3 Tutorial | http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html |
+---------------------------+-------------------------------------------------------------------+
| VTE for GTK 3 | https://developer.gnome.org/vte/0.38/ |
+---------------------------+-------------------------------------------------------------------+

View File

@ -36,6 +36,9 @@ the two primary menus showing:
.. image:: imgs/window_breakdown.png
.. note:: You will never see a window that looks like this, as it is
impossible to have both menus up at the same time.
#. :ref:`context-menu` -
This is the main menu reached with ``right-click`` over a terminal, and
will let you access all the settings, profiles, shortcuts and
@ -47,8 +50,9 @@ the two primary menus showing:
terminals we will cover this properly. For now it is enough to know
where it is and how to trigger it.
.. note:: You will never see a window that looks like this, as it is
impossible to have both menus up at the same time.
.. note:: By default titlebars are shown. If the titlebar has been
hidden :ref:`grouping-menu` functions will be added as a
sub-menu to :ref:`context-menu`.
.. _context-menu:
@ -313,8 +317,10 @@ The above action results in the following:
.. image:: imgs/dragterminal_02.png
The other way to drag a terminal can be done from within the terminal with
``Ctrl``\ +\ ``right-click-drag``\ .
The other way to drag a terminal can be done from within the terminal with
``Ctrl``\ +\ ``right-click-drag``\ . With this method once you start the
grag, you *must* release the ``Ctrl`` key *before* releasing the
``right-mouse-button``. If you do not the drag will cancel.
You can drag between tabs by initiating a drag and hovering over the tab.
Terminator will switch to the tab under the cursor, and the terminal can be

View File

@ -1,3 +1,7 @@
.. |br| raw:: html
<br />
.. image:: imgs/icon_history.png
:align: right
:alt: Every'ding come from de Greek!
@ -8,11 +12,16 @@ Document history
Documentation process started 2015-07-17 by Stephen Boddy.
+---------------+------------+----------------------------+----------------------------+
| Updated for | Date | Author / Editor | Notes |
+===============+============+============================+============================+
| 0.97, r1598 | 2015-08-07 | Stephen Boddy | Initial creation |
+---------------+------------+----------------------------+----------------------------+
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 |
+--------------+------------+-----------------+--------------------------------+
.. 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

@ -97,8 +97,3 @@ Here's a brief run-down of keyboard and mouse use:
| Launch a layout | ``double-click`` | ``Return`` |
+--------------------------+------------------+---------------------+
.. note:: If an instance of Terminator is already running with DBus
active, you must either use the shortcut, or disable DBus
for the instance by also passing ``-u``. This needs to be
fixed.

View File

@ -23,8 +23,8 @@ licensing, so it is assumed that they fall under the applications
`GNU GPL v2 licence`_ insofar as it can be said to apply to
non-source code files.
The main **Terminator icon** created by *Cory Kontros*, and provided
under the `CC-BY-SA licence`_.
The main **Terminator icon** was created by *Cory Kontros*, and
provided under the `CC-BY-SA licence`_.
This **Manual** and **API documentation** are wholly new pieces
created by the current maintainer *Steve Boddy*, and are distributed

View File

@ -349,6 +349,12 @@ Command
If enabled and set, the users default shell will be replaced with
the command specified here.
.. note:: If you place an entry here note that there is no ``bash`` or
other shell underneath it. When the command ends, there
is no chance to drop to a shell or other program. This can
be worked around by using the shell line seperator ``;``
and a following ``bash`` command.
**When command exits** (default: Exit the terminal)
@ -610,6 +616,12 @@ the right become enabled, and can be changed.
Override the command run in the terminal, same as in a profile,
but this one has a higher priority. If empty, it will run the command
in the profile, or the default user shell.
.. note:: If you place an entry here note that there is no ``bash`` or
other shell underneath it. When the command ends, there
is no chance to drop to a shell or other program. This can
be worked around by using the shell line seperator ``;``
and a following ``bash`` command.
**Working directory**

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -409,11 +410,18 @@ Here you will see the port number, and you can simply use:</p>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">Whichever method you use the debug output is also dumped
<p>Whichever method you use the debug output is also dumped
into this terminal, even though it is already there in
the launching terminal. This can get rather annoying,
and seems counter-productive to me, so a way to turn
off the output in the debug console may be added.</p>
off the output in the debug console may be added. In
the meantime you can use:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">terminatorlib</span> <span class="kn">import</span> <span class="n">util</span>
<span class="gp">... </span><span class="n">util</span><span class="o">.</span><span class="n">DEBUG</span><span class="o">=</span><span class="bp">False</span>
</pre></div>
</div>
<p class="last">This should turn off the output, and let you explore the
internal structure more easily.</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>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -493,7 +494,7 @@ was not designed with this in mind, but improvements are always welcome!</p>
<li>Hide on lose focus: On</li>
<li>Hide from taskbar</li>
<li>Window borders: Off (use <code class="docutils literal"><span class="pre">Alt</span></code>+<code class="docutils literal"><span class="pre">click-drag</span></code> and
<code class="docutils literal"><span class="pre">Alt</span></code>+<code class="docutils literal"><span class="pre">right-click-drag</span></code> to position and size window.)</li>
<code class="docutils literal"><span class="pre">Alt</span></code>+<code class="docutils literal"><span class="pre">middle-click-drag</span></code> to position and size window.)</li>
<li>Set the Toggle window visibility shortcut to your preference</li>
</ul>
<div class="admonition note">

View File

@ -212,7 +212,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>

View File

@ -212,7 +212,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -351,10 +352,11 @@ they are more than welcome to create an Americanised
version, and I&#8217;ll relegate it to the en_US folder. The
default will remain British English.</p>
</div>
<p>In order to create the html for manual, you must have the sphinx_rtd_theme
package installed. This does not appear to be packaged for Ubuntu
14.04 LTS as far as I can tell. This means you must install it using
the pip tool. This may need installing on your system too with:</p>
<p>In order to create the html for the manual, you must have the
sphinx_rtd_theme package installed. This does not appear to be
packaged for Ubuntu 14.04 LTS as far as I can tell. This means you
must install it using the pip tool. This may need installing on your
system too with:</p>
<div class="highlight-python"><div class="highlight"><pre>sudo apt-get install python-pip
</pre></div>
</div>
@ -432,136 +434,130 @@ merged.</p>
<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,
looks like this:</p>
<div class="highlight-python"><div class="highlight"><pre>Enhancements which may, or may not, have a wishlist item
========================================================
Finish the WIP window icons
<div class="highlight-python"><div class="highlight"><pre>Enhancements which may or may not have a wishlist item
======================================================
Completely new features
Add libunity quicklist of saved layouts
https://wiki.ubuntu.com/Unity/LauncherAPI#Python_Example
http://www.techques.com/question/24-64436/Refreshing-of-Dynamic-Quicklist-doesn%27t-work-after-initialization
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.
Add a list of the default keybindings to the Preferences -&gt; Keybindings window?
Layouts
Layout Launcher
Could bind the shortcut as a global toggle to hide show
Could save
window position/size
hidden status
always on top
pin to visible workspace
Layout needs to save/load more settings
Per layout?
Group mode status (all, group, off)
Split to this group
Autoclean groups
Per window
always on top
pin to visible workspace
Per tab
Per terminal
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.
Add libunity quicklist of saved layouts
https://wiki.ubuntu.com/Unity/LauncherAPI#Python_Example
http://www.techques.com/question/24-64436/Refreshing-of-Dynamic-Quicklist-doesn%27t-work-after-initialization
http://people.canonical.com/~dpm/api/devel/GIR/python/Unity-3.0.html
Possibly use the progress bar and or counter for something too.
Missing shortcuts:
Just shortcut:
Context menu (in addition to Windows menu button - not always available on all keyboards)
Group menu
Open preferences
Change tab text (#1054300-patch), titlebar text, group name
Toggle titlebar visibility
Equalise the splitters (siblings/siblings+children/siblings+parents,all)
Zoom +receiver in/out/reset
Zoom all in/out/reset
New code:
Open a shortcut help overlay (Ctrl-F1?)
Insert tab text, titlebar text, group name value into terminal(s)
Last terminal / tab / window(again to jump back to original) #1440049
Limit broadcast group/all to current tab / window (toggle)
Broadcast temporarily off when maximised or zoomed to single term (toggle)
Add an appindicator menu for launching sessions.
Titlebar
Add large action/status icons for when titlebar is bigger.
Improve the look/spacing of the titlebar, i.e. the spacing around/between elements
Layout Launcher
Could bind the shortcut as a global toggle to hide show
Could save
window position/size
hidden status
always on top
pin to visible workspace
Tabs
right-click menu replicating GNOME-Terminals (move left/right, close, rename)
Layout needs to save/load more settings
Per layout?
Group mode status (all, group, off)
Split to this group
Autoclean groups
Per window
always on top
pin to visible workspace
Per tab
Per terminal
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.
Menus
Add acellerators (i.e. &quot;Shift+Ctr+O&quot;) might look too cluttered.
Preferences
Profiles
Add preselection to the profile tab
Layouts
Have changing widgets depending on what is selected in the tree
Terminal title editable
Button in prefs to duplicate a layout
Ordering in list
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
Config file
Items should be sorted for saving. Easier for comparing and spotting changes.
Give plugins ability to register shortcuts
Missing shortcuts:
Context menu (in addition to Windows menu button - not always available on all keyboards)
Group menu
Open preferences
Open a shortcut help overlay
Change tab text (#1054300-patch), titlebar text, group name
Toggle titlebar visibility
Equalise the splitters
Launch help (F1)
Zoom +receiver in/out/reset
Zoom all in/out/reset
Last terminal (again to jump back to original) #1440049
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
Improve DBus interface, add coordination between sessions, i.e.:
multiple DBus ports? register them with a master DBus session, be able to query these, etc
be able to drive them more with command line commands, and not just from within own shell
Remotinator improvements
Abstract out the session/layout allowing multiple logical layouts in the same process to reduce resource used
This is a big piece of work, as a lot of the Terminator class would need seperating out.
Hide window should find the last focussed window and hide that. Second hit unhides and focusses it
Add a power hide to hide all of shortcut bound instances windows
Use the dbus if available to hide the current active window, then unhide it on second shortcut press
If the dbus is available:
The hide will go to the focussed instance, instead of the first to grab the shortcut
Add a super power hide to hide all Terminator windows
In both cases a second shortcut unhides whatever was hidden
Major architectural
Improve DBus interface, add coordination between sessions, i.e.:
multiple DBus ports? register them with a master DBus session, be able to query these, etc
be able to drive them more with command line commands, and not just from within own shell
Remotinator improvements
Abstract out the session/layout allowing multiple logical layouts in the same process to reduce resource used
This is a big piece of work, as a lot of the Terminator class would need seperating out.
Hide window should find the last focussed window and hide that. Second hit unhides and focusses it
Add a power hide to hide all of shortcut bound instances windows
Use the dbus if available to hide the current active window, then unhide it on second shortcut press
If the dbus is available:
The hide will go to the focussed instance, instead of the first to grab the shortcut
Add a super power hide to hide all Terminator windows
In both cases a second shortcut unhides whatever was hidden
Split with command / Inherit command/workdir/groups etc
Somehow make Layout Launcher, Preferences, &amp; poss. Custom Commands singleton/borg (possibly use dbus)
Custom Commands is blocking, perhaps make non-blocking
Button in prefs to duplicate a layout
Check widget for close_button_on_tab in prefs.
When in zoomed/maximised mode
Perhaps the menu could contain a quick switch sub menu, rather than having to Restore, right-click, maximise
Shortcuts for next/prev,up/down/left/right, etc. How should they behave
Limit broadcast group/all to current tab
Broadcast off when maximised or zoomed to single term
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.
Add preselection to the profile tab
Figure out how to get the tree view to jump to selected row for prefseditor
Ability to insert window, titlebar, or group value into terminal(s)
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.
Add large action/status icons for when titlebar is bigger.
Issues encountered where not aware of any LP bug
================================================
Issues encountered which may, or may not, already have an LP bug
================================================================
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 &amp; gtk3. Intentional?
BUG: Issue if initial window (no tabs) has any splits, then creating new tab causes the first tab to be misnamed, gtk2 &amp; gtk3.
Also on GTK3 only (but cannot reproduce now): it also causes a problem if using the &quot;Menu&quot; key to open the context menu
on the unamed tab; it does not dissappear by clicking out of it.
BUG: Ctrl+right-click-drag does not work. Can initiate drag, but no targets work.
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 &amp; gtk3.
BUG: If first tab is split the tabs label width increases and pushes others off window gtk3 (in gtk2, the label shifts right, but other tabs OK)
BUG: With longer translations the buttons in the prefs sidebars can get chopped off.
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.
@ -573,7 +569,8 @@ BUG: Hide on lose focus broken. LP#843674
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.
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
@ -608,20 +605,20 @@ edges will be very much appreciated.</p>
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:
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/reimplment the DBUS for GTK3. GI seems incomplete with no Server. Try to get old style working again.
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.
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(8) FOR GTK3 items to be dealt with
VERIFY(8)/FIXME(7) FOR GTK3 items to be dealt with
For future with vte0.40+ - reimplment/restore the word_chars stuff.
For future with vte0.40+ - reimplement/restore the word_chars stuff.
Not fixable so far as I can see
===============================
@ -633,8 +630,8 @@ 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>
</div>
<div class="section" id="api-docs">
<h2>API Docs<a class="headerlink" href="#api-docs" title="Permalink to this headline"></a></h2>
<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>
<p>Strictly speaking this isn&#8217;t an API as such, because it is just using
sphinx-apidoc over the Terminator code base. It&#8217;s perhaps helpful to
have this as a document that can be browsed.</p>
@ -651,6 +648,66 @@ sidebar; all <code class="docutils literal"><span class="pre">.py</span></code>
then even less is displayed in the sidebar.) If you can help, join
the A-Team... Or better yet, send me some changes that fix this.</p>
</div>
<div class="section" id="other-docs-for-developers">
<h2>Other Docs for Developers<a class="headerlink" href="#other-docs-for-developers" title="Permalink to this headline"></a></h2>
<p>Here is a list of some useful sets of documentation:</p>
<table border="1" class="docutils">
<colgroup>
<col width="29%" />
<col width="71%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td colspan="2"><strong>General</strong></td>
</tr>
<tr class="row-even"><td>Python</td>
<td><a class="reference external" href="https://docs.python.org/release/2.7/index.html">https://docs.python.org/release/2.7/index.html</a></td>
</tr>
<tr class="row-odd"><td>GNOME Dev. Center</td>
<td><a class="reference external" href="https://developer.gnome.org/">https://developer.gnome.org/</a></td>
</tr>
<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>
<tr class="row-even"><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>
<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>
<tr class="row-odd"><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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<td><a class="reference external" href="https://developer.gnome.org/vte/0.38/">https://developer.gnome.org/vte/0.38/</a></td>
</tr>
</tbody>
</table>
</div>
</div>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -274,23 +275,31 @@ some of Terminators more powerful features if you do.</p>
completely abandoned. Lets look again at the basic interface, but with
the two primary menus showing:</p>
<img alt="_images/window_breakdown.png" src="_images/window_breakdown.png" />
<ol class="arabic simple">
<li><a class="reference internal" href="#context-menu"><span>The Context Menu</span></a> -
This is the main menu reached with <code class="docutils literal"><span class="pre">right-click</span></code> over a terminal, and
will let you access all the settings, profiles, shortcuts and
configurations. It is however kept brief to avoid the mega-menus that
sometimes grow unchecked.</li>
<li><a class="reference internal" href="grouping.html#grouping-menu"><span>The Grouping Menu</span></a> -
This is reached with a <code class="docutils literal"><span class="pre">click</span></code> on the trio of coloured boxes in the
titlebar. Later, when we cover Grouping and broadcasting to multiple
terminals we will cover this properly. For now it is enough to know
where it is and how to trigger it.</li>
</ol>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">You will never see a window that looks like this, as it is
impossible to have both menus up at the same time.</p>
</div>
<ol class="arabic">
<li><p class="first"><a class="reference internal" href="#context-menu"><span>The Context Menu</span></a> -
This is the main menu reached with <code class="docutils literal"><span class="pre">right-click</span></code> over a terminal, and
will let you access all the settings, profiles, shortcuts and
configurations. It is however kept brief to avoid the mega-menus that
sometimes grow unchecked.</p>
</li>
<li><p class="first"><a class="reference internal" href="grouping.html#grouping-menu"><span>The Grouping Menu</span></a> -
This is reached with a <code class="docutils literal"><span class="pre">click</span></code> on the trio of coloured boxes in the
titlebar. Later, when we cover Grouping and broadcasting to multiple
terminals we will cover this properly. For now it is enough to know
where it is and how to trigger it.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">By default titlebars are shown. If the titlebar has been
hidden <a class="reference internal" href="grouping.html#grouping-menu"><span>The Grouping Menu</span></a> functions will be added as a
sub-menu to <a class="reference internal" href="#context-menu"><span>The Context Menu</span></a>.</p>
</div>
</li>
</ol>
<div class="section" id="the-context-menu">
<span id="context-menu"></span><h2>The Context Menu<a class="headerlink" href="#the-context-menu" title="Permalink to this headline"></a></h2>
<p>The context menu is split into five parts. The first part is the standard
@ -594,7 +603,9 @@ an existing terminal.</p>
<p>The above action results in the following:</p>
<img alt="_images/dragterminal_02.png" src="_images/dragterminal_02.png" />
<p>The other way to drag a terminal can be done from within the terminal with
<code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">right-click-drag</span></code>.</p>
<code class="docutils literal"><span class="pre">Ctrl</span></code>+<code class="docutils literal"><span class="pre">right-click-drag</span></code>. With this method once you start the
grag, you <em>must</em> release the <code class="docutils literal"><span class="pre">Ctrl</span></code> key <em>before</em> releasing the
<code class="docutils literal"><span class="pre">right-mouse-button</span></code>. If you do not the drag will cancel.</p>
<p>You can drag between tabs by initiating a drag and hovering over the tab.
Terminator will switch to the tab under the cursor, and the terminal can be
dropped.</p>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -257,12 +258,13 @@
<div class="section" id="document-history">
<h1>Document history<a class="headerlink" href="#document-history" title="Permalink to this headline"></a></h1>
<p>Documentation process started 2015-07-17 by Stephen Boddy.</p>
<p>All contributions and improvements are welcome.</p>
<table border="1" class="docutils">
<colgroup>
<col width="18%" />
<col width="14%" />
<col width="34%" />
<col width="34%" />
<col width="19%" />
<col width="16%" />
<col width="23%" />
<col width="43%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Updated for</th>
@ -277,6 +279,12 @@
<td>Stephen Boddy</td>
<td>Initial creation</td>
</tr>
<tr class="row-odd"><td>0.97, r1621</td>
<td>2015-08-21</td>
<td>Stephen Boddy</td>
<td>Minor changes/corrections <br />
Added links to dev docs</td>
</tr>
</tbody>
</table>
<div class="admonition note">

View File

@ -212,7 +212,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -353,7 +354,8 @@ but I&#8217;m not putting real work into the documentation.</p>
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -345,13 +346,6 @@ workspace.</p>
</tr>
</tbody>
</table>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If an instance of Terminator is already running with DBus
active, you must either use the shortcut, or disable DBus
for the instance by also passing <code class="docutils literal"><span class="pre">-u</span></code>. This needs to be
fixed.</p>
</div>
</div>
</div>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -266,8 +267,8 @@ is licensed under the <a class="reference external" href="http://opensource.org/
licensing, so it is assumed that they fall under the applications
<a class="reference external" href="https://gnu.org/licenses/old-licenses/gpl-2.0.html">GNU GPL v2 licence</a> insofar as it can be said to apply to
non-source code files.</p>
<p>The main <strong>Terminator icon</strong> created by <em>Cory Kontros</em>, and provided
under the <a class="reference external" href="http://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA licence</a>.</p>
<p>The main <strong>Terminator icon</strong> was created by <em>Cory Kontros</em>, and
provided under the <a class="reference external" href="http://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA licence</a>.</p>
<p>This <strong>Manual</strong> and <strong>API documentation</strong> are wholly new pieces
created by the current maintainer <em>Steve Boddy</em>, and are distributed
under the <a class="reference external" href="http://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA licence</a>, as are the horrific attempts by yours

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>

View File

@ -213,7 +213,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>
@ -574,8 +575,17 @@ or with <a class="reference internal" href="advancedusage.html#command-line-opti
shell.</div></blockquote>
<p><strong>Custom command</strong> (default: inactive, empty)</p>
<blockquote>
<div>If enabled and set, the users default shell will be replaced with
the command specified here.</div></blockquote>
<div><p>If enabled and set, the users default shell will be replaced with
the command specified here.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If you place an entry here note that there is no <code class="docutils literal"><span class="pre">bash</span></code> or
other shell underneath it. When the command ends, there
is no chance to drop to a shell or other program. This can
be worked around by using the shell line seperator <code class="docutils literal"><span class="pre">;</span></code>
and a following <code class="docutils literal"><span class="pre">bash</span></code> command.</p>
</div>
</div></blockquote>
<p><strong>When command exits</strong> (default: Exit the terminal)</p>
<blockquote>
<div><p>When the running command exits (default or custom) what action
@ -810,9 +820,18 @@ layout.</p>
<a class="reference internal" href="#prefs-profiles"><span>Profiles</span></a> tab.</div></blockquote>
<p><strong>Custom command</strong></p>
<blockquote>
<div>Override the command run in the terminal, same as in a profile,
<div><p>Override the command run in the terminal, same as in a profile,
but this one has a higher priority. If empty, it will run the command
in the profile, or the default user shell.</div></blockquote>
in the profile, or the default user shell.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If you place an entry here note that there is no <code class="docutils literal"><span class="pre">bash</span></code> or
other shell underneath it. When the command ends, there
is no chance to drop to a shell or other program. This can
be worked around by using the shell line seperator <code class="docutils literal"><span class="pre">;</span></code>
and a following <code class="docutils literal"><span class="pre">bash</span></code> command.</p>
</div>
</div></blockquote>
<p><strong>Working directory</strong></p>
<blockquote>
<div>Whatever command is run (from layout, profile, or user default) it

View File

@ -211,7 +211,8 @@
<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>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#api-docs">API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#terminator-api-docs">Terminator API Docs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#other-docs-for-developers">Other Docs for Developers</a></li>
</ul>
</li>
</ul>

File diff suppressed because one or more lines are too long

View File

@ -201,7 +201,14 @@ Here you will see the port number, and you can simply use::
into this terminal, even though it is already there in
the launching terminal. This can get rather annoying,
and seems counter-productive to me, so a way to turn
off the output in the debug console may be added.
off the output in the debug console may be added. In
the meantime you can use::
>>> from terminatorlib import util
... util.DEBUG=False
This should turn off the output, and let you explore the
internal structure more easily.
The debug options and their usage are detailed
:ref:`here <command-line-options-debugging>`.

View File

@ -205,128 +205,130 @@ 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,
looks like this::
Enhancements which may, or may not, have a wishlist item
========================================================
Finish the WIP window icons
Enhancements which may or may not have a wishlist item
======================================================
Completely new features
Add libunity quicklist of saved layouts
https://wiki.ubuntu.com/Unity/LauncherAPI#Python_Example
http://www.techques.com/question/24-64436/Refreshing-of-Dynamic-Quicklist-doesn%27t-work-after-initialization
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.
Add a list of the default keybindings to the Preferences -> Keybindings window?
Layouts
Layout Launcher
Could bind the shortcut as a global toggle to hide show
Could save
window position/size
hidden status
always on top
pin to visible workspace
Layout needs to save/load more settings
Per layout?
Group mode status (all, group, off)
Split to this group
Autoclean groups
Per window
always on top
pin to visible workspace
Per tab
Per terminal
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.
Add libunity quicklist of saved layouts
https://wiki.ubuntu.com/Unity/LauncherAPI#Python_Example
http://www.techques.com/question/24-64436/Refreshing-of-Dynamic-Quicklist-doesn%27t-work-after-initialization
http://people.canonical.com/~dpm/api/devel/GIR/python/Unity-3.0.html
Possibly use the progress bar and or counter for something too.
Missing shortcuts:
Just shortcut:
Context menu (in addition to Windows menu button - not always available on all keyboards)
Group menu
Open preferences
Change tab text (#1054300-patch), titlebar text, group name
Toggle titlebar visibility
Equalise the splitters (siblings/siblings+children/siblings+parents,all)
Zoom +receiver in/out/reset
Zoom all in/out/reset
New code:
Open a shortcut help overlay (Ctrl-F1?)
Insert tab text, titlebar text, group name value into terminal(s)
Last terminal / tab / window(again to jump back to original) #1440049
Limit broadcast group/all to current tab / window (toggle)
Broadcast temporarily off when maximised or zoomed to single term (toggle)
Add an appindicator menu for launching sessions.
Titlebar
Add large action/status icons for when titlebar is bigger.
Improve the look/spacing of the titlebar, i.e. the spacing around/between elements
Layout Launcher
Could bind the shortcut as a global toggle to hide show
Could save
window position/size
hidden status
always on top
pin to visible workspace
Tabs
right-click menu replicating GNOME-Terminals (move left/right, close, rename)
Layout needs to save/load more settings
Per layout?
Group mode status (all, group, off)
Split to this group
Autoclean groups
Per window
always on top
pin to visible workspace
Per tab
Per terminal
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.
Menus
Add acellerators (i.e. "Shift+Ctr+O") might look too cluttered.
Preferences
Profiles
Add preselection to the profile tab
Layouts
Have changing widgets depending on what is selected in the tree
Terminal title editable
Button in prefs to duplicate a layout
Ordering in list
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
Config file
Items should be sorted for saving. Easier for comparing and spotting changes.
Give plugins ability to register shortcuts
Missing shortcuts:
Context menu (in addition to Windows menu button - not always available on all keyboards)
Group menu
Open preferences
Open a shortcut help overlay
Change tab text (#1054300-patch), titlebar text, group name
Toggle titlebar visibility
Equalise the splitters
Launch help (F1)
Zoom +receiver in/out/reset
Zoom all in/out/reset
Last terminal (again to jump back to original) #1440049
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
Improve DBus interface, add coordination between sessions, i.e.:
multiple DBus ports? register them with a master DBus session, be able to query these, etc
be able to drive them more with command line commands, and not just from within own shell
Remotinator improvements
Abstract out the session/layout allowing multiple logical layouts in the same process to reduce resource used
This is a big piece of work, as a lot of the Terminator class would need seperating out.
Hide window should find the last focussed window and hide that. Second hit unhides and focusses it
Add a power hide to hide all of shortcut bound instances windows
Use the dbus if available to hide the current active window, then unhide it on second shortcut press
If the dbus is available:
The hide will go to the focussed instance, instead of the first to grab the shortcut
Add a super power hide to hide all Terminator windows
In both cases a second shortcut unhides whatever was hidden
Major architectural
Improve DBus interface, add coordination between sessions, i.e.:
multiple DBus ports? register them with a master DBus session, be able to query these, etc
be able to drive them more with command line commands, and not just from within own shell
Remotinator improvements
Abstract out the session/layout allowing multiple logical layouts in the same process to reduce resource used
This is a big piece of work, as a lot of the Terminator class would need seperating out.
Hide window should find the last focussed window and hide that. Second hit unhides and focusses it
Add a power hide to hide all of shortcut bound instances windows
Use the dbus if available to hide the current active window, then unhide it on second shortcut press
If the dbus is available:
The hide will go to the focussed instance, instead of the first to grab the shortcut
Add a super power hide to hide all Terminator windows
In both cases a second shortcut unhides whatever was hidden
Split with command / Inherit command/workdir/groups etc
Somehow make Layout Launcher, Preferences, & poss. Custom Commands singleton/borg (possibly use dbus)
Custom Commands is blocking, perhaps make non-blocking
Button in prefs to duplicate a layout
Check widget for close_button_on_tab in prefs.
When in zoomed/maximised mode
Perhaps the menu could contain a quick switch sub menu, rather than having to Restore, right-click, maximise
Shortcuts for next/prev,up/down/left/right, etc. How should they behave
Limit broadcast group/all to current tab
Broadcast off when maximised or zoomed to single term
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.
Add preselection to the profile tab
Figure out how to get the tree view to jump to selected row for prefseditor
Ability to insert window, titlebar, or group value into terminal(s)
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.
Add large action/status icons for when titlebar is bigger.
Issues encountered where not aware of any LP bug
================================================
Issues encountered which may, or may not, already have an LP bug
================================================================
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 & gtk3. Intentional?
BUG: Zoom and maximise do not work if single terminal in a tab, gtk2 & gtk3.
BUG: If first tab is split the tabs label width increases and pushes others off window gtk3 (in gtk2, the label shifts right, but other tabs OK)
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.
@ -338,7 +340,8 @@ looks like this::
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.
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.
@ -383,20 +386,20 @@ For the record, as of August 2015, with the `gtk3 branch`_ at revision
Outstanding GTK3 tasks/items/reviews etc remaining
===================================================
Outstanding trunk revisions:
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/reimplment the DBUS for GTK3. GI seems incomplete with no Server. Try to get old style working again.
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.
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(8) FOR GTK3 items to be dealt with
VERIFY(8)/FIXME(7) FOR GTK3 items to be dealt with
For future with vte0.40+ - reimplment/restore the word_chars stuff.
For future with vte0.40+ - reimplement/restore the word_chars stuff.
Not fixable so far as I can see
===============================
@ -412,7 +415,7 @@ us for a long time yet, but this should serve as a warning.
.. _gtk3 branch: https://code.launchpad.net/~gnome-terminator/terminator/gtk3
--------------------------
API Docs
Terminator API Docs
--------------------------
Strictly speaking this isn't an API as such, because it is just using
@ -435,3 +438,62 @@ then even less is displayed in the sidebar.) If you can help, join
the A-Team... Or better yet, send me some changes that fix this.
.. _Terminator API docs: ../apidoc/index.html
--------------------------
Other Docs for Developers
--------------------------
Here is a list of some useful sets of documentation:
+---------------------------+-------------------------------------------------------------------+
| **General** |
+---------------------------+-------------------------------------------------------------------+
| Python | https://docs.python.org/release/2.7/index.html |
+---------------------------+-------------------------------------------------------------------+
| GNOME Dev. Center | https://developer.gnome.org/ |
+---------------------------+-------------------------------------------------------------------+
| Bazaar DVCS | http://doc.bazaar.canonical.com/en/ |
+---------------------------+-------------------------------------------------------------------+
| **GTK 2** |
+---------------------------+-------------------------------------------------------------------+
| PyGTK | https://developer.gnome.org/pygtk/stable/ |
+---------------------------+-------------------------------------------------------------------+
| VTE for GTK 2 | https://developer.gnome.org/vte/0.28/ |
+---------------------------+-------------------------------------------------------------------+
| **GTK 3** |
+---------------------------+-------------------------------------------------------------------+
| GObject Introspection | https://wiki.gnome.org/Projects/GObjectIntrospection |
+---------------------------+-------------------------------------------------------------------+
| GObject | https://developer.gnome.org/gobject/stable/ |
+---------------------------+-------------------------------------------------------------------+
| PyGObject Introspection | https://wiki.gnome.org/Projects/PyGObject |
+---------------------------+-------------------------------------------------------------------+
| PyGObject | https://developer.gnome.org/pygobject/stable/ |
+---------------------------+-------------------------------------------------------------------+
| Many PIGO autodocs | http://lazka.github.io/pgi-docs/ |
+---------------------------+-------------------------------------------------------------------+
| GDK3 Ref. Manual | https://developer.gnome.org/gdk3/stable/ |
+---------------------------+-------------------------------------------------------------------+
| GTK3 Ref. Manual | https://developer.gnome.org/gtk3/stable/index.html |
+---------------------------+-------------------------------------------------------------------+
| Python GTK+ 3 Tutorial | http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html |
+---------------------------+-------------------------------------------------------------------+
| VTE for GTK 3 | https://developer.gnome.org/vte/0.38/ |
+---------------------------+-------------------------------------------------------------------+

View File

@ -36,6 +36,9 @@ the two primary menus showing:
.. image:: imgs/window_breakdown.png
.. note:: You will never see a window that looks like this, as it is
impossible to have both menus up at the same time.
#. :ref:`context-menu` -
This is the main menu reached with ``right-click`` over a terminal, and
will let you access all the settings, profiles, shortcuts and
@ -47,8 +50,9 @@ the two primary menus showing:
terminals we will cover this properly. For now it is enough to know
where it is and how to trigger it.
.. note:: You will never see a window that looks like this, as it is
impossible to have both menus up at the same time.
.. note:: By default titlebars are shown. If the titlebar has been
hidden :ref:`grouping-menu` functions will be added as a
sub-menu to :ref:`context-menu`.
.. _context-menu:

View File

@ -1,3 +1,7 @@
.. |br| raw:: html
<br />
.. image:: imgs/icon_history.png
:align: right
:alt: Every'ding come from de Greek!
@ -8,11 +12,16 @@ Document history
Documentation process started 2015-07-17 by Stephen Boddy.
+---------------+------------+----------------------------+----------------------------+
| Updated for | Date | Author / Editor | Notes |
+===============+============+============================+============================+
| 0.97, r1598 | 2015-08-07 | Stephen Boddy | Initial creation |
+---------------+------------+----------------------------+----------------------------+
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 |
+--------------+------------+-----------------+--------------------------------+
.. 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: 73 KiB

View File

@ -97,8 +97,3 @@ Here's a brief run-down of keyboard and mouse use:
| Launch a layout | ``double-click`` | ``Return`` |
+--------------------------+------------------+---------------------+
.. note:: If an instance of Terminator is already running with DBus
active, you must either use the shortcut, or disable DBus
for the instance by also passing ``-u``. This needs to be
fixed.

View File

@ -349,6 +349,12 @@ Command
If enabled and set, the users default shell will be replaced with
the command specified here.
.. note:: If you place an entry here note that there is no ``bash`` or
other shell underneath it. When the command ends, there
is no chance to drop to a shell or other program. This can
be worked around by using the shell line seperator ``;``
and a following ``bash`` command.
**When command exits** (default: Exit the terminal)
@ -610,6 +616,12 @@ the right become enabled, and can be changed.
Override the command run in the terminal, same as in a profile,
but this one has a higher priority. If empty, it will run the command
in the profile, or the default user shell.
.. note:: If you place an entry here note that there is no ``bash`` or
other shell underneath it. When the command ends, there
is no chance to drop to a shell or other program. This can
be worked around by using the shell line seperator ``;``
and a following ``bash`` command.
**Working directory**