terminator/doc/manual/_build/html/advancedusage.html

614 lines
34 KiB
HTML

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Advanced Usage &mdash; Terminator 1.0 alpha documentation</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="top" title="Terminator 1.0 alpha documentation" href="index.html"/>
<link rel="next" title="Frequently Asked Questions" href="faq.html"/>
<link rel="prev" title="Plugins" href="plugins.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> Terminator
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing</a></li>
<li class="toctree-l1"><a class="reference internal" href="history.html">Document history</a></li>
<li class="toctree-l1"><a class="reference internal" href="gettingstarted.html">Getting Started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#the-context-menu">The Context Menu</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#navigating-around">Navigating around</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#click-able-items">Click-able items</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#changing-the-current-layout">Changing the current layout</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#using-the-splitters">Using the splitters</a></li>
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#dragging-and-dropping-a-terminal">Dragging and dropping a terminal</a></li>
<li class="toctree-l3"><a class="reference internal" href="gettingstarted.html#using-the-keyboard">Using the keyboard</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#resetting-the-terminal">Resetting the terminal</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#the-scrollbar-and-scrollback-buffer">The scrollbar and scrollback buffer</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#search-the-buffer">Search the buffer</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#zooming-the-terminal">Zooming the terminal</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#setting-titles">Setting Titles</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#insert-terminal-number">Insert terminal number</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettingstarted.html#next-prev-profile">Next/Prev profile</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="preferences.html">Preferences Window</a><ul>
<li class="toctree-l2"><a class="reference internal" href="preferences.html#global">Global</a><ul>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#behaviour">Behaviour</a></li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#appearance">Appearance</a></li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#terminal-titlebar">Terminal Titlebar</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="preferences.html#profiles">Profiles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#general">General</a><ul>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#cursor">Cursor</a></li>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#terminal-bell">Terminal bell</a></li>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#not-in-terminator">Not in Terminator</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#command">Command</a><ul>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#id1">Not in Terminator</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#colours">Colours</a><ul>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#foreground-and-background">Foreground and Background</a></li>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#palette">Palette</a></li>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#id2">Not in Terminator</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#background">Background</a></li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#scrolling">Scrolling</a></li>
<li class="toctree-l3"><a class="reference internal" href="preferences.html#compatibility">Compatibility</a><ul>
<li class="toctree-l4"><a class="reference internal" href="preferences.html#encoding">Encoding</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="preferences.html#layouts">Layouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="preferences.html#keybindings">Keybindings</a></li>
<li class="toctree-l2"><a class="reference internal" href="preferences.html#plugins">Plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="preferences.html#about">About</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="layouts.html">Layouts and the Layout Launcher</a><ul>
<li class="toctree-l2"><a class="reference internal" href="layouts.html#the-layout-launcher">The Layout Launcher</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="grouping.html">The Grouping Menu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="grouping.html#manipulating-terminal-groups">Manipulating terminal groups</a></li>
<li class="toctree-l2"><a class="reference internal" href="grouping.html#broadcasting-input-to-multiple-terminals">Broadcasting input to multiple terminals</a></li>
<li class="toctree-l2"><a class="reference internal" href="grouping.html#insert-terminal-number">Insert terminal number</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="plugins.html">Plugins</a><ul>
<li class="toctree-l2"><a class="reference internal" href="plugins.html#included-plugins">Included plugins</a><ul>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#activity-watch">Activity Watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#apt-url-handler">APT URL Handler</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#custom-commands-menu">Custom Commands Menu</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#inactivity-watch">Inactivity Watch</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#launchpad-bug-url-handler">Launchpad Bug URL Handler</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#launchpad-code-url-handler">Launchpad Code URL Handler</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#logger">Logger</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#maven-plugin-url-handler">Maven Plugin URL Handler</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#terminal-shot">Terminal Shot</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#test-plugin">Test Plugin</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="plugins.html#third-party-plugins">Third party plugins</a></li>
<li class="toctree-l2"><a class="reference internal" href="plugins.html#installing-a-plugin">Installing a plugin</a></li>
<li class="toctree-l2"><a class="reference internal" href="plugins.html#creating-your-own-plugins">Creating your own plugins</a><ul>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#the-basics-of-a-plugin">The basics of a plugin</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#url-handlers">URL Handlers</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#context-menu-items">Context menu items</a></li>
<li class="toctree-l3"><a class="reference internal" href="plugins.html#wrap-up">Wrap up</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Advanced Usage</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#command-line-options">Command line options</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#general-options">General options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#window-options">Window options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#shell-options">Shell options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#layout-options">Layout options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#custom-window-manager-options">Custom Window Manager options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#debugging-options">Debugging options</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#the-config-file">The Config file</a></li>
<li class="toctree-l2"><a class="reference internal" href="#debugging">Debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="#dbus">DBus</a></li>
<li class="toctree-l2"><a class="reference internal" href="#remotinator">Remotinator</a></li>
</ul>
</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>
<li class="toctree-l4"><a class="reference internal" href="faq.html#memory-use-the-sensible-way">Memory use - The sensible way</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#python-sucks">&#8220;Python sucks!&#8221;</a></li>
<li class="toctree-l4"><a class="reference internal" href="faq.html#in-summary">In summary</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="faq.html#how-do-i">How do I...</a><ul>
<li class="toctree-l3"><a class="reference internal" href="faq.html#make-terminator-work-like-quake-style-terminals">...make Terminator work like Quake style terminals?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gettinginvolved.html">Getting involved</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#translations">Translations</a></li>
<li class="toctree-l2"><a class="reference internal" href="gettinginvolved.html#improve-icons-artwork">Improve icons/artwork</a></li>
<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#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#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>
</div>
&nbsp;
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Terminator</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Advanced Usage</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/advancedusage.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document">
<img alt="Cos it's blue... Like the T-X." class="align-right" src="_images/icon_advanced.png" />
<div class="section" id="advanced-usage">
<span id="advance-usage"></span><h1>Advanced Usage<a class="headerlink" href="#advanced-usage" title="Permalink to this headline"></a></h1>
<p>This is a grab-bag of topics that cover the bits you probably wouldn&#8217;t
use in day-to-day activities.</p>
<div class="section" id="command-line-options">
<span id="id1"></span><h2>Command line options<a class="headerlink" href="#command-line-options" title="Permalink to this headline"></a></h2>
<p>Various options can be passed to Terminator at startup time to change
numerous aspects and behaviour.</p>
<p>The following option sub-sections can also be seen in the manual page
for Terminator:</p>
<div class="highlight-python"><div class="highlight"><pre>man terminator
</pre></div>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">I&#8217;ve rearranged and grouped the options compared to how they
would appear using the <code class="docutils literal"><span class="pre">-h</span></code> option just to aid clarity.</p>
</div>
<div class="section" id="general-options">
<h3>General options<a class="headerlink" href="#general-options" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">-h</span></code>, <code class="docutils literal"><span class="pre">--help</span></code></dt>
<dd>Show a help message and exit</dd>
<dt><code class="docutils literal"><span class="pre">-v</span></code>, <code class="docutils literal"><span class="pre">--version</span></code></dt>
<dd>Display program version</dd>
<dt><code class="docutils literal"><span class="pre">-g</span> <span class="pre">CONFIG</span></code>, <code class="docutils literal"><span class="pre">--config=CONFIG</span></code></dt>
<dd>Specify a config file</dd>
<dt><code class="docutils literal"><span class="pre">--new-tab</span></code></dt>
<dd>If Terminator is already running, just open a new tab</dd>
<dt><code class="docutils literal"><span class="pre">-p</span> <span class="pre">PROFILE</span></code>, <code class="docutils literal"><span class="pre">--profile=PROFILE</span></code></dt>
<dd>Use a different profile as the default</dd>
<dt><code class="docutils literal"><span class="pre">-u</span></code>, <code class="docutils literal"><span class="pre">--no-dbus</span></code></dt>
<dd>Disable <a class="reference internal" href="#dbus"><span>DBus</span></a></dd>
</dl>
</div>
<div class="section" id="window-options">
<h3>Window options<a class="headerlink" href="#window-options" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">-m</span></code>, <code class="docutils literal"><span class="pre">--maximise</span></code></dt>
<dd>Maximise the window</dd>
<dt><code class="docutils literal"><span class="pre">-f</span></code>, <code class="docutils literal"><span class="pre">--fullscreen</span></code></dt>
<dd>Make the window fill the screen</dd>
<dt><code class="docutils literal"><span class="pre">-b</span></code>, <code class="docutils literal"><span class="pre">--borderless</span></code></dt>
<dd>Disable window borders</dd>
<dt><code class="docutils literal"><span class="pre">-H</span></code>, <code class="docutils literal"><span class="pre">--hidden</span></code></dt>
<dd>Hide the window at startup</dd>
<dt><code class="docutils literal"><span class="pre">--geometry=GEOMETRY</span></code></dt>
<dd>Set the preferred size and position of the window(see X man page)</dd>
<dt><code class="docutils literal"><span class="pre">-T</span> <span class="pre">FORCEDTITLE</span></code>, <code class="docutils literal"><span class="pre">--title=FORCEDTITLE</span></code></dt>
<dd>Specify a title for the window</dd>
<dt><code class="docutils literal"><span class="pre">-i</span> <span class="pre">FORCEDICON</span></code>, <code class="docutils literal"><span class="pre">--icon=FORCEDICON</span></code></dt>
<dd>Set a custom icon for the window (by file or name)</dd>
</dl>
</div>
<div class="section" id="shell-options">
<h3>Shell options<a class="headerlink" href="#shell-options" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">-e</span> <span class="pre">COMMAND</span></code>, <code class="docutils literal"><span class="pre">--command=COMMAND</span></code></dt>
<dd>Specify a command to execute inside the terminal</dd>
<dt><code class="docutils literal"><span class="pre">-x</span></code>, <code class="docutils literal"><span class="pre">--execute</span></code></dt>
<dd>Use the rest of the command line as a command to execute inside the
terminal, and its arguments</dd>
<dt><code class="docutils literal"><span class="pre">--working-directory=DIR</span></code></dt>
<dd>Set the working directory</dd>
</dl>
</div>
<div class="section" id="layout-options">
<h3>Layout options<a class="headerlink" href="#layout-options" title="Permalink to this headline"></a></h3>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">-l</span> <span class="pre">LAYOUT</span></code>, <code class="docutils literal"><span class="pre">--layout=LAYOUT</span></code></dt>
<dd>Launch with the given layout</dd>
<dt><code class="docutils literal"><span class="pre">-s</span></code>, <code class="docutils literal"><span class="pre">--select-layout</span></code></dt>
<dd>Select a layout from a list</dd>
</dl>
</div>
<div class="section" id="custom-window-manager-options">
<h3>Custom Window Manager options<a class="headerlink" href="#custom-window-manager-options" title="Permalink to this headline"></a></h3>
<p>These settings are for people with heavy customisations to their
window manager. Some window managers allow various rules to be
applied, or actions to be taken, depending on how the window
system perceives the window. These settings facilitate that.</p>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">-c</span> <span class="pre">CLASSNAME</span></code>, <code class="docutils literal"><span class="pre">--classname=CLASSNAME</span></code></dt>
<dd>Set a custom name (WM_CLASS) property on the window</dd>
<dt><code class="docutils literal"><span class="pre">-r</span> <span class="pre">ROLE</span></code>, <code class="docutils literal"><span class="pre">--role=ROLE</span></code></dt>
<dd>Set a custom WM_WINDOW_ROLE property on the window</dd>
</dl>
</div>
<div class="section" id="debugging-options">
<span id="command-line-options-debugging"></span><h3>Debugging options<a class="headerlink" href="#debugging-options" title="Permalink to this headline"></a></h3>
<p>See <a class="reference internal" href="#debugging"><span>Debugging</span></a> for more explanation of these options.</p>
<dl class="docutils">
<dt><code class="docutils literal"><span class="pre">-d</span></code>, <code class="docutils literal"><span class="pre">--debug</span></code></dt>
<dd>Enable debugging information (twice for debug server)</dd>
<dt><code class="docutils literal"><span class="pre">--debug-classes=DEBUG_CLASSES</span></code></dt>
<dd>Comma separated list of classes to limit debugging to</dd>
<dt><code class="docutils literal"><span class="pre">--debug-methods=DEBUG_METHODS</span></code></dt>
<dd>Comma separated list of methods to limit debugging to</dd>
</dl>
</div>
</div>
<div class="section" id="the-config-file">
<span id="config-file"></span><h2>The Config file<a class="headerlink" href="#the-config-file" title="Permalink to this headline"></a></h2>
<p>The default configuration file file for Terminator is stored in the
standard path for configuration files. It can be found at:</p>
<div class="highlight-python"><div class="highlight"><pre>${HOME}/.config/terminator/config
</pre></div>
</div>
<p>It is human readable, and can be edited if you are are careful. This
is not generally recommended though, and you are, of course, strongly
advised to make a backup before making manual changes.</p>
<p>There are many more specific details in the manual page:</p>
<div class="highlight-python"><div class="highlight"><pre>man terminator_config
</pre></div>
</div>
</div>
<div class="section" id="debugging">
<span id="id2"></span><h2>Debugging<a class="headerlink" href="#debugging" title="Permalink to this headline"></a></h2>
<p>There is inbuilt debugging features in Terminator. The simplest is to
start Terminator from another terminal with the option <code class="docutils literal"><span class="pre">-d</span></code>. This
will dump many debug statements to the launch terminal.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">If the DBus is active in any other Terminator, then by
default your attempt to launch with debug will launch
a new window under the already running process. To prevent
this you can use the <code class="docutils literal"><span class="pre">-u</span></code> option which will disable the
DBus interaction for the debugged instance of Terminator.</p>
</div>
<p>There is a lot of output, and a great deal of it will typically not
be related to the area you are looking into. There are two more
options that can be passed that limit the amount of debug lines to
classes or methods of interest. See <a class="reference internal" href="#command-line-options-debugging"><span>Debugging options</span></a>
for the detail.</p>
<img alt="_images/context_open_debug_tab.png" class="align-right" src="_images/context_open_debug_tab.png" />
<p>The final facility is to start a debug server by passing <code class="docutils literal"><span class="pre">-dd</span></code> (this
is the same as <code class="docutils literal"><span class="pre">-d</span> <span class="pre">-d</span></code>) which will start a debug server. With this
setting a fourth item, <strong>Open Debug Tab</strong>, also appears in the second
part of the <a class="reference internal" href="gettingstarted.html#context-menu"><span>The Context Menu</span></a>, as highlighted in the image to the
right.</p>
<p>Selecting it will give the following new tab with dedicated debug
terminal:</p>
<img alt="_images/debug_tab.png" src="_images/debug_tab.png" />
<p>This prompt is a standard Python interactive prompt, but this is
connected to the Terminator instance. You can explore the applications
data structures, classes, etc. and can even call functions and methods.</p>
<p>Alternatively, instead of launching this tab, you could connect to the
debug server from a different window. This requires that you search
back through the debug output for the line containing &#8220;listening on&#8221;.
Here you will see the port number, and you can simply use:</p>
<div class="highlight-python"><div class="highlight"><pre>$ telnet localhost &lt;port&gt;
</pre></div>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<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. 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>
<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>
<div class="section" id="dbus">
<span id="id3"></span><h2>DBus<a class="headerlink" href="#dbus" title="Permalink to this headline"></a></h2>
<p>DBus is a standardized form of IPC, or Inter-Process Communication.
More detail about the internals of DBus can be found at the
<a class="reference external" href="http://www.freedesktop.org/wiki/Software/dbus/">freedesktop.org</a> for DBus.</p>
<p>In Terminator we currently use DBus for two tasks:</p>
<ul>
<li><p class="first">Only run one instance of Terminator</p>
<p>The first instance will create the server. The second instance will
fail to create the server, so it will request the first instance to
create a new window (or new tab with <code class="docutils literal"><span class="pre">--new-tab</span></code>).</p>
</li>
<li><p class="first">Enable <a class="reference internal" href="#remotinator"><span>Remotinator</span></a></p>
</li>
</ul>
<p>Running a single instance of Terminator will cause problems if you
are trying to launch a <a class="reference internal" href="layouts.html#layouts"><span>layout</span></a>, when an instance is
already running, so when configuring a program, script or menu item
to launch a layout, you need to remember to include the <code class="docutils literal"><span class="pre">-u</span></code> option
that will disable the DBus for that instance. <a class="reference internal" href="layouts.html#layout-launcher"><span>The Layout Launcher</span></a>
does this for you, and as a result any launched layout is running
without DBus, and cannot be controlled with DBus.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">There is quite some scope for improving this. I have a vague
notion of a single master server and multiple instance
servers, to improve the interaction between DBus and
layouts.</p>
</div>
</div>
<div class="section" id="remotinator">
<span id="id4"></span><h2>Remotinator<a class="headerlink" href="#remotinator" title="Permalink to this headline"></a></h2>
<p>Remotinator is a minimal wrapper around making DBus calls, and is
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, 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>
<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
as the first instance) is normally launched as a separate
instance requiring the <code class="docutils literal"><span class="pre">-u</span></code>, Remotinator will not work
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>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="faq.html" class="btn btn-neutral float-right" title="Frequently Asked Questions" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="plugins.html" class="btn btn-neutral" title="Plugins" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2015, Stephen Boddy, licensed under the CC-BY-SA..
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'1.0 alpha',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>