--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: The i3 buildbot setup</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>The i3 buildbot setup</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">September 2012</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document explains the <a href="http://www.buildbot.net/">buildbot</a> setup we use to\r
+provide up-to-date documentation and debian packages at <a href="http://build.i3wm.org/">http://build.i3wm.org/</a>.\r
+We publish these information so that our setup is well-documented (thus\r
+decreasing future maintenance effort) and because it might be interesting for\r
+other projects.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_introduction">1. Introduction</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>What we are doing in i3 is called Continuous Integration (see\r
+<a href="http://en.wikipedia.org/wiki/Continuous_integration">http://en.wikipedia.org/wiki/Continuous_integration</a>): we publish the changes we\r
+make on our local machines as often as possible. In order to maintain a\r
+continuously high quality, each time any developer pushes changes to the\r
+official git repository, a number of quality assurance tools start running\r
+automatically:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Latest documentation is generated and provided at\r
+ <a href="http://build.i3wm.org/docs/">http://build.i3wm.org/docs/</a>. This makes it easy to link to documentation for\r
+ features which are only in the current git version, not in the released\r
+ version.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The source code is compiled and it is automatically posted to the IRC\r
+ channel whether there were any compiler warnings. While developers should\r
+ notice compiler warnings, this mechanism creates a bit of public pressure\r
+ ("Oh, Michael introduced warnings with this commit!"). More importantly,\r
+ since this mechanism builds a dist tarball and then compiles that tarball,\r
+ any changes to the source which would result in an uncompilable dist tarball\r
+ are immediately obvious. Therefore, we could cut a release from the current\r
+ git version at any point in time.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The clang static analyzer runs and the resulting report is provided at\r
+ <a href="http://build.i3wm.org/clang-analyze/">http://build.i3wm.org/clang-analyze/</a>. While every developer needs to compile\r
+ his code before committing, he doesn’t necessarily use clang (so we catch\r
+ build failures when using clang) and he also probably doesn’t run a static\r
+ analyzer as part of his normal workflow. By just being available without any\r
+ friction, this mechanism encourages developers to look at the report and fix\r
+ problems.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Debian (and Ubuntu) packages are built. This not only ensures that we don’t\r
+ change anything in the source code which would lead to an FTBFS (Fails To\r
+ Build From Source) when building a Debian package, it also goes a long way\r
+ to encourage end users to test i3. To remove the need and resource\r
+ requirements for them to compile their own version of i3 regularly, we\r
+ provide packages that integrate conveniently with a normal Debian system\r
+ (e.g. that are automatically upgraded).\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_why_buildbot">2. Why buildbot?</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Previously, I was unsatisfied with the current state of FOSS CI tools like\r
+Jenkins, Tinderbox and others. They either seemed bloated, hard to use,\r
+outdated or unappealing for some other reason.</p></div>\r
+<div class="paragraph"><p>Then I discovered buildbot and was impressed by its flexibility. It let me\r
+implement everything I wanted from a CI tool and (in my opinion) it is\r
+light-weight, easy to deploy and well maintained.</p></div>\r
+<div class="paragraph"><p>The only downside of buildbot is its configuration and documentation: You need\r
+to spend quite a bit of time (I needed multiple days) until it works the way\r
+you want it to and oftentimes, the documentation is far too sparse. This is one\r
+of the reasons why I’m publishing the i3 setup.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_configuration">3. Configuration</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>See the next section for a complete, copy & pasteable configuration file. This\r
+section covers the most important aspects without covering every line.</p></div>\r
+<div class="paragraph"><p>This document assumes you are running buildbot 0.8.6p1.</p></div>\r
+<div class="sect2">\r
+<h3 id="_change_sources">3.1. Change sources</h3>\r
+<div class="paragraph"><p>Since i3 uses a central git repository, we use the official buildbot\r
+<a href="https://github.com/buildbot/buildbot/blob/master/master/contrib/git_buildbot.py">git\r
+post-receive hook</a> that sends the change information to the buildbot master.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_schedulers">3.2. Schedulers</h3>\r
+<div class="paragraph"><p>There are two things (called "builders" in buildbot-language) which happen\r
+whenever a new change in the <tt>next</tt> branch of i3 occurs:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+The "docs" builder builds and uploads the latest documentation. This happens\r
+ directly from the git repository with a custom asciidoc configuration which\r
+ indicates that these docs refer to the git version. Therefore, this builder\r
+ does not benefit from having a dist tarball available (contrary to the other\r
+ builders).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The "dist" builder prepares a dist tarball and then triggers the remaining\r
+ builders. This ensures that building the dist tarball (an operation which\r
+ takes about one minute due to documentation generation) only happens once.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>Here is the relevant configuration part:</p></div>\r
+<div class="paragraph"><p><strong>Schedulers</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>c['schedulers'] = []\r
+\r
+c['schedulers'].append(SingleBranchScheduler(\r
+ name = 'dist',\r
+ branch = 'next',\r
+ treeStableTimer = 10,\r
+ builderNames = [ 'dist', 'docs' ],\r
+))\r
+\r
+c['schedulers'].append(Triggerable(\r
+ name = 'dist-tarball-done',\r
+ builderNames = [ 'compile', 'clang-analyze', 'debian-packages', 'ubuntu-packages' ],\r
+))</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_building_the_dist_tarball">3.3. Building the dist tarball</h3>\r
+<div class="paragraph"><p>This builder clones the i3 git repository and runs "make dist", which creates a\r
+tarball that could be named "i3-4.2.tar.bz2" for example. This tarball is then\r
+renamed to dist-%(gitversion).tar.bz2 (so that we can work with a predictable\r
+name in the next steps) and uploaded to the buildbot master (since we can have\r
+multiple buildslaves, we cannot just let it rest on the buildslave that built\r
+it). Afterwards, old dist tarballs are cleaned up and the remaining builders\r
+are triggered:</p></div>\r
+<div class="paragraph"><p><strong>Building a dist tarball</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>factories = {}\r
+\r
+f = factories['dist'] = BuildFactory()\r
+\r
+# Check out the git repository.\r
+f.addStep(s_git)\r
+\r
+# Fill the 'gitversion' property with the output of git describe --tags.\r
+f.addStep(shell.SetProperty(command = 'git describe --tags', property = 'gitversion'))\r
+\r
+# Build the dist tarball.\r
+cmd(f, name = 'make dist', command = [ 'make', 'dist' ])\r
+\r
+# Rename the created tarball to a well-known name.\r
+cmd(f,\r
+ name = 'rename tarball',\r
+ command = WithProperties('mv *.tar.bz2 dist-%(gitversion)s.tar.bz2'),\r
+)\r
+\r
+# Upload the dist tarball to the master (other factories download it later).\r
+f.addStep(transfer.FileUpload(\r
+ slavesrc = WithProperties('dist-%(gitversion)s.tar.bz2'),\r
+ masterdest = WithProperties('distballs/dist-%(gitversion)s.tar.bz2'),\r
+))\r
+\r
+# Cleanup old dist tarballs (everything older than tree days).\r
+f.addStep(master.MasterShellCommand(\r
+ command = "find distballs -mtime +3 -exec rm '{}' \;",\r
+ name = 'cleanup old dist tarballs',\r
+))\r
+\r
+# Everything worked fine, now trigger compilation.\r
+f.addStep(Trigger(\r
+ schedulerNames = [ 'dist-tarball-done' ],\r
+ copy_properties = [ 'gitversion' ],\r
+))</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Three things are noteworthy about this part of the configuration:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+For convenience, we call each factory <tt>f</tt> (just like the global buildbot\r
+ config uses <tt>c</tt> for the top-level configuration) and add it to a dictionary.\r
+ Factories in that dictionary are later automatically configured for each\r
+ buildslave.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+We have a shared step called <tt>s_git</tt> so that we only have one location in\r
+ the configuration file where we specify the git repository URL and branch.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+We have a custom function called <tt>cmd</tt> which is a shortcut for defining a\r
+ <tt>ShellCommand</tt> with <tt>haltOnFailure=True</tt> (since each step is critical) and\r
+ <tt>logEnviron=False</tt> (for brevity).\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>Here are their definitions:</p></div>\r
+<div class="paragraph"><p><strong>cmd</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>def cmd(factory, **kwargs):\r
+ factory.addStep(ShellCommand(\r
+ haltOnFailure = True,\r
+ logEnviron = False,\r
+ **kwargs\r
+ ))</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>s_git</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>s_git = Git(\r
+ repourl = 'git://code.i3wm.org/i3',\r
+ branch = 'next',\r
+\r
+ # Check out the latest revision, not the one which caused this build.\r
+ alwaysUseLatest = True,\r
+\r
+ # We cannot use shallow because it breaks git describe --tags.\r
+ shallow = False,\r
+\r
+ # Delete remnants of previous builds.\r
+ mode = 'full',\r
+\r
+ # Store checkouts in source/ and copy them over to build/ to save\r
+ # bandwidth.\r
+ method = 'copy',\r
+)</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_compiling_the_dist_tarball">3.4. Compiling the dist tarball</h3>\r
+<div class="paragraph"><p>For this builder to work, you obviously need to install all the\r
+build-dependencies for your software on each buildslave. In the case of i3,\r
+this can be done with <tt>apt-get build-dep i3-wm</tt>.</p></div>\r
+<div class="paragraph"><p>The compilation is pretty straight-forward since it uses the builtin <tt>Compile</tt>\r
+step. We call <tt>make</tt> with <tt>-j4</tt> (we don’t have enough buildslaves to make\r
+figuring out the amount of cores at build-time worthwhile) and <tt>DEBUG=0</tt> to\r
+simulate release build conditions. Also, we pass the preprocessor flag\r
+<tt>-D_FORTIFY_SOURCE=2</tt> and the compiler flags <tt>-Wformat</tt> and <tt>-Wformat-security</tt>\r
+to enable additional warnings.</p></div>\r
+<div class="paragraph"><p><strong>Compiling the dist tarball</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>f = factories['compile'] = BuildFactory()\r
+unpack_dist_tarball(f)\r
+f.addStep(Compile(\r
+ command = [ 'make', 'DEBUG=0', '-j4' ],\r
+ warningPattern = '.*warning: ',\r
+ warnOnWarnings = True,\r
+ workdir = 'build/DIST',\r
+ env = {\r
+ 'CPPFLAGS': '-D_FORTIFY_SOURCE=2',\r
+ 'CFLAGS': '-Wformat -Wformat-security'\r
+ },\r
+))\r
+\r
+f.addStep(WarningsToIRC())</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Again, we use custom functions (and a custom buildstep) to make our lives\r
+easier. Here is the definition of unpack_dist_tarball which adds three steps to\r
+the factory that download and unpack the dist tarball to the <tt>DIST/</tt> directory:</p></div>\r
+<div class="paragraph"><p><strong>unpack_dist_tarball</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>def unpack_dist_tarball(factory):\r
+ factory.addStep(transfer.FileDownload(\r
+ mastersrc = WithProperties('distballs/dist-%(gitversion)s.tar.bz2'),\r
+ slavedest = 'dist.tar.bz2',\r
+ ))\r
+\r
+ factory.addStep(slave.MakeDirectory(dir = 'build/DIST'))\r
+\r
+ cmd(factory,\r
+ name = 'unpack dist tarball',\r
+ command = [ 'tar', 'xf', 'dist.tar.bz2', '-C', 'DIST', '--strip-components=1' ],\r
+ )</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The <tt>WarningsToIRC</tt> build step is a custom build step which sets a property\r
+called "ircsuffix" that is used by our custom IRC bot. This is covered later in\r
+more detail. This property gets set to a green or red message, depending on\r
+whether there were any warnings:</p></div>\r
+<div class="paragraph"><p><strong>WarningsToIRC</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>class WarningsToIRC(buildstep.BuildStep):\r
+ def start(self):\r
+ warnings = self.getProperty("warnings-count")\r
+ if warnings is not None and int(warnings) > 0:\r
+ warnings = int(warnings) # just to be sure\r
+ self.setProperty("ircsuffix", ("\0037 with %d warning%s!" %\r
+ (warnings, "s" if warnings != 1 else "")))\r
+ else:\r
+ self.setProperty("ircsuffix", "\0033 without warnings")\r
+ self.finished(SUCCESS)</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_static_code_analysis">3.5. Static code analysis</h3>\r
+<div class="paragraph"><p>For this builder to work, you additionally need the <tt>clang</tt> compiler on each\r
+buildslave: <tt>apt-get install clang</tt>.</p></div>\r
+<div class="paragraph"><p>This builder uses only custom functions which you already know by now. It runs\r
+scan-build, then moves scan-build’s output from a date-based directory directly\r
+into the <tt>CLANG/</tt> directory and uploads that to the buildmaster.</p></div>\r
+<div class="paragraph"><p>On the buildmaster, a webserver is configured which has a symlink to\r
+<tt>/home/build/i3-master/htdocs/clang-analyze</tt> in its document root.</p></div>\r
+<div class="paragraph"><p><strong>static code analysis</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>f = factories['clang-analyze'] = BuildFactory()\r
+unpack_dist_tarball(f)\r
+cmd(f,\r
+ name='analyze',\r
+ command = [\r
+ 'scan-build',\r
+ '-o', '../CLANG',\r
+ '--html-title', WithProperties('Analysis of i3 v%(gitversion)s'),\r
+ 'make', '-j8',\r
+ ],\r
+ workdir = 'build/DIST',\r
+)\r
+\r
+# remove the subdirectory -- we always want to overwrite\r
+cmd(f, command = 'mv CLANG/*/* CLANG/')\r
+\r
+f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'CLANG',\r
+ masterdest = 'htdocs/clang-analyze',\r
+ compress = 'bz2',\r
+ name = 'upload output',\r
+))\r
+\r
+f.addStep(ClangToIRC())</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The <tt>ClangToIRC</tt> custom step is even simpler than <tt>WarningsToIRC</tt>. It simply\r
+sets the ircsuffix property to a static message:</p></div>\r
+<div class="paragraph"><p><strong>ClangToIRC</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>class ClangToIRC(buildstep.BuildStep):\r
+ def start(self):\r
+ self.setProperty("ircsuffix", ", see http://build.i3wm.org/clang-analyze/")\r
+ self.finished(SUCCESS)</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_generating_documentation">3.6. Generating documentation</h3>\r
+<div class="paragraph"><p>This builder is the one which is the least clean of all. It uses the Debian\r
+packaging information to decide which docs to publish and which manpages to\r
+generate. Additionally, it uses a for loop instead of calling a script. I\r
+recommend including a script to do this in your repository instead.</p></div>\r
+<div class="paragraph"><p>Apart from these concerns, the builder is straight-forward: It clones the git\r
+repository, generates the documentation and then uploads the documentation to\r
+the buildmaster:</p></div>\r
+<div class="paragraph"><p><strong>Generating documentation</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>f = factories['docs'] = BuildFactory()\r
+f.addStep(s_git)\r
+# Fill the 'gitversion' property with the output of git describe --tags.\r
+f.addStep(shell.SetProperty(command = 'git describe --tags', property = 'gitversion'))\r
+cmd(f, name = 'build docs', command = [ 'make', '-C', 'docs', "ASCIIDOC=asciidoc -a linkcss -a stylesdir=http://i3wm.org/css -a scriptsdir=http://i3wm.org/js --backend=xhtml11 -f docs/asciidoc-git.conf" ])\r
+cmd(f, name = 'build manpages', command = "for file in $(sed 's/\.1$/.man/g' debian/i3-wm.manpages); do asciidoc -a linkcss -a stylesdir=http://i3wm.org/css -a scriptsdir=http://i3wm.org/js --backend=xhtml11 -f docs/asciidoc-git.conf \"$file\"; done")\r
+f.addStep(slave.MakeDirectory(dir='build/COPY-DOCS'))\r
+cmd(f, name = 'copy docs', command = "cp $(tr '\\n' ' ' < debian/i3-wm.docs) COPY-DOCS")\r
+cmd(f, name = 'copy manpages', command = "cp $(sed 's/\.1$/.html/g' debian/i3-wm.manpages | tr '\\n' ' ') COPY-DOCS")\r
+\r
+f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'COPY-DOCS',\r
+ masterdest = 'htdocs/docs-git',\r
+ compress = 'bz2',\r
+ name = 'upload docs'))\r
+\r
+f.addStep(DocsToIRC())</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Just as <tt>ClangToIRC</tt>, <tt>DocsToIRC</tt> appends a static message:</p></div>\r
+<div class="paragraph"><p><strong>DocsToIRC</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>class DocsToIRC(buildstep.BuildStep):\r
+ def start(self):\r
+ self.setProperty("ircsuffix", ", see http://build.i3wm.org/docs/")\r
+ self.finished(SUCCESS)</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_building_debian_ubuntu_packages">3.7. Building Debian/Ubuntu packages</h3>\r
+<div class="paragraph"><p>This is the most complex builder of all. It uses <tt>pbuilder-dist</tt>, <tt>debchange</tt>,\r
+<tt>dpkg-buildpackage</tt> and <tt>reprepro</tt> to generate a Debian repository with a\r
+cleanly compiled package for amd64 and i386. In order for it to work, you need\r
+to install the following packages: <tt>apt-get install devscripts dpkg-dev\r
+reprepro ubuntu-dev-tools pbuilder</tt>. Afterwards, you need to allow the user as\r
+which the buildslave runs to execute pbuilder via sudo without needing a\r
+password, so add a config file like this one:</p></div>\r
+<div class="paragraph"><p><strong>sudoers.d</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>echo 'build ALL= NOPASSWD: SETENV: /usr/sbin/pbuilder' > /etc/sudoers.d/build</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Then, as the user as which your buildslave runs, setup the pbuilder\r
+environments (you only need to do this once):</p></div>\r
+<div class="paragraph"><p><strong>pbuilder preparation</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo ln -s pbuilder-dist /usr/bin/pbuilder-sid-amd64\r
+sudo ln -s pbuilder-dist /usr/bin/pbuilder-sid-i386\r
+pbuilder-sid-amd64 create\r
+pbuilder-sid-i386 create</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Also, you will need a GPG key to sign these packages.</p></div>\r
+<div class="paragraph"><p>The debian builder starts by unpacking the dist tarball, copying the Debian\r
+packaging from git, creating an empty Debian repository with the\r
+<tt>i3-autobuild-keyring</tt> contents in it. It then adds a new changelog entry to\r
+reflect the git version and the fact that this package was built automatically,\r
+builds a source package with <tt>dpkg-buildpackage</tt> and adds it to the repository.\r
+Afterwards, it updates each pbuilder and builds binary packages for each\r
+architecture (amd64 and i386). After adding the resulting packages to the\r
+repository, it uploads the repository to the buildmaster:</p></div>\r
+<div class="paragraph"><p><strong>Debian builder</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>distributions = [ 'sid-amd64', 'sid-i386' ]\r
+gpg_key = 'BE1DB1F1'\r
+\r
+f = factories['debian-packages'] = BuildFactory()\r
+# We need the git repository for the Debian packaging.\r
+f.addStep(s_git)\r
+unpack_dist_tarball(f)\r
+cmd(f, name = 'copy packaging', command = "cp -r debian DIST/")\r
+\r
+# Add a new changelog entry to have the git version in the package version.\r
+cmd(f,\r
+ name = 'update changelog',\r
+ workdir = 'build/DIST',\r
+ command = [ 'debchange', '-m', '-l', WithProperties('+g%(gitversion)s'), 'Automatically built' ],\r
+)\r
+\r
+cmd(f,\r
+ name = 'source pkg',\r
+ command = [ 'dpkg-buildpackage', '-S', '-us', '-uc' ],\r
+ workdir = 'build/DIST',\r
+)\r
+\r
+for dist in distributions:\r
+ f.addStep(slave.MakeDirectory(dir = 'build/RESULT-' + dist))\r
+\r
+# Create debian sid repository\r
+f.addStep(slave.MakeDirectory(dir = 'build/REPO-sid/conf'))\r
+f.addStep(transfer.StringDownload(\r
+ """Codename: sid\r
+Suite: unstable\r
+Architectures: i386 amd64 source\r
+Components: main\r
+DebIndices: Packages Release . .gz .bz2\r
+DscIndices: Sources Release . .gz .bz2\r
+SignWith: %(gpg_key)s\r
+""" % { "gpg_key": gpg_key },\r
+ slavedest = 'REPO-sid/conf/distributions',\r
+))\r
+\r
+# add source package to repository\r
+reprepro_include(f, 'i3-wm*_source.changes', 'dsc')\r
+\r
+# Add keyring to the repository. We need to run git clone on our own because\r
+# the Git() step assumes there’s precisely one repository we want to deal with.\r
+# No big deal since the i3-autobuild-keyring repository is not big.\r
+cmd(f,\r
+ name = 'clone keyring repo',\r
+ command = 'git clone git://code.i3wm.org/i3-autobuild-keyring',\r
+)\r
+reprepro_include(f, 'i3-autobuild-keyring/prebuilt/*.changes')\r
+\r
+for dist in distributions:\r
+ # update the pbuilder\r
+ cmd(f, name = 'update builder', command = 'pbuilder-' + dist + ' update')\r
+\r
+ # build the package for each dist\r
+ f.addStep(ShellCommand(\r
+ logEnviron = False,\r
+ name = 'pkg ' + dist,\r
+ command = 'pbuilder-' + dist + ' build --binary-arch \\r
+--buildresult RESULT-' + dist + ' --debbuildopts -j8 i3-wm*dsc',\r
+ warnOnFailure = True\r
+ ))\r
+\r
+ reprepro_include(f, 'RESULT-' + dist + '/*.changes')\r
+\r
+# upload the sid repo\r
+# Since the next step is cleaning up old files, we set haltOnFailure=True -- we\r
+# prefer providing old packages over providing no packages at all :).\r
+for directory in [ 'pool', 'dists' ]:\r
+ f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'REPO-sid/' + directory,\r
+ masterdest = 'htdocs/debian/sid/' + directory,\r
+ compress = 'bz2',\r
+ name = 'upload sid ' + directory,\r
+ haltOnFailure = True,\r
+ ))\r
+\r
+f.addStep(master.MasterShellCommand(\r
+ command = "find htdocs/debian/sid/pool -mtime +3 -exec rm '{}' \;",\r
+ name = 'cleanup old packages',\r
+))\r
+\r
+# We ensure there is an empty i18n/Index to speed up apt (so that it does not\r
+# try to download Translation-*)\r
+f.addStep(master.MasterShellCommand(\r
+ command = [ 'mkdir', '-p', 'htdocs/debian/sid/dists/sid/main/i18n' ],\r
+ name = 'create i18n folder',\r
+))\r
+f.addStep(master.MasterShellCommand(\r
+ command = [ 'touch', 'htdocs/debian/sid/dists/sid/main/i18n/Index' ],\r
+ name = 'touch i18n/Index',\r
+))</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The <tt>reprepro_include</tt> command is defined as follows:</p></div>\r
+<div class="paragraph"><p><strong>reprepro_include</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>def reprepro_include(factory, path, debtype='deb', **kwargs):\r
+ cmd(factory,\r
+ name = 'reprepro include',\r
+ command = 'reprepro --ignore=wrongdistribution -T ' + debtype + ' -b REPO-sid include sid ' + path,\r
+ **kwargs\r
+ )</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Running such a builder for Ubuntu works exactly the same way, but you need to\r
+replace "sid" with "precise" in all places (see the full configuration file for\r
+an example).</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_status_targets">3.8. Status targets</h3>\r
+<div class="paragraph"><p>We don’t advertise the HTTP status target. Instead, status is posted to IRC via\r
+a custom bot. This bot provides an HTTP end point and buildbot is configured to\r
+push status changes to that endpoint:</p></div>\r
+<div class="paragraph"><p><strong>http status target</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>c['status'].append(buildbot.status.status_push.HttpStatusPush(\r
+ serverUrl = 'http://localhost:8080/push_buildbot',\r
+))</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>You can find the source code of that bot at\r
+<a href="http://code.stapelberg.de/git/go-buildbot-announce/">http://code.stapelberg.de/git/go-buildbot-announce/</a>. As the name suggests, it\r
+is written in Go. Also, it is quite specific to i3, so you might be better off\r
+implementing such a bot (or plugin) on your own. It might make for a nice\r
+example, though, especially back when its only feature was announcing the build\r
+status:</p></div>\r
+<div class="paragraph"><p><a href="http://code.stapelberg.de/git/go-buildbot-announce/tree/src/i3build.go?id=eeebf1a546454c8a0d82ca623886bb835cd32ba0">http://code.stapelberg.de/git/go-buildbot-announce/tree/src/i3build.go?id=eeebf1a546454c8a0d82ca623886bb835cd32ba0</a></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_creating_the_buildslave">3.9. Creating the buildslave</h3>\r
+<div class="paragraph"><p>One more thing to note is that when creating the buildslave, you should use the\r
+<tt>--umask</tt> argument to configure the umask for all generated files:</p></div>\r
+<div class="paragraph"><p><strong>Creating the buildslave</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>buildslave create-slave --umask=022 i3-buildslave buildbot.i3wm.org build-1 <password></tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_full_configuration_file">4. Full configuration file</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This is the full configuration file, as tested and currently in use (except for\r
+the passwords, though):</p></div>\r
+<div class="paragraph"><p><strong>master.cfg</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># -*- python -*-\r
+# -*- coding: utf-8\r
+# vim:ts=4:sw=4:expandtab:syntax=python\r
+#\r
+# i3 buildbot configuration\r
+# © 2012 Michael Stapelberg, Public Domain\r
+# see http://i3wm.org/docs/buildbot.html for more information.\r
+\r
+from buildbot.buildslave import BuildSlave\r
+from buildbot.changes import pb\r
+from buildbot.schedulers.basic import SingleBranchScheduler\r
+from buildbot.schedulers.triggerable import Triggerable\r
+from buildbot.process.properties import WithProperties\r
+from buildbot.process.factory import BuildFactory\r
+from buildbot.steps.source.git import Git\r
+from buildbot.steps.shell import ShellCommand\r
+from buildbot.steps.shell import Compile\r
+from buildbot.steps.trigger import Trigger\r
+from buildbot.steps import shell, transfer, master, slave\r
+from buildbot.config import BuilderConfig\r
+from buildbot.process import buildstep\r
+from buildbot.status import html\r
+from buildbot.status import words\r
+import buildbot.status.status_push\r
+from buildbot.status.web import auth, authz\r
+from buildbot.status.builder import SUCCESS, FAILURE\r
+\r
+c = BuildmasterConfig = {}\r
+\r
+c['slaves'] = [BuildSlave('docsteel-vm', 'secret')]\r
+c['slavePortnum'] = 9989\r
+# Changes are pushed to buildbot using a git hook.\r
+c['change_source'] = [pb.PBChangeSource(\r
+ user = 'i3-source',\r
+ passwd = 'secret',\r
+)]\r
+\r
+################################################################################\r
+# schedulers\r
+################################################################################\r
+\r
+c['schedulers'] = []\r
+\r
+# The first scheduler kicks off multiple builders:\r
+# • 'dist' builds a dist tarball and starts the triggerable schedulers\r
+# 'compile'\r
+# • 'docs' builds the documentation with a special asciidoc configuration\r
+# (therefore, it does not profit from a dist tarball and can be run in\r
+# parallel).\r
+c['schedulers'].append(SingleBranchScheduler(\r
+ name = 'dist',\r
+ branch = 'next',\r
+ treeStableTimer = 10,\r
+ builderNames = [ 'dist', 'docs' ],\r
+))\r
+\r
+c['schedulers'].append(Triggerable(\r
+ name = 'dist-tarball-done',\r
+ builderNames = [ 'compile', 'clang-analyze', 'debian-packages', 'ubuntu-packages' ],\r
+))\r
+\r
+################################################################################\r
+# Shortcuts for builders\r
+################################################################################\r
+\r
+# shortcut for a ShellCommand with haltOnFailure=True, logEnviron=False\r
+def cmd(factory, **kwargs):\r
+ factory.addStep(ShellCommand(\r
+ haltOnFailure=True,\r
+ logEnviron=False,\r
+ **kwargs\r
+ ))\r
+\r
+# Shortcut to add steps necessary to download and unpack the dist tarball.\r
+def unpack_dist_tarball(factory):\r
+ factory.addStep(transfer.FileDownload(\r
+ mastersrc=WithProperties('distballs/dist-%(gitversion)s.tar.bz2'),\r
+ slavedest='dist.tar.bz2',\r
+ ))\r
+ factory.addStep(slave.MakeDirectory(dir='build/DIST'))\r
+ cmd(factory,\r
+ name = 'unpack dist tarball',\r
+ command = [ 'tar', 'xf', 'dist.tar.bz2', '-C', 'DIST', '--strip-components=1' ],\r
+ )\r
+\r
+# Includes the given path in REPO-sid using reprepro.\r
+def reprepro_include(factory, path, debtype='deb', **kwargs):\r
+ cmd(factory,\r
+ name = 'reprepro include',\r
+ command = 'reprepro --ignore=wrongdistribution -T ' + debtype + ' -b REPO-sid include sid ' + path,\r
+ **kwargs\r
+ )\r
+\r
+def reprepro_include_ubuntu(factory, path, debtype='deb', **kwargs):\r
+ cmd(factory,\r
+ name = 'reprepro include',\r
+ command = 'reprepro --ignore=wrongdistribution -T ' + debtype + ' -b REPO-sid include precise ' + path,\r
+ **kwargs\r
+ )\r
+\r
+################################################################################\r
+# Custom steps\r
+################################################################################\r
+\r
+# Adds the ircsuffix property to reflect whether there were warnings.\r
+class WarningsToIRC(buildstep.BuildStep):\r
+ def start(self):\r
+ warnings = self.getProperty("warnings-count")\r
+ if warnings is not None and int(warnings) > 0:\r
+ warnings = int(warnings) # just to be sure\r
+ self.setProperty("ircsuffix", "\0037 with %d warning%s!" % (warnings, "s" if warnings != 1 else ""))\r
+ else:\r
+ self.setProperty("ircsuffix", "\0033 without warnings")\r
+ self.finished(SUCCESS)\r
+\r
+# Adds a link to the automatically generated documentation.\r
+class DocsToIRC(buildstep.BuildStep):\r
+ def start(self):\r
+ self.setProperty("ircsuffix", ", see http://build.i3wm.org/docs/")\r
+ self.finished(SUCCESS)\r
+\r
+# Adds a link to the clang report.\r
+class ClangToIRC(buildstep.BuildStep):\r
+ def start(self):\r
+ self.setProperty("ircsuffix", ", see http://build.i3wm.org/clang-analyze/")\r
+ self.finished(SUCCESS)\r
+\r
+################################################################################\r
+# Shared steps, used in different factories.\r
+################################################################################\r
+\r
+s_git = Git(\r
+ repourl='git://code.i3wm.org/i3',\r
+ branch='next',\r
+\r
+ # Check out the latest revision, not the one which caused this build.\r
+ alwaysUseLatest=True,\r
+\r
+ # We cannot use shallow because it breaks git describe --tags.\r
+ shallow=False,\r
+\r
+ # Delete remnants of previous builds.\r
+ mode='full',\r
+\r
+ # Store checkouts in source/ and copy them over to build/ to save\r
+ # bandwidth.\r
+ method='copy',\r
+\r
+ # XXX: In newer versions of buildbot (> 0.8.6), we want to use\r
+ # getDescription={ 'tags': True } here and get rid of the extra git\r
+ # describe --tags step.\r
+)\r
+\r
+################################################################################\r
+# factory: "dist" — builds the dist tarball once (used by all other factories)\r
+################################################################################\r
+\r
+factories = {}\r
+\r
+f = factories['dist'] = BuildFactory()\r
+# Check out the git repository.\r
+f.addStep(s_git)\r
+# Fill the 'gitversion' property with the output of git describe --tags.\r
+f.addStep(shell.SetProperty(command = 'git describe --tags', property = 'gitversion'))\r
+# Build the dist tarball.\r
+cmd(f, name = 'make dist', command = [ 'make', 'dist' ])\r
+# Rename the created tarball to a well-known name.\r
+cmd(f, name = 'rename tarball', command = WithProperties('mv *.tar.bz2 dist-%(gitversion)s.tar.bz2'))\r
+# Upload the dist tarball to the master (other factories download it later).\r
+f.addStep(transfer.FileUpload(\r
+ slavesrc = WithProperties('dist-%(gitversion)s.tar.bz2'),\r
+ masterdest = WithProperties('distballs/dist-%(gitversion)s.tar.bz2'),\r
+))\r
+# Cleanup old dist tarballs (everything older than tree days).\r
+f.addStep(master.MasterShellCommand(\r
+ command = "find distballs -mtime +3 -exec rm '{}' \;",\r
+ name = 'cleanup old dist tarballs',\r
+))\r
+# Everything worked fine, now trigger compilation.\r
+f.addStep(Trigger(\r
+ schedulerNames = [ 'dist-tarball-done' ],\r
+ copy_properties = [ 'gitversion' ],\r
+))\r
+\r
+################################################################################\r
+# factory: "compile" — compiles the dist tarball and reports warnings\r
+################################################################################\r
+\r
+f = factories['compile'] = BuildFactory()\r
+unpack_dist_tarball(f)\r
+f.addStep(Compile(\r
+ command = [ 'make', 'DEBUG=0', '-j4' ],\r
+ warningPattern = '.*warning: ',\r
+ warnOnWarnings = True,\r
+ workdir = 'build/DIST',\r
+ env = {\r
+ 'CPPFLAGS': '-D_FORTIFY_SOURCE=2',\r
+ 'CFLAGS': '-Wformat -Wformat-security'\r
+ },\r
+))\r
+\r
+f.addStep(WarningsToIRC())\r
+\r
+################################################################################\r
+# factory: "clang-analyze" — runs a static code analysis\r
+################################################################################\r
+# $ sudo apt-get install clang\r
+\r
+f = factories['clang-analyze'] = BuildFactory()\r
+unpack_dist_tarball(f)\r
+cmd(f,\r
+ name='analyze',\r
+ command = [\r
+ 'scan-build',\r
+ '-o', '../CLANG',\r
+ '--html-title', WithProperties('Analysis of i3 v%(gitversion)s'),\r
+ 'make', '-j8',\r
+ ],\r
+ workdir = 'build/DIST',\r
+)\r
+\r
+# remove the subdirectory -- we always want to overwrite\r
+cmd(f, command = 'mv CLANG/*/* CLANG/')\r
+\r
+f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'CLANG',\r
+ masterdest = 'htdocs/clang-analyze',\r
+ compress = 'bz2',\r
+ name = 'upload output',\r
+))\r
+\r
+f.addStep(ClangToIRC())\r
+\r
+################################################################################\r
+# factory: "docs" — builds documentation with a special asciidoc conf\r
+################################################################################\r
+\r
+f = factories['docs'] = BuildFactory()\r
+f.addStep(s_git)\r
+# Fill the 'gitversion' property with the output of git describe --tags.\r
+f.addStep(shell.SetProperty(command = 'git describe --tags', property = 'gitversion'))\r
+cmd(f, name = 'build docs', command = [ 'make', '-C', 'docs', "ASCIIDOC=asciidoc -a linkcss -a stylesdir=http://i3wm.org/css -a scriptsdir=http://i3wm.org/js --backend=xhtml11 -f docs/asciidoc-git.conf" ])\r
+cmd(f, name = 'build manpages', command = "for file in $(sed 's/\.1$/.man/g' debian/i3-wm.manpages); do asciidoc -a linkcss -a stylesdir=http://i3wm.org/css -a scriptsdir=http://i3wm.org/js --backend=xhtml11 -f docs/asciidoc-git.conf \"$file\"; done")\r
+f.addStep(slave.MakeDirectory(dir='build/COPY-DOCS'))\r
+cmd(f, name = 'copy docs', command = "cp $(tr '\\n' ' ' < debian/i3-wm.docs) COPY-DOCS")\r
+cmd(f, name = 'copy manpages', command = "cp $(sed 's/\.1$/.html/g' debian/i3-wm.manpages | tr '\\n' ' ') COPY-DOCS")\r
+\r
+f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'COPY-DOCS',\r
+ masterdest = 'htdocs/docs-git',\r
+ compress = 'bz2',\r
+ name = 'upload docs'))\r
+\r
+f.addStep(DocsToIRC())\r
+\r
+################################################################################\r
+# factory: "debian-packages" — builds Debian (sid) packages for amd64 and i386\r
+################################################################################\r
+\r
+distributions = [ 'sid-amd64', 'sid-i386' ]\r
+gpg_key = 'BE1DB1F1'\r
+\r
+f = factories['debian-packages'] = BuildFactory()\r
+# We need the git repository for the Debian packaging.\r
+f.addStep(s_git)\r
+unpack_dist_tarball(f)\r
+cmd(f, name='copy packaging', command = "cp -r debian DIST/")\r
+\r
+# Add a new changelog entry to have the git version in the package version.\r
+cmd(f,\r
+ name = 'update changelog',\r
+ workdir = 'build/DIST',\r
+ command = [ 'debchange', '-m', '-l', WithProperties('+g%(gitversion)s'), 'Automatically built' ],\r
+)\r
+\r
+cmd(f,\r
+ name = 'source pkg',\r
+ command = [ 'dpkg-buildpackage', '-S', '-us', '-uc' ],\r
+ workdir = 'build/DIST',\r
+)\r
+\r
+for dist in distributions:\r
+ f.addStep(slave.MakeDirectory(dir='build/RESULT-' + dist))\r
+\r
+# Create debian sid repository\r
+f.addStep(slave.MakeDirectory(dir='build/REPO-sid/conf'))\r
+f.addStep(transfer.StringDownload(\r
+ """Codename: sid\r
+Suite: unstable\r
+Architectures: i386 amd64 source\r
+Components: main\r
+DebIndices: Packages Release . .gz .bz2\r
+DscIndices: Sources Release . .gz .bz2\r
+SignWith: %(gpg_key)s\r
+""" % { "gpg_key": gpg_key },\r
+ slavedest = 'REPO-sid/conf/distributions',\r
+))\r
+\r
+# add source package to repository\r
+reprepro_include(f, 'i3-wm*_source.changes', 'dsc')\r
+\r
+# Add keyring to the repository. We need to run git clone on our own because\r
+# the Git() step assumes there’s precisely one repository we want to deal with.\r
+# No big deal since the i3-autobuild-keyring repository is not big.\r
+cmd(f, name='clone keyring repo', command = 'git clone git://code.i3wm.org/i3-autobuild-keyring')\r
+reprepro_include(f, 'i3-autobuild-keyring/prebuilt/*.changes')\r
+\r
+for dist in distributions:\r
+ # update the pbuilder\r
+ cmd(f, name = 'update builder', command = 'pbuilder-' + dist + ' update')\r
+\r
+ # build the package for each dist\r
+ f.addStep(ShellCommand(\r
+ logEnviron = False,\r
+ name = 'pkg ' + dist,\r
+ command = 'pbuilder-' + dist + ' build --binary-arch \\r
+--buildresult RESULT-' + dist + ' --debbuildopts -j8 i3-wm*dsc',\r
+ warnOnFailure = True\r
+ ))\r
+\r
+ reprepro_include(f, 'RESULT-' + dist + '/*.changes')\r
+\r
+# upload the sid repo\r
+# Since the next step is cleaning up old files, we set haltOnFailure=True -- we\r
+# prefer providing old packages over providing no packages at all :).\r
+for directory in [ 'pool', 'dists' ]:\r
+ f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'REPO-sid/' + directory,\r
+ masterdest = 'htdocs/debian/sid/' + directory,\r
+ compress = 'bz2',\r
+ name = 'upload sid ' + directory,\r
+ haltOnFailure = True,\r
+ ))\r
+\r
+f.addStep(master.MasterShellCommand(\r
+ command = "find htdocs/debian/sid/pool -mtime +3 -exec rm '{}' \;",\r
+ name = 'cleanup old packages',\r
+))\r
+\r
+# We ensure there is an empty i18n/Index to speed up apt (so that it does not\r
+# try to download Translation-*)\r
+f.addStep(master.MasterShellCommand(\r
+ command = [ 'mkdir', '-p', 'htdocs/debian/sid/dists/sid/main/i18n' ],\r
+ name = 'create i18n folder',\r
+))\r
+f.addStep(master.MasterShellCommand(\r
+ command = [ 'touch', 'htdocs/debian/sid/dists/sid/main/i18n/Index' ],\r
+ name = 'touch i18n/Index',\r
+))\r
+\r
+################################################################################\r
+# factory: "ubuntu-packages" — builds Ubuntu (precise) packages for amd64 and i386\r
+################################################################################\r
+\r
+distributions = [ 'precise-amd64', 'precise-i386' ]\r
+gpg_key = 'BE1DB1F1'\r
+\r
+f = factories['ubuntu-packages'] = BuildFactory()\r
+# We need the git repository for the Debian packaging.\r
+f.addStep(s_git)\r
+unpack_dist_tarball(f)\r
+cmd(f, name='copy packaging', command = "cp -r debian DIST/")\r
+\r
+# Add a new changelog entry to have the git version in the package version.\r
+cmd(f,\r
+ name = 'update changelog',\r
+ workdir = 'build/DIST',\r
+ command = [ 'debchange', '-m', '-l', WithProperties('+g%(gitversion)s'), 'Automatically built' ],\r
+)\r
+\r
+cmd(f,\r
+ name = 'source pkg',\r
+ command = [ 'dpkg-buildpackage', '-S', '-us', '-uc' ],\r
+ workdir = 'build/DIST',\r
+)\r
+\r
+for dist in distributions:\r
+ f.addStep(slave.MakeDirectory(dir='build/RESULT-' + dist))\r
+\r
+# Create debian sid repository\r
+f.addStep(slave.MakeDirectory(dir='build/REPO-sid/conf'))\r
+f.addStep(transfer.StringDownload(\r
+ """Codename: precise\r
+Suite: unstable\r
+Architectures: i386 amd64 source\r
+Components: main\r
+DebIndices: Packages Release . .gz .bz2\r
+DscIndices: Sources Release . .gz .bz2\r
+SignWith: %(gpg_key)s\r
+""" % { "gpg_key": gpg_key },\r
+ slavedest = 'REPO-sid/conf/distributions',\r
+))\r
+\r
+# add source package to repository\r
+reprepro_include_ubuntu(f, 'i3-wm*_source.changes', 'dsc')\r
+\r
+# Add keyring to the repository. We need to run git clone on our own because\r
+# the Git() step assumes there’s precisely one repository we want to deal with.\r
+# No big deal since the i3-autobuild-keyring repository is not big.\r
+cmd(f, name='clone keyring repo', command = 'git clone git://code.i3wm.org/i3-autobuild-keyring')\r
+reprepro_include_ubuntu(f, 'i3-autobuild-keyring/prebuilt/*.changes')\r
+\r
+for dist in distributions:\r
+ # update the pbuilder\r
+ cmd(f, name = 'update builder', command = 'pbuilder-' + dist + ' update')\r
+\r
+ # build the package for each dist\r
+ f.addStep(ShellCommand(\r
+ logEnviron = False,\r
+ name = 'pkg ' + dist,\r
+ command = 'pbuilder-' + dist + ' build --binary-arch \\r
+--buildresult RESULT-' + dist + ' --debbuildopts -j8 i3-wm*dsc',\r
+ warnOnFailure = True\r
+ ))\r
+\r
+ reprepro_include_ubuntu(f, 'RESULT-' + dist + '/*.changes')\r
+\r
+# upload the sid repo\r
+# Since the next step is cleaning up old files, we set haltOnFailure=True -- we\r
+# prefer providing old packages over providing no packages at all :).\r
+for directory in [ 'pool', 'dists' ]:\r
+ f.addStep(transfer.DirectoryUpload(\r
+ slavesrc = 'REPO-sid/' + directory,\r
+ masterdest = 'htdocs/ubuntu/precise/' + directory,\r
+ compress = 'bz2',\r
+ name = 'upload precise ' + directory,\r
+ haltOnFailure = True,\r
+ ))\r
+\r
+f.addStep(master.MasterShellCommand(\r
+ command = "find htdocs/ubuntu/precise/pool -mtime +3 -exec rm '{}' \;",\r
+ name = 'cleanup old packages',\r
+))\r
+\r
+# We ensure there is an empty i18n/Index to speed up apt (so that it does not\r
+# try to download Translation-*)\r
+f.addStep(master.MasterShellCommand(\r
+ command = [ 'mkdir', '-p', 'htdocs/ubuntu/precise/dists/sid/main/i18n' ],\r
+ name = 'create i18n folder',\r
+))\r
+f.addStep(master.MasterShellCommand(\r
+ command = [ 'touch', 'htdocs/ubuntu/precise/dists/sid/main/i18n/Index' ],\r
+ name = 'touch i18n/Index',\r
+))\r
+\r
+\r
+c['builders'] = []\r
+\r
+# Add all builders to all buildslaves.\r
+for factoryname in factories.keys():\r
+ c['builders'].append(BuilderConfig(\r
+ name = factoryname,\r
+ slavenames=['docsteel-vm'],\r
+ factory=factories[factoryname],\r
+ ))\r
+\r
+\r
+####### STATUS TARGETS\r
+\r
+c['status'] = []\r
+\r
+authz_cfg=authz.Authz(\r
+ gracefulShutdown = False,\r
+ forceBuild = False,\r
+ forceAllBuilds = False,\r
+ pingBuilder = False,\r
+ stopBuild = False,\r
+ stopAllBuilds = False,\r
+ cancelPendingBuild = False,\r
+)\r
+\r
+c['status'].append(html.WebStatus(http_port=8010, authz=authz_cfg))\r
+\r
+c['status'].append(buildbot.status.status_push.HttpStatusPush(\r
+ serverUrl = 'http://localhost:8080/push_buildbot',\r
+))\r
+\r
+####### PROJECT IDENTITY\r
+\r
+c['title'] = 'i3'\r
+c['titleURL'] = 'http://i3wm.org/'\r
+# Removed so that search engines don’t crawl it\r
+c['buildbotURL'] = 'http://localhost/'\r
+\r
+####### DB URL\r
+\r
+c['db'] = {\r
+ # This specifies what database buildbot uses to store its state. You can leave\r
+ # this at its default for all but the largest installations.\r
+ 'db_url' : "sqlite:///state.sqlite",\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: Debugging i3: How To (release version)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes();}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Debugging i3: How To (release version)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">February 2012</span>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document describes how to debug i3 suitably for sending us useful bug\r
+reports, even if you have no clue of C programming.</p></div>\r
+<div class="paragraph"><p>First of all: Thank you for being interested in debugging i3. It really means\r
+something to us to get your bug fixed. If you have any questions about the\r
+debugging and/or need further help, do not hesitate to contact us!</p></div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Note</div>\r
+</td>\r
+<td class="content">This document is for the release version of i3. If you are using a\r
+development version, please see <a href="debugging.html">Debugging i3: How To</a>\r
+instead.</td>\r
+</tr></table>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_consider_using_the_development_version">1. Consider using the development version</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document is for the release version of i3. In many cases, bugs are already\r
+fixed in the development version of i3. If they aren’t, we will still ask you\r
+to reproduce your error with the most recent development version of i3.\r
+Therefore, please upgrade to a development version and continue reading at\r
+<a href="debugging.html">Debugging i3: How To</a>.</p></div>\r
+<div class="paragraph"><p>If you absolutely cannot upgrade to a development version of i3, you may\r
+continue reading this document.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_enabling_logging">2. Enabling logging</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 logs useful information to stdout. To have a clearly defined place where log\r
+files will be saved, you should redirect stdout and stderr in your\r
+<tt>~/.xsession</tt>. While you’re at it, putting each run of i3 in a separate log\r
+file with date/time in its filename is a good idea to not get confused about\r
+the different log files later on.</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec /usr/bin/i3 >~/i3log-$(date +'%F-%k-%M-%S') 2>&1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>To enable verbose output and all levels of debug output (required when\r
+attaching logfiles to bugreports), add the parameters <tt>-V -d all</tt>, like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec /usr/bin/i3 -V -d all >~/i3log-$(date +'%F-%k-%M-%S') 2>&1</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_enabling_core_dumps">3. Enabling core dumps</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When i3 crashes, often you have the chance of getting a <em>core dump</em> (an image\r
+of the memory of the i3 process which can be loaded into a debugger). To get a\r
+core dump, you have to make sure that the user limit for core dump files is set\r
+high enough. Many systems ship with a default value which even forbids core\r
+dumps completely. To disable the limit completely and thus enable core dumps,\r
+use the following command (in your <tt>~/.xsession</tt>, before starting i3):</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>ulimit -c unlimited</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Furthermore, to easily recognize core dumps and allow multiple of them, you\r
+should set a custom core dump filename pattern, using a command like the\r
+following:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo sysctl -w kernel.core_pattern=core.%e.%p</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This will generate files which have the executable’s file name (%e) and the\r
+process id (%p) in it. You can save this setting across reboots using\r
+<tt>/etc/sysctl.conf</tt>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_compiling_with_debug_symbols">4. Compiling with debug symbols</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>To actually get useful core dumps, you should make sure that your version of i3\r
+is compiled with debug symbols, that is, that the symbols are not stripped\r
+during the build process. You can check whether your executable contains\r
+symbols by issuing the following command:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>file $(which i3)</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>You should get an output like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>/usr/bin/i3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically\r
+linked (uses shared libs), for GNU/Linux 2.6.18, not stripped</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Notice the <tt>not stripped</tt>, which is the important part. If you have a version\r
+which is stripped, please have a look if your distribution provides debug\r
+symbols (package <tt>i3-wm-dbg</tt> on Debian for example) or if you can turn off\r
+stripping. If nothing helps, please build i3 from source.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_generating_a_backtrace">5. Generating a backtrace</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Once you have made sure that your i3 is compiled with debug symbols and that\r
+core dumps are enabled, you can start making sense out of the core dumps.</p></div>\r
+<div class="paragraph"><p>Because the core dump depends on the original executable (and its debug\r
+symbols), please do this as soon as you encounter the problem. If you\r
+re-compile i3, your core dump might be useless afterwards.</p></div>\r
+<div class="paragraph"><p>Please install <tt>gdb</tt>, a debugger for C. No worries, you don’t need to learn it\r
+now. Start gdb using the following command (replacing the actual name of the\r
+core dump of course):</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>gdb $(which i3) core.i3.3849</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Then, generate a backtrace using:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>backtrace full</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_sending_bug_reports_debugging_on_irc">6. Sending bug reports/debugging on IRC</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When sending bug reports, please paste the relevant part of the log (if in\r
+doubt, please send us rather too much information than too less) and the whole\r
+backtrace (if there was a core dump).</p></div>\r
+<div class="paragraph"><p>When debugging with us in IRC, be prepared to use a so called nopaste service\r
+such as <a href="http://nopaste.info">http://nopaste.info</a> or <a href="http://pastebin.com">http://pastebin.com</a> because pasting large\r
+amounts of text in IRC sometimes leads to incomplete lines (servers have line\r
+length limitations) or flood kicks.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: Debugging i3: How To</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes();}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Debugging i3: How To</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">January 2014</span>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document describes how to debug i3 to send us useful bug\r
+reports, even if you have no knowledge of C programming.</p></div>\r
+<div class="paragraph"><p>Thank you for being interested in debugging i3. It really means\r
+something to us to get your bug fixed. If you have any questions about the\r
+process and/or need further help, do not hesitate to contact us!</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_verify_you_are_using_i3_4_11">1. Verify you are using i3 ≥ 4.11</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Only the latest major version of i3 is supported. To verify which version\r
+you are running, use:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ i3 --moreversion 2>&- || i3 --version\r
+Binary i3 version: 4.7 (2013-12-22, branch "tags/4.7")\r
+Running i3 version: 4.7-84-gac74a63 (2014-01-01, branch "next") (pid 1995)</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Your version can look like this:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+4.7 (release version)\r
+</dt>\r
+<dd>\r
+<p>\r
+You are using a release version. In many cases, bugs are already\r
+fixed in the development version of i3. Even if the bug is not a known fixed\r
+one, we will still ask you to reproduce your error with the most recent\r
+development version of i3. Therefore, please upgrade to a development version\r
+if you can.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+4.7-85-g9c15b95 (development version)\r
+</dt>\r
+<dd>\r
+<p>\r
+Your version is 85 commits newer than 4.7, and the git revision of your\r
+version is <tt>9c15b95</tt>. Go to <a href="http://code.i3wm.org/i3/commit/?h=next">http://code.i3wm.org/i3/commit/?h=next</a> and see if\r
+the line "commit" starts with the same revision. If so, you are using the\r
+latest version.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Development versions of i3 have logging enabled by default and are compiled\r
+with debug symbols.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_enabling_logging">2. Enabling logging</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>If you are using a development version (see previous section), you don’t need\r
+to do anything — skip to section 3.</p></div>\r
+<div class="paragraph"><p>If you are using a release version with a custom <tt>~/.xsession</tt> (or xinitrc)\r
+file, execute i3 with a line like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Use 25 MiB of RAM for debug logs\r
+exec i3 --shmlog-size=26214400</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>If you are <strong>NOT</strong> using an <tt>~/.xsession</tt> file but you just chose "i3" from the\r
+list of sessions in your desktop manager (gdm, lxdm, …), edit\r
+<tt>/usr/share/xsessions/i3.desktop</tt> and replace the <tt>Exec=i3</tt> line with:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>Exec=i3 --shmlog-size=26214400</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>If you cannot restart i3 for some reason, you can enable debug logging on the\r
+fly:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3-msg 'debuglog on; shmlog on; reload'</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_reproducing_the_problem">3. Reproducing the problem</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Before submitting an issue, please make sure to close down on the problem as\r
+much as you can yourself. Here are some steps you should consider:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Find a deterministic, reliable way to reproduce the problem and provide it\r
+ with your bug report.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Try using the default i3 config to reproduce the problem. If the issue does\r
+ not appear with the default config, gradually adapt it to track down what\r
+ change(s) to the config introduce the problem.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Reproduce the problem with a minimal setup, i.e., only use as few applications,\r
+ windows and steps as necessary.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+In addition, try to stick to applications that are common and, even more\r
+ importantly, free / open source.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Before obtaining the log file, restart i3 in-place, execute the steps to\r
+ reproduce the problem and then save the logs. This keeps the log file as\r
+ small as possible and necessary.\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>Please be aware that we cannot support compatibility issues with closed-source\r
+software, as digging into compatibility problems without having access to the\r
+source code is too time-consuming. Additionally, experience has shown that\r
+often, the software in question is responsible for the issue. Please raise an\r
+issue with the software in question, not i3.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_obtaining_the_debug_logfile">4. Obtaining the debug logfile</h2>\r
+<div class="sectionbody">\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Caution</div>\r
+</td>\r
+<td class="content">\r
+<div class="paragraph"><p>Logs may contain sensitive information, so please inspect the log before\r
+submitting it. Logs may be viewed by anyone, once posted. If you choose to\r
+redact the log, make an effort not to discard information which may be relevant\r
+to the issue you are reporting.</p></div>\r
+<div class="paragraph"><p>The best way to avoid submitting such information is to only run the necessary\r
+steps to reproduce the behavior when saving the log file. This will also make\r
+analyzing the log file easier.</p></div>\r
+</td>\r
+</tr></table>\r
+</div>\r
+<div class="paragraph"><p>No matter whether i3 misbehaved in some way without crashing or whether it just\r
+crashed, the logfile provides all information necessary to debug the problem.</p></div>\r
+<div class="paragraph"><p>To upload a compressed version of the logfile (for a bugreport), use:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>DISPLAY=:0 i3-dump-log | bzip2 -c | curl --data-binary @- http://logs.i3wm.org</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This command does not depend on i3 (it also works while i3 displays\r
+the crash dialog), but it requires a working X11 connection.</p></div>\r
+<div class="paragraph"><p>After running it, you will get a URL to the logfile. Please include that URL in\r
+your bug report.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_on_crashes_obtaining_a_backtrace">5. On crashes: Obtaining a backtrace</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When i3 crashes, it will display a dialog stating “i3 just crashed”, offering\r
+you to save a backtrace to a text file.</p></div>\r
+<div class="paragraph"><p>To actually get useful backtraces, you should make sure that your version of i3\r
+is compiled with debug symbols:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ file `which i3`\r
+/usr/bin/i3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically\r
+linked (uses shared libs), for GNU/Linux 2.6.18, not stripped</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Notice the <tt>not stripped</tt>, which is the important part. If you have a version\r
+which is stripped, please check whether your distribution provides debug\r
+symbols (package <tt>i3-wm-dbg</tt> on Debian for example) or if you can turn off\r
+stripping. If nothing helps, please build i3 from source.</p></div>\r
+<div class="paragraph"><p>Once you have made sure that your i3 is compiled with debug symbols and the C\r
+debugger <tt>gdb</tt> is installed on your machine, you can let i3 generate a\r
+backtrace in the crash dialog.</p></div>\r
+<div class="paragraph"><p>After pressing "b" in the crash dialog, you will get a file called\r
+<tt>/tmp/i3-backtrace.%d.%d.txt</tt> where the first <tt>%d</tt> is replaced by i3’s process\r
+id (PID) and the second one is incremented each time you generate a backtrace,\r
+starting at 0.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_sending_bug_reports_debugging_on_irc">6. Sending bug reports/debugging on IRC</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When sending bug reports, please attach the <strong>whole</strong> log file. Even if you think\r
+you found the section which clearly highlights the problem, additional\r
+information might be necessary to completely diagnose the problem.</p></div>\r
+<div class="paragraph"><p>When debugging with us in IRC, be prepared to use a so called nopaste service\r
+such as <a href="http://nopaste.info">http://nopaste.info</a> or <a href="http://pastebin.com">http://pastebin.com</a> because pasting large\r
+amounts of text in IRC sometimes leads to incomplete lines (servers have line\r
+length limitations) or flood kicks.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_debugging_i3bar">7. Debugging i3bar</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>To debug i3bar problems, add <tt>verbose yes</tt> to all <tt>bar {}</tt> blocks in your i3\r
+config, reload your config and then restart all i3bar instances like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ i3 reload\r
+$ killall i3bar\r
+$ for c in $(i3-msg -t get_bar_config | python -c \\r
+ 'import json,sys;print("\n".join(json.load(sys.stdin)))'); do \\r
+ (i3bar --bar_id=$c >i3bar.$c.log 2>&1) & \\r
+ done;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>There will now be <tt>i3bar.*.log</tt> files in your current directory that you can provide\r
+in your bug report.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: Google Summer of Code 2013 ideas</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Google Summer of Code 2013 ideas</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">March 2013</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_idea_1_saved_sessions_in_i3">1. Idea 1: Saved sessions in i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Many desktop environments nowadays have a way of restarting the applications\r
+that you have been using when you reboot your computer.</p></div>\r
+<div class="paragraph"><p>In i3, we want to take that idea a step further: We want to make it possible\r
+for the user to define a precise layout, which is then filled with the\r
+application windows as they start up.</p></div>\r
+<div class="paragraph"><p>Many users are currently achieving a similar effect with custom scripts and\r
+lots of sleep calls to wait for applications to launch and then simulate\r
+interactive commands to move windows around.</p></div>\r
+<div class="paragraph"><p>Many of the building blocks for this feature are already in place, but there\r
+still are a few places of code that need to be touched, a specification to be\r
+written, user feedback to be gathered and documentation to be updated.</p></div>\r
+<div class="sect2">\r
+<h3 id="_desirable_skills">1.1. Desirable skills</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Experience with C (best) or similar programming languages such as Perl, C++\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Willingness and ability to write documentation\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_what_you_will_learn">1.2. What you will learn</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+How X11 and i3 work (not completely, but the most important parts)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How to interact with users\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+What good specification and documentation entails\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_idea_2_testsuite_better_input_and_output">2. Idea 2: Testsuite: better input and output</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 uses a comprehensive testsuite and cares about test-driven development as\r
+well as regression tests. While our testsuite covers quite a lot of code and\r
+works well and fest, it currently only uses the IPC interface to communicate\r
+with i3.</p></div>\r
+<div class="paragraph"><p>The current state enables us to simulate anything a user might also trigger by\r
+a keypress. This does <strong>not</strong> include dragging windows around, moving the mouse,\r
+clicking on things, or handling actual keyboard events. Furthermore, the\r
+testsuite never sees the actual output the user gets to see. Instead, it just\r
+looks at the data structures.</p></div>\r
+<div class="paragraph"><p>Therefore, it would be good to extend the testsuite so that it captures the X11\r
+output and compares it with saved images. Also, X11 input such as mouse and\r
+keyboard input should be simulated somehow (e.g. captured and replayed).</p></div>\r
+<div class="sect2">\r
+<h3 id="_desirable_skills_2">2.1. Desirable skills</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Experience with Perl or willingness to learn it\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Experience with automated software testing or at least a basic understanding\r
+ of the concepts\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Willingness to learn X11 mechanisms to capture output and simulate input\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_what_you_will_learn_2">2.2. What you will learn</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+How real-world testsuites work\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How X11 input/output works\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How to implement an entirely new feature into an existing codebase\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_idea_3_improve_compatibility_with_certain_applications">3. Idea 3: Improve compatibility with certain Applications</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>We often receive bug reports which are specific to certain toolkits and/or\r
+applications. For example, people are reporting problems with the IntelliJ IDE,\r
+Java applications in general, VMware or Half-Life (via Steam).</p></div>\r
+<div class="paragraph"><p>Most often, these problems are caused by i3 doing things slighty differently\r
+than other window managers and can be solved by observing and comparing what\r
+others do and what i3 does.</p></div>\r
+<div class="paragraph"><p>Fixing compatibility problems is a huge gain for the users of said\r
+applications.</p></div>\r
+<div class="sect2">\r
+<h3 id="_desirable_skills_3">3.1. Desirable skills</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Some experience in debugging\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Willingness to look at X11 traces for many minutes :)\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_what_you_will_learn_3">3.2. What you will learn</h3>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+How real-world debugging works, sometimes with open source (Java) and\r
+ sometimes with closed source applications (Half-Life, VMware)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+How X11 works\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: Hacking i3: How To</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Hacking i3: How To</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">February 2013</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document is intended to be the first thing you read before looking and/or\r
+touching i3’s source code. It should contain all important information to help\r
+you understand why things are like they are. If it does not mention something\r
+you find necessary, please do not hesitate to contact me.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_window_managers">1. Window Managers</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>A window manager is not necessarily needed to run X, but it is usually used in\r
+combination with X to facilitate some things. The window manager’s job is to\r
+take care of the placement of windows, to provide the user with some mechanisms\r
+to change the position/size of windows and to communicate with clients to a\r
+certain extent (for example handle fullscreen requests of clients such as\r
+MPlayer).</p></div>\r
+<div class="paragraph"><p>There are no different contexts in which X11 clients run, so a window manager\r
+is just another client, like all other X11 applications. However, it handles\r
+some events which normal clients usually don’t handle.</p></div>\r
+<div class="paragraph"><p>In the case of i3, the tasks (and order of them) are the following:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Grab the key bindings (events will be sent upon keypress/keyrelease)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Iterate through all existing windows (if the window manager is not started as\r
+ the first client of X) and manage them (reparent them, create window\r
+ decorations, etc.)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+When new windows are created, manage them\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle the client’s <tt>_WM_STATE</tt> property, but only <tt>_WM_STATE_FULLSCREEN</tt> and\r
+ <tt>_NET_WM_STATE_DEMANDS_ATTENTION</tt>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle the client’s <tt>WM_NAME</tt> property\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle the client’s size hints to display them proportionally\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle the client’s urgency hint\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle enter notifications (focus follows mouse)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle button (as in mouse buttons) presses for focus/raise on click\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Handle expose events to re-draw own windows such as decorations\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+React to the user’s commands: Change focus, Move windows, Switch workspaces,\r
+ Change the layout mode of a container (default/stacking/tabbed), start a new\r
+ application, restart the window manager\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>In the following chapters, each of these tasks and their implementation details\r
+will be discussed.</p></div>\r
+<div class="sect2">\r
+<h3 id="_tiling_window_managers">1.1. Tiling window managers</h3>\r
+<div class="paragraph"><p>Traditionally, there are two approaches to managing windows: The most common\r
+one nowadays is floating, which means the user can freely move/resize the\r
+windows. The other approach is called tiling, which means that your window\r
+manager distributes windows to use as much space as possible while not\r
+overlapping each other.</p></div>\r
+<div class="paragraph"><p>The idea behind tiling is that you should not need to waste your time\r
+moving/resizing windows while you usually want to get some work done. After\r
+all, most users sooner or later tend to lay out their windows in a way which\r
+corresponds to tiling or stacking mode in i3. Therefore, why not let i3 do this\r
+for you? Certainly, it’s faster than you could ever do it.</p></div>\r
+<div class="paragraph"><p>The problem with most tiling window managers is that they are too inflexible.\r
+In my opinion, a window manager is just another tool, and similar to vim which\r
+can edit all kinds of text files (like source code, HTML, …) and is not limited\r
+to a specific file type, a window manager should not limit itself to a certain\r
+layout (like dwm, awesome, …) but provide mechanisms for you to easily create\r
+the layout you need at the moment.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_the_layout_tree">1.2. The layout tree</h3>\r
+<div class="paragraph"><p>The data structure which i3 uses to keep track of your windows is a tree. Every\r
+node in the tree is a container (type <tt>Con</tt>). Some containers represent actual\r
+windows (every container with a <tt>window != NULL</tt>), some represent split\r
+containers and a few have special purposes: they represent workspaces, outputs\r
+(like VGA1, LVDS1, …) or the X11 root window.</p></div>\r
+<div class="paragraph"><p>So, when you open a terminal and immediately open another one, they reside in\r
+the same split container, which uses the default layout. In case of an empty\r
+workspace, the split container we are talking about is the workspace.</p></div>\r
+<div class="paragraph"><p>To get an impression of how different layouts are represented, just play around\r
+and look at the data structures — they are exposed as a JSON hash. See\r
+<a href="http://i3wm.org/docs/ipc.html#_tree_reply">http://i3wm.org/docs/ipc.html#_tree_reply</a> for documentation on that and an\r
+example.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_files">2. Files</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+include/atoms.xmacro\r
+</dt>\r
+<dd>\r
+<p>\r
+A file containing all X11 atoms which i3 uses. This file will be included\r
+various times (for defining, requesting and receiving the atoms), each time\r
+with a different definition of xmacro().\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+include/data.h\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains data definitions used by nearly all files. You really need to read\r
+this first.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+include/*.h\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains forward definitions for all public functions, as well as\r
+doxygen-compatible comments (so if you want to get a bit more of the big\r
+picture, either browse all header files or use doxygen if you prefer that).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/config_parser.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains a custom configuration parser. See src/command_parser.c for rationale\r
+ on why we use a custom parser.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/click.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains all functions which handle mouse button clicks (right mouse button\r
+clicks initiate resizing and thus are relatively complex).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/command_parser.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains a hand-written parser to parse commands (commands are what\r
+you bind on keys and what you can send to i3 using the IPC interface, like\r
+<em>move left</em> or <em>workspace 4</em>).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/con.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains all functions which deal with containers directly (creating\r
+containers, searching containers, getting specific properties from containers,\r
+…).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/config.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains all functions handling the configuration file (calling the parser\r
+(src/cfgparse.y) with the correct path, switching key bindings mode).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/debug.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains debugging functions to print unhandled X events.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/ewmh.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Functions to get/set certain EWMH properties easily.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/floating.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains functions for floating mode (mostly resizing/dragging).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/handlers.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains all handlers for all kinds of X events (new window title, new hints,\r
+unmapping, key presses, button presses, …).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/ipc.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains code for the IPC interface.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/load_layout.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains code for loading layouts from JSON files.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/log.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains the logging functions.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/main.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Initializes the window manager.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/manage.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Looks at existing or new windows and decides whether to manage them. If so, it\r
+reparents the window and inserts it into our data structures.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/match.c\r
+</dt>\r
+<dd>\r
+<p>\r
+A "match" is a data structure which acts like a mask or expression to match\r
+certain windows or not. For example, when using commands, you can specify a\r
+command like this: [title="<strong>Firefox</strong>"] kill. The title member of the match\r
+data structure will then be filled and i3 will check each window using\r
+match_matches_window() to find the windows affected by this command.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/move.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains code to move a container in a specific direction.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/output.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Functions to handle CT_OUTPUT cons.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/randr.c\r
+</dt>\r
+<dd>\r
+<p>\r
+The RandR API is used to get (and re-query) the configured outputs (monitors,\r
+…).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/render.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Renders the tree data structure by assigning coordinates to every node. These\r
+values will later be pushed to X11 in <tt>src/x.c</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/resize.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains the functions to resize containers.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/restore_layout.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Everything for restored containers that is not pure state parsing (which can be\r
+found in load_layout.c).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/sighandler.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Handles <tt>SIGSEGV</tt>, <tt>SIGABRT</tt> and <tt>SIGFPE</tt> by showing a dialog that i3 crashed.\r
+You can chose to let it dump core, to restart it in-place or to restart it\r
+in-place but forget about the layout.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/tree.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains functions which open or close containers in the tree, change focus or\r
+cleanup ("flatten") the tree. See also <tt>src/move.c</tt> for another similar\r
+function, which was moved into its own file because it is so long.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/util.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains useful functions which are not really dependant on anything.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/window.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Handlers to update X11 window properties like <tt>WM_CLASS</tt>, <tt>_NET_WM_NAME</tt>,\r
+<tt>CLIENT_LEADER</tt>, etc.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/workspace.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains all functions related to workspaces (displaying, hiding, renaming…)\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/x.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Transfers our in-memory tree (see <tt>src/render.c</tt>) to X11.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/xcb.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Contains wrappers to use xcb more easily.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/xcursor.c\r
+</dt>\r
+<dd>\r
+<p>\r
+XCursor functions (for cursor themes).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+src/xinerama.c\r
+</dt>\r
+<dd>\r
+<p>\r
+Legacy support for Xinerama. See <tt>src/randr.c</tt> for the preferred API.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_data_structures">3. Data structures</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>See include/data.h for documented data structures. The most important ones are\r
+explained right here.</p></div>\r
+<div class="paragraph"><p>So, the hierarchy is:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+<strong>X11 root window</strong>, the root container\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>Output container</strong> (LVDS1 in this example)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>Content container</strong> (there are also containers for dock windows)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>Workspaces</strong> (Workspace 1 in this example, with horizontal orientation)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>Split container</strong> (vertically split)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<strong>X11 window containers</strong>\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>The data type is <tt>Con</tt>, in all cases.</p></div>\r
+<div class="sect2">\r
+<h3 id="_x11_root_window">3.1. X11 root window</h3>\r
+<div class="paragraph"><p>The X11 root window is a single window per X11 display (a display is identified\r
+by <tt>:0</tt> or <tt>:1</tt> etc.). The root window is what you draw your background image\r
+on. It spans all the available outputs, e.g. <tt>VGA1</tt> is a specific part of the\r
+root window and <tt>LVDS1</tt> is a specific part of the root window.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_output_container">3.2. Output container</h3>\r
+<div class="paragraph"><p>Every active output obtained through RandR is represented by one output\r
+container. Outputs are considered active when a mode is configured (meaning\r
+something is actually displayed on the output) and the output is not a clone.</p></div>\r
+<div class="paragraph"><p>For example, if your notebook has a screen resolution of 1280x800 px and you\r
+connect a video projector with a resolution of 1024x768 px, set it up in clone\r
+mode (<tt>xrandr --output VGA1 --mode 1024x768 --same-as LVDS1</tt>), i3 will\r
+reduce the resolution to the lowest common resolution and disable one of the\r
+cloned outputs afterwards.</p></div>\r
+<div class="paragraph"><p>However, if you configure it using <tt>xrandr --output VGA1 --mode 1024x768\r
+--right-of LVDS1</tt>, i3 will set both outputs active. For each output, a new\r
+workspace will be assigned. New workspaces are created on the output you are\r
+currently on.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_content_container">3.3. Content container</h3>\r
+<div class="paragraph"><p>Each output has multiple children. Two of them are dock containers which hold\r
+dock clients. The other one is the content container, which holds the actual\r
+content (workspaces) of this output.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_workspace">3.4. Workspace</h3>\r
+<div class="paragraph"><p>A workspace is identified by its name. Basically, you could think of\r
+workspaces as different desks in your office, if you like the desktop\r
+metaphor. They just contain different sets of windows and are completely\r
+separate of each other. Other window managers also call this “Virtual\r
+desktops”.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_split_container">3.5. Split container</h3>\r
+<div class="paragraph"><p>A split container is a container which holds an arbitrary amount of split\r
+containers or X11 window containers. It has an orientation (horizontal or\r
+vertical) and a layout.</p></div>\r
+<div class="paragraph"><p>Split containers (and X11 window containers, which are a subtype of split\r
+containers) can have different border styles.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_x11_window_container">3.6. X11 window container</h3>\r
+<div class="paragraph"><p>An X11 window container holds exactly one X11 window. These are the leaf nodes\r
+of the layout tree, they cannot have any children.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_list_queue_macros">4. List/queue macros</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 makes heavy use of the list macros defined in BSD operating systems. To\r
+ensure that the operating system on which i3 is compiled has all the expected\r
+features, i3 comes with <tt>include/queue.h</tt>. On BSD systems, you can use man\r
+<tt>queue(3)</tt>. On Linux, you have to use google (or read the source).</p></div>\r
+<div class="paragraph"><p>The lists used are <tt>SLIST</tt> (single linked lists), <tt>CIRCLEQ</tt> (circular\r
+queues) and <tt>TAILQ</tt> (tail queues). Usually, only forward traversal is necessary,\r
+so an <tt>SLIST</tt> works fine. If inserting elements at arbitrary positions or at\r
+the end of a list is necessary, a <tt>TAILQ</tt> is used instead. However, for the\r
+windows inside a container, a <tt>CIRCLEQ</tt> is necessary to go from the currently\r
+selected window to the window above/below.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_naming_conventions">5. Naming conventions</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>There is a row of standard variables used in many events. The following names\r
+should be chosen for those:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+“conn” is the xcb_connection_t\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“event” is the event of the particular type\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“con” names a container\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“current” is a loop variable when using <tt>TAILQ_FOREACH</tt> etc.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_startup_src_mainx_c_main">6. Startup (src/mainx.c, main())</h2>\r
+<div class="sectionbody">\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Establish the xcb connection\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Check for XKB extension on the separate X connection, load Xcursor\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Check for RandR screens (with a fall-back to Xinerama)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Grab the keycodes for which bindings exist\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Manage all existing windows\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Enter the event loop\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_keybindings">7. Keybindings</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_grabbing_the_bindings">7.1. Grabbing the bindings</h3>\r
+<div class="paragraph"><p>Grabbing the bindings is quite straight-forward. You pass X your combination of\r
+modifiers and the keycode you want to grab and whether you want to grab them\r
+actively or passively. Most bindings (everything except for bindings using\r
+Mode_switch) are grabbed passively, that is, just the window manager gets the\r
+event and cannot replay it.</p></div>\r
+<div class="paragraph"><p>We need to grab bindings that use Mode_switch actively because of a bug in X.\r
+When the window manager receives the keypress/keyrelease event for an actively\r
+grabbed keycode, it has to decide what to do with this event: It can either\r
+replay it so that other applications get it or it can prevent other\r
+applications from receiving it.</p></div>\r
+<div class="paragraph"><p>So, why do we need to grab keycodes actively? Because X does not set the\r
+state-property of keypress/keyrelease events properly. The Mode_switch bit is\r
+not set and we need to get it using XkbGetState. This means we cannot pass X\r
+our combination of modifiers containing Mode_switch when grabbing the key and\r
+therefore need to grab the keycode itself without any modifiers. This means,\r
+if you bind Mode_switch + keycode 38 ("a"), i3 will grab keycode 38 ("a") and\r
+check on each press of "a" if the Mode_switch bit is set using XKB. If yes, it\r
+will handle the event, if not, it will replay the event.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_handling_a_keypress">7.2. Handling a keypress</h3>\r
+<div class="paragraph"><p>As mentioned in "Grabbing the bindings", upon a keypress event, i3 first gets\r
+the correct state.</p></div>\r
+<div class="paragraph"><p>Then, it looks through all bindings and gets the one which matches the received\r
+event.</p></div>\r
+<div class="paragraph"><p>The bound command is parsed by the cmdparse lexer/parser, see <tt>parse_cmd</tt> in\r
+<tt>src/cmdparse.y</tt>.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_manage_windows_src_main_c_manage_window_and_reparent_window">8. Manage windows (src/main.c, manage_window() and reparent_window())</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><tt>manage_window()</tt> does some checks to decide whether the window should be\r
+managed at all:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Windows have to be mapped, that is, visible on screen\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The override_redirect must not be set. Windows with override_redirect shall\r
+ not be managed by a window manager\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>Afterwards, i3 gets the initial geometry and reparents the window (see\r
+<tt>reparent_window()</tt>) if it wasn’t already managed.</p></div>\r
+<div class="paragraph"><p>Reparenting means that for each window which is reparented, a new window,\r
+slightly larger than the original one, is created. The original window is then\r
+reparented to the bigger one (called "frame").</p></div>\r
+<div class="paragraph"><p>After reparenting, the window type (<tt>_NET_WM_WINDOW_TYPE</tt>) is checked to see\r
+whether this window is a dock (<tt>_NET_WM_WINDOW_TYPE_DOCK</tt>), like dzen2 for\r
+example. Docks are handled differently, they don’t have decorations and are not\r
+assigned to a specific container. Instead, they are positioned at the bottom\r
+or top of the screen (in the appropriate dock area containers). To get the\r
+height which needs to be reserved for the window, the <tt>_NET_WM_STRUT_PARTIAL</tt>\r
+property is used.</p></div>\r
+<div class="paragraph"><p>Furthermore, the list of assignments (to other workspaces, which may be on\r
+other screens) is checked. If the window matches one of the user’s criteria,\r
+it may either be put in floating mode or moved to a different workspace. If the\r
+target workspace is not visible, the window will not be mapped.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_what_happens_when_an_application_is_started">9. What happens when an application is started?</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 does not care about applications. All it notices is when new windows are\r
+mapped (see <tt>src/handlers.c</tt>, <tt>handle_map_request()</tt>). The window is then\r
+reparented (see section "Manage windows").</p></div>\r
+<div class="paragraph"><p>After reparenting the window, <tt>render_tree()</tt> is called which renders the\r
+internal layout table. The new window has been placed in the currently focused\r
+container and therefore the new window and the old windows (if any) need to be\r
+moved/resized so that the currently active layout (default/stacking/tabbed mode)\r
+is rendered correctly. To move/resize windows, a window is “configured” in\r
+X11-speak.</p></div>\r
+<div class="paragraph"><p>Some applications, such as MPlayer obviously assume the window manager is\r
+stupid and try to configure their windows by themselves. This generates an\r
+event called configurerequest. i3 handles these events and tells the window the\r
+size it had before the configurerequest (with the exception of not yet mapped\r
+windows, which get configured like they want to, and floating windows, which\r
+can reconfigure themselves).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_net_wm_state">10. _NET_WM_STATE</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Only the _NET_WM_STATE_FULLSCREEN and _NET_WM_STATE_DEMANDS_ATTENTION atoms\r
+are handled.</p></div>\r
+<div class="paragraph"><p>The former calls “toggle_fullscreen()” for the specific client which just\r
+configures the client to use the whole screen on which it currently is.\r
+Also, it is set as fullscreen_client for the i3Screen.</p></div>\r
+<div class="paragraph"><p>The latter is used to set, read and display urgency hints.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_wm_name">11. WM_NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When the WM_NAME property of a window changes, its decoration (containing the\r
+title) is re-rendered. Note that WM_NAME is in COMPOUND_TEXT encoding which is\r
+totally uncommon and cumbersome. Therefore, the _NET_WM_NAME atom will be used\r
+if present.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_net_wm_name">12. _NET_WM_NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Like WM_NAME, this atom contains the title of a window. However, _NET_WM_NAME\r
+is encoded in UTF-8. i3 will recode it to UCS-2 in order to be able to pass it\r
+to X. Using an appropriate font (ISO-10646), you can see most special\r
+characters (every special character contained in your font).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_size_hints">13. Size hints</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Size hints specify the minimum/maximum size for a given window as well as its\r
+aspect ratio. This is important for clients like mplayer, who only set the\r
+aspect ratio and resize their window to be as small as possible (but only with\r
+some video outputs, for example in Xv, while when using x11, mplayer does the\r
+necessary centering for itself).</p></div>\r
+<div class="paragraph"><p>So, when an aspect ratio was specified, i3 adjusts the height of the window\r
+until the size maintains the correct aspect ratio. For the code to do this, see\r
+src/layout.c, function resize_client().</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_rendering_src_layout_c_render_layout_and_render_container">14. Rendering (src/layout.c, render_layout() and render_container())</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Rendering in i3 version 4 is the step which assigns the correct sizes for\r
+borders, decoration windows, child windows and the stacking order of all\r
+windows. In a separate step (<tt>x_push_changes()</tt>), these changes are pushed to\r
+X11.</p></div>\r
+<div class="paragraph"><p>Keep in mind that all these properties (<tt>rect</tt>, <tt>window_rect</tt> and <tt>deco_rect</tt>)\r
+are temporary, meaning they will be overwritten by calling <tt>render_con</tt>.\r
+Persistent position/size information is kept in <tt>geometry</tt>.</p></div>\r
+<div class="paragraph"><p>The entry point for every rendering operation (except for the case of moving\r
+floating windows around) currently is <tt>tree_render()</tt> which will re-render\r
+everything that’s necessary (for every output, only the currently displayed\r
+workspace is rendered). This behavior is expected to change in the future,\r
+since for a lot of updates, re-rendering everything is not actually necessary.\r
+Focus was on getting it working correct, not getting it work very fast.</p></div>\r
+<div class="paragraph"><p>What <tt>tree_render()</tt> actually does is calling <tt>render_con()</tt> on the root\r
+container and then pushing the changes to X11. The following sections talk\r
+about the different rendering steps, in the order of "top of the tree" (root\r
+container) to the bottom.</p></div>\r
+<div class="sect2">\r
+<h3 id="_rendering_the_root_container">14.1. Rendering the root container</h3>\r
+<div class="paragraph"><p>The i3 root container (<tt>con->type == CT_ROOT</tt>) represents the X11 root window.\r
+It contains one child container for every output (like LVDS1, VGA1, …), which\r
+is available on your computer.</p></div>\r
+<div class="paragraph"><p>Rendering the root will first render all tiling windows and then all floating\r
+windows. This is necessary because a floating window can be positioned in such\r
+a way that it is visible on two different outputs. Therefore, by first\r
+rendering all the tiling windows (of all outputs), we make sure that floating\r
+windows can never be obscured by tiling windows.</p></div>\r
+<div class="paragraph"><p>Essentially, though, this code path will just call <tt>render_con()</tt> for every\r
+output and <tt>x_raise_con(); render_con()</tt> for every floating window.</p></div>\r
+<div class="paragraph"><p>In the special case of having a "global fullscreen" window (fullscreen mode\r
+spanning all outputs), a shortcut is taken and <tt>x_raise_con(); render_con()</tt> is\r
+only called for the global fullscreen window.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_rendering_an_output">14.2. Rendering an output</h3>\r
+<div class="paragraph"><p>Output containers (<tt>con->layout == L_OUTPUT</tt>) represent a hardware output like\r
+LVDS1, VGA1, etc. An output container has three children (at the moment): One\r
+content container (having workspaces as children) and the top/bottom dock area\r
+containers.</p></div>\r
+<div class="paragraph"><p>The rendering happens in the function <tt>render_l_output()</tt> in the following\r
+steps:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Find the content container (<tt>con->type == CT_CON</tt>)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Get the currently visible workspace (<tt>con_get_fullscreen_con(content,\r
+ CF_OUTPUT)</tt>).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If there is a fullscreened window on that workspace, directly render it and\r
+ return, thus ignoring the dock areas.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Sum up the space used by all the dock windows (they have a variable height\r
+ only).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Set the workspace rects (x/y/width/height) based on the position of the\r
+ output (stored in <tt>con->rect</tt>) and the usable space\r
+ (<tt>con->rect.{width,height}</tt> without the space used for dock windows).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Recursively raise and render the output’s child containers (meaning dock\r
+ area containers and the content container).\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_rendering_a_workspace_or_split_container">14.3. Rendering a workspace or split container</h3>\r
+<div class="paragraph"><p>From here on, there really is no difference anymore. All containers are of\r
+<tt>con->type == CT_CON</tt> (whether workspace or split container) and some of them\r
+have a <tt>con->window</tt>, meaning they represent an actual window instead of a\r
+split container.</p></div>\r
+<div class="sect3">\r
+<h4 id="_default_layout">14.3.1. Default layout</h4>\r
+<div class="paragraph"><p>In default layout, containers are placed horizontally or vertically next to\r
+each other (depending on the <tt>con->orientation</tt>). If a child is a leaf node (as\r
+opposed to a split container) and has border style "normal", appropriate space\r
+will be reserved for its window decoration.</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_stacked_layout">14.3.2. Stacked layout</h4>\r
+<div class="paragraph"><p>In stacked layout, only the focused window is actually shown (this is achieved\r
+by calling <tt>x_raise_con()</tt> in reverse focus order at the end of <tt>render_con()</tt>).</p></div>\r
+<div class="paragraph"><p>The available space for the focused window is the size of the container minus\r
+the height of the window decoration for all windows inside this stacked\r
+container.</p></div>\r
+<div class="paragraph"><p>If border style is "1pixel" or "none", no window decoration height will be\r
+reserved (or displayed later on), unless there is more than one window inside\r
+the stacked container.</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_tabbed_layout">14.3.3. Tabbed layout</h4>\r
+<div class="paragraph"><p>Tabbed layout works precisely like stacked layout, but the window decoration\r
+position/size is different: They are placed next to each other on a single line\r
+(fixed height).</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_dock_area_layout">14.3.4. Dock area layout</h4>\r
+<div class="paragraph"><p>This is a special case. Users cannot choose the dock area layout, but it will be\r
+set for the dock area containers. In the dockarea layout (at the moment!),\r
+windows will be placed above each other.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_rendering_a_window">14.4. Rendering a window</h3>\r
+<div class="paragraph"><p>A window’s size and position will be determined in the following way:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Subtract the border if border style is not "none" (but "normal" or "1pixel").\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Subtract the X11 border, if the window has an X11 border > 0.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Obey the aspect ratio of the window (think MPlayer).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Obey the height- and width-increments of the window (think terminal emulator\r
+ which can only be resized in one-line or one-character steps).\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_pushing_updates_to_x11_drawing">15. Pushing updates to X11 / Drawing</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>A big problem with i3 before version 4 was that we just sent requests to X11\r
+anywhere in the source code. This was bad because nobody could understand the\r
+entirety of our interaction with X11, it lead to subtle bugs and a lot of edge\r
+cases which we had to consider all over again.</p></div>\r
+<div class="paragraph"><p>Therefore, since version 4, we have a single file, <tt>src/x.c</tt>, which is\r
+responsible for repeatedly transferring parts of our tree datastructure to X11.</p></div>\r
+<div class="paragraph"><p><tt>src/x.c</tt> consists of multiple parts:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+The state pushing: <tt>x_push_changes()</tt>, which calls <tt>x_push_node()</tt>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+State modification functions: <tt>x_con_init</tt>, <tt>x_reinit</tt>,\r
+ <tt>x_reparent_child</tt>, <tt>x_move_win</tt>, <tt>x_con_kill</tt>, <tt>x_raise_con</tt>, <tt>x_set_name</tt>\r
+ and <tt>x_set_warp_to</tt>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Expose event handling (drawing decorations): <tt>x_deco_recurse()</tt> and\r
+ <tt>x_draw_decoration()</tt>.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="sect2">\r
+<h3 id="_pushing_state_to_x11">15.1. Pushing state to X11</h3>\r
+<div class="paragraph"><p>In general, the function <tt>x_push_changes</tt> should be called to push state\r
+changes. Only when the scope of the state change is clearly defined (for\r
+example only the title of a window) and its impact is known beforehand, one can\r
+optimize this and call <tt>x_push_node</tt> on the appropriate con directly.</p></div>\r
+<div class="paragraph"><p><tt>x_push_changes</tt> works in the following steps:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Clear the eventmask for all mapped windows. This leads to not getting\r
+ useless ConfigureNotify or EnterNotify events which are caused by our\r
+ requests. In general, we only want to handle user input.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Stack windows above each other, in reverse stack order (starting with the\r
+ most obscured/bottom window). This is relevant for floating windows which\r
+ can overlap each other, but also for tiling windows in stacked or tabbed\r
+ containers. We also update the <tt>_NET_CLIENT_LIST_STACKING</tt> hint which is\r
+ necessary for tab drag and drop in Chromium.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>x_push_node</tt> will be called for the root container, recursively calling\r
+ itself for the container’s children. This function actually pushes the\r
+ state, see the next paragraph.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If the pointer needs to be warped to a different position (for example when\r
+ changing focus to a differnt output), it will be warped now.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The eventmask is restored for all mapped windows.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Window decorations will be rendered by calling <tt>x_deco_recurse</tt> on the root\r
+ container, which then recursively calls itself for the children.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If the input focus needs to be changed (because the user focused a different\r
+ window), it will be updated now.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>x_push_node_unmaps</tt> will be called for the root container. This function\r
+ only pushes UnmapWindow requests. Separating the state pushing is necessary\r
+ to handle fullscreen windows (and workspace switches) in a smooth fashion:\r
+ The newly visible windows should be visible before the old windows are\r
+ unmapped.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p><tt>x_push_node</tt> works in the following steps:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Update the window’s <tt>WM_NAME</tt>, if changed (the <tt>WM_NAME</tt> is set on i3\r
+ containers mainly for debugging purposes).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Reparents a child window into the i3 container if the container was created\r
+ for a specific managed window.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If the size/position of the i3 container changed (due to opening a new\r
+ window or switching layouts for example), the window will be reconfigured.\r
+ Also, the pixmap which is used to draw the window decoration/border on is\r
+ reconfigured (pixmaps are size-dependent).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Size/position for the child window is adjusted.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The i3 container is mapped if it should be visible and was not yet mapped.\r
+ When mapping, <tt>WM_STATE</tt> is set to <tt>WM_STATE_NORMAL</tt>. Also, the eventmask of\r
+ the child window is updated and the i3 container’s contents are copied from\r
+ the pixmap.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>x_push_node</tt> is called recursively for all children of the current\r
+ container.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p><tt>x_push_node_unmaps</tt> handles the remaining case of an i3 container being\r
+unmapped if it should not be visible anymore. <tt>WM_STATE</tt> will be set to\r
+<tt>WM_STATE_WITHDRAWN</tt>.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_drawing_window_decorations_borders_backgrounds">15.2. Drawing window decorations/borders/backgrounds</h3>\r
+<div class="paragraph"><p><tt>x_draw_decoration</tt> draws window decorations. It is run for every leaf\r
+container (representing an actual X11 window) and for every non-leaf container\r
+which is in a stacked/tabbed container (because stacked/tabbed containers\r
+display a window decoration for split containers, which consists of a representation\r
+of the child container’s names.</p></div>\r
+<div class="paragraph"><p>Then, parameters are collected to be able to determine whether this decoration\r
+drawing is actually necessary or was already done. This saves a substantial\r
+number of redraws (depending on your workload, but far over 50%).</p></div>\r
+<div class="paragraph"><p>Assuming that we need to draw this decoration, we start by filling the empty\r
+space around the child window (think of MPlayer with a specific aspect ratio)\r
+in the user-configured client background color.</p></div>\r
+<div class="paragraph"><p>Afterwards, we draw the appropriate border (in case of border styles "normal"\r
+and "1pixel") and the top bar (in case of border style "normal").</p></div>\r
+<div class="paragraph"><p>The last step is drawing the window title on the top bar.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_user_commands_parser_specs_commands_spec">16. User commands (parser-specs/commands.spec)</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In the configuration file and when using i3 interactively (with <tt>i3-msg</tt>, for\r
+example), you use commands to make i3 do things, like focus a different window,\r
+set a window to fullscreen, and so on. An example command is <tt>floating enable</tt>,\r
+which enables floating mode for the currently focused window. See the\r
+appropriate section in the <a href="userguide.html">User’s Guide</a> for a reference of\r
+all commands.</p></div>\r
+<div class="paragraph"><p>In earlier versions of i3, interpreting these commands was done using lex and\r
+yacc, but experience has shown that lex and yacc are not well suited for our\r
+command language. Therefore, starting from version 4.2, we use a custom parser\r
+for user commands and the configuration file.\r
+The input specification for this parser can be found in the file\r
+<tt>parser-specs/*.spec</tt>. Should you happen to use Vim as an editor, use\r
+:source parser-specs/highlighting.vim to get syntax highlighting for this file\r
+(highlighting files for other editors are welcome).</p></div>\r
+<div class="listingblock">\r
+<div class="title">Excerpt from commands.spec</div>\r
+<div class="content">\r
+<pre><tt>state INITIAL:\r
+ '[' -> call cmd_criteria_init(); CRITERIA\r
+ 'move' -> MOVE\r
+ 'exec' -> EXEC\r
+ 'workspace' -> WORKSPACE\r
+ 'exit' -> call cmd_exit()\r
+ 'restart' -> call cmd_restart()\r
+ 'reload' -> call cmd_reload()</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The input specification is written in an extremely simple format. The\r
+specification is then converted into C code by the Perl script\r
+generate-commands-parser.pl (the output file names begin with GENERATED and the\r
+files are stored in the <tt>include</tt> directory). The parser implementation\r
+<tt>src/commands_parser.c</tt> includes the generated C code at compile-time.</p></div>\r
+<div class="paragraph"><p>The above excerpt from commands.spec illustrates nearly all features of our\r
+specification format: You describe different states and what can happen within\r
+each state. State names are all-caps; the state in the above excerpt is called\r
+INITIAL. A list of tokens and their actions (separated by an ASCII arrow)\r
+follows. In the excerpt, all tokens are literals, that is, simple text strings\r
+which will be compared with the input. An action is either the name of a state\r
+in which the parser will transition into, or the keyword <em>call</em>, followed by\r
+the name of a function (and optionally a state).</p></div>\r
+<div class="sect2">\r
+<h3 id="_example_the_workspace_state">16.1. Example: The WORKSPACE state</h3>\r
+<div class="paragraph"><p>Let’s have a look at the WORKSPACE state, which is a good example of all\r
+features. This is its definition:</p></div>\r
+<div class="listingblock">\r
+<div class="title">WORKSPACE state (commands.spec)</div>\r
+<div class="content">\r
+<pre><tt># workspace next|prev|next_on_output|prev_on_output\r
+# workspace back_and_forth\r
+# workspace <name>\r
+# workspace number <number>\r
+state WORKSPACE:\r
+ direction = 'next_on_output', 'prev_on_output', 'next', 'prev'\r
+ -> call cmd_workspace($direction)\r
+ 'back_and_forth'\r
+ -> call cmd_workspace_back_and_forth()\r
+ 'number'\r
+ -> WORKSPACE_NUMBER\r
+ workspace = string\r
+ -> call cmd_workspace_name($workspace)</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>As you can see from the commands, there are multiple different valid variants\r
+of the workspace command:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+workspace <direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+ The word <em>workspace</em> can be followed by any of the tokens <em>next</em>,\r
+ <em>prev</em>, <em>next_on_output</em> or <em>prev_on_output</em>. This command will\r
+ switch to the next or previous workspace (optionally on the same\r
+ output).<br />\r
+ There is one function called <tt>cmd_workspace</tt>, which is defined\r
+ in <tt>src/commands.c</tt>. It will handle this kind of command. To know which\r
+ direction was specified, the direction token is stored on the stack\r
+ with the name "direction", which is what the "direction = " means in\r
+ the beginning.<br />\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Note</div>\r
+</td>\r
+<td class="content">Note that you can specify multiple literals in the same line. This has\r
+ exactly the same effect as if you specified <tt>direction =\r
+ 'next_on_output' -> call cmd_workspace($direction)</tt> and so forth.<br /></td>\r
+</tr></table>\r
+</div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Note</div>\r
+</td>\r
+<td class="content">Also note that the order of literals is important here: If <em>next</em> were\r
+ ordered before <em>next_on_output</em>, then <em>next_on_output</em> would never\r
+ match.</td>\r
+</tr></table>\r
+</div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+workspace back_and_forth\r
+</dt>\r
+<dd>\r
+<p>\r
+ This is a very simple case: When the literal <em>back_and_forth</em> is found\r
+ in the input, the function <tt>cmd_workspace_back_and_forth</tt> will be\r
+ called without parameters and the parser will return to the INITIAL\r
+ state (since no other state was specified).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+workspace <name>\r
+</dt>\r
+<dd>\r
+<p>\r
+ In this case, the workspace command is followed by an arbitrary string,\r
+ possibly in quotes, for example "workspace 3" or "workspace bleh".<br />\r
+ This is the first time that the token is actually not a literal (not in\r
+ single quotes), but just called string. Other possible tokens are word\r
+ (the same as string, but stops matching at a whitespace) and end\r
+ (matches the end of the input).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+workspace number <number>\r
+</dt>\r
+<dd>\r
+<p>\r
+ The workspace command has to be followed by the keyword <tt>number</tt>. It\r
+ then transitions into the state <tt>WORKSPACE_NUMBER</tt>, where the actual\r
+ parameter will be read.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_introducing_a_new_command">16.2. Introducing a new command</h3>\r
+<div class="paragraph"><p>The following steps have to be taken in order to properly introduce a new\r
+command (or possibly extend an existing command):</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Define a function beginning with <tt>cmd_</tt> in the file <tt>src/commands.c</tt>. Copy\r
+ the prototype of an existing function.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+After adding a comment on what the function does, copy the comment and\r
+ function definition to <tt>include/commands.h</tt>. Make the comment in the header\r
+ file use double asterisks to make doxygen pick it up.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Write a test case (or extend an existing test case) for your feature, see\r
+ <a href="testsuite.html">i3 testsuite</a>. For now, it is sufficient to simply call\r
+ your command in all the various possible ways.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Extend the parser specification in <tt>parser-specs/commands.spec</tt>. Run the\r
+ testsuite and see if your new function gets called with the appropriate\r
+ arguments for the appropriate input.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Actually implement the feature.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Document the feature in the <a href="userguide.html">User’s Guide</a>.\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_moving_containers">17. Moving containers</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The movement code is pretty delicate. You need to consider all cases before\r
+making any changes or before being able to fully understand how it works.</p></div>\r
+<div class="sect2">\r
+<h3 id="_case_1_moving_inside_the_same_container">17.1. Case 1: Moving inside the same container</h3>\r
+<div class="paragraph"><p>The reference layout for this case is a single workspace in horizontal\r
+orientation with two containers on it. Focus is on the left container (1).</p></div>\r
+<div class="tableblock">\r
+<table rules="all"\r
+width="15%"\r
+frame="border"\r
+cellspacing="0" cellpadding="4">\r
+<col width="50%" />\r
+<col width="50%" />\r
+<tbody>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">1</p></td>\r
+<td align="center" valign="top"><p class="table">2</p></td>\r
+</tr>\r
+</tbody>\r
+</table>\r
+</div>\r
+<div class="paragraph"><p>When moving the left window to the right (command <tt>move right</tt>), tree_move will\r
+look for a container with horizontal orientation and finds the parent of the\r
+left container, that is, the workspace. Afterwards, it runs the code branch\r
+commented with "the easy case": it calls TAILQ_NEXT to get the container right\r
+of the current one and swaps both containers.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_case_2_move_a_container_into_a_split_container">17.2. Case 2: Move a container into a split container</h3>\r
+<div class="paragraph"><p>The reference layout for this case is a horizontal workspace with two\r
+containers. The right container is a v-split with two containers. Focus is on\r
+the left container (1).</p></div>\r
+<div class="tableblock">\r
+<table rules="all"\r
+width="15%"\r
+frame="border"\r
+cellspacing="0" cellpadding="4">\r
+<col width="50%" />\r
+<col width="50%" />\r
+<tbody>\r
+<tr>\r
+<td rowspan="2" align="center" valign="middle"><p class="table">1</p></td>\r
+<td align="center" valign="top"><p class="table">2</p></td>\r
+</tr>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">3</p></td>\r
+</tr>\r
+</tbody>\r
+</table>\r
+</div>\r
+<div class="paragraph"><p>When moving to the right (command <tt>move right</tt>), i3 will work like in case 1\r
+("the easy case"). However, as the right container is not a leaf container, but\r
+a v-split, the left container (1) will be inserted at the right position (below\r
+2, assuming that 2 is focused inside the v-split) by calling <tt>insert_con_into</tt>.</p></div>\r
+<div class="paragraph"><p><tt>insert_con_into</tt> detaches the container from its parent and inserts it\r
+before/after the given target container. Afterwards, the on_remove_child\r
+callback is called on the old parent container which will then be closed, if\r
+empty.</p></div>\r
+<div class="paragraph"><p>Afterwards, <tt>con_focus</tt> will be called to fix the focus stack and the tree will\r
+be flattened.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_case_3_moving_to_non_existant_top_bottom">17.3. Case 3: Moving to non-existant top/bottom</h3>\r
+<div class="paragraph"><p>Like in case 1, the reference layout for this case is a single workspace in\r
+horizontal orientation with two containers on it. Focus is on the left\r
+container:</p></div>\r
+<div class="tableblock">\r
+<table rules="all"\r
+width="15%"\r
+frame="border"\r
+cellspacing="0" cellpadding="4">\r
+<col width="50%" />\r
+<col width="50%" />\r
+<tbody>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">1</p></td>\r
+<td align="center" valign="top"><p class="table">2</p></td>\r
+</tr>\r
+</tbody>\r
+</table>\r
+</div>\r
+<div class="paragraph"><p>This time however, the command is <tt>move up</tt> or <tt>move down</tt>. tree_move will look\r
+for a container with vertical orientation. As it will not find any,\r
+<tt>same_orientation</tt> is NULL and therefore i3 will perform a forced orientation\r
+change on the workspace by creating a new h-split container, moving the\r
+workspace contents into it and then changing the workspace orientation to\r
+vertical. Now it will again search for parent containers with vertical\r
+orientation and it will find the workspace.</p></div>\r
+<div class="paragraph"><p>This time, the easy case code path will not be run as we are not moving inside\r
+the same container. Instead, <tt>insert_con_into</tt> will be called with the focused\r
+container and the container above/below the current one (on the level of\r
+<tt>same_orientation</tt>).</p></div>\r
+<div class="paragraph"><p>Now, <tt>con_focus</tt> will be called to fix the focus stack and the tree will be\r
+flattened.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_case_4_moving_to_existant_top_bottom">17.4. Case 4: Moving to existant top/bottom</h3>\r
+<div class="paragraph"><p>The reference layout for this case is a vertical workspace with two containers.\r
+The bottom one is a h-split containing two containers (1 and 2). Focus is on\r
+the bottom left container (1).</p></div>\r
+<div class="tableblock">\r
+<table rules="all"\r
+width="15%"\r
+frame="border"\r
+cellspacing="0" cellpadding="4">\r
+<col width="50%" />\r
+<col width="50%" />\r
+<tbody>\r
+<tr>\r
+<td colspan="2" align="center" valign="top"><p class="table">3</p></td>\r
+</tr>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">1</p></td>\r
+<td align="center" valign="top"><p class="table">2</p></td>\r
+</tr>\r
+</tbody>\r
+</table>\r
+</div>\r
+<div class="paragraph"><p>This case is very much like case 3, only this time the forced workspace\r
+orientation change does not need to be performed because the workspace already\r
+is in vertical orientation.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_case_5_moving_in_one_child_h_split">17.5. Case 5: Moving in one-child h-split</h3>\r
+<div class="paragraph"><p>The reference layout for this case is a horizontal workspace with two\r
+containers having a v-split on the left side with a one-child h-split on the\r
+bottom. Focus is on the bottom left container (2(h)):</p></div>\r
+<div class="tableblock">\r
+<table rules="all"\r
+width="15%"\r
+frame="border"\r
+cellspacing="0" cellpadding="4">\r
+<col width="50%" />\r
+<col width="50%" />\r
+<tbody>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">1</p></td>\r
+<td rowspan="2" align="center" valign="middle"><p class="table">3</p></td>\r
+</tr>\r
+<tr>\r
+<td align="center" valign="top"><p class="table">2(h)</p></td>\r
+</tr>\r
+</tbody>\r
+</table>\r
+</div>\r
+<div class="paragraph"><p>In this case, <tt>same_orientation</tt> will be set to the h-split container around\r
+the focused container. However, when trying the easy case, the next/previous\r
+container <tt>swap</tt> will be NULL. Therefore, i3 will search again for a\r
+<tt>same_orientation</tt> container, this time starting from the parent of the h-split\r
+container.</p></div>\r
+<div class="paragraph"><p>After determining a new <tt>same_orientation</tt> container (if it is NULL, the\r
+orientation will be force-changed), this case is equivalent to case 2 or case\r
+4.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_case_6_floating_containers">17.6. Case 6: Floating containers</h3>\r
+<div class="paragraph"><p>The reference layout for this case is a horizontal workspace with two\r
+containers plus one floating h-split container. Focus is on the floating\r
+container.</p></div>\r
+<div class="paragraph"><p>TODO: nice illustration. table not possible?</p></div>\r
+<div class="paragraph"><p>When moving up/down, the container needs to leave the floating container and it\r
+needs to be placed on the workspace (at workspace level). This is accomplished\r
+by calling the function <tt>attach_to_workspace</tt>.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_click_handling">18. Click handling</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Without much ado, here is the list of cases which need to be considered:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+click to focus (tiling + floating) and raise (floating)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+click to focus/raise when in stacked/tabbed mode\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+floating_modifier + left mouse button to drag a floating con\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+floating_modifier + right mouse button to resize a floating con\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+click on decoration in a floating con to either initiate a resize (if there\r
+ is more than one child in the floating con) or to drag the\r
+ floating con (if it’s the one at the top).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+click on border in a floating con to resize the floating con\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+floating_modifier + right mouse button to resize a tiling con\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+click on border/decoration to resize a tiling con\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_gotchas">19. Gotchas</h2>\r
+<div class="sectionbody">\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Forgetting to call <tt>xcb_flush(conn);</tt> after sending a request. This usually\r
+ leads to code which looks like it works fine but which does not work under\r
+ certain conditions.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Forgetting to call <tt>floating_fix_coordinates(con, old_rect, new_rect)</tt> after\r
+ moving workspaces across outputs. Coordinates for floating containers are\r
+ not relative to workspace boundaries, so you must correct their coordinates\r
+ or those containers will show up in the wrong workspace or not at all.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_using_git_sending_patches">20. Using git / sending patches</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_introduction">20.1. Introduction</h3>\r
+<div class="paragraph"><p>For a short introduction into using git, see\r
+<a href="http://web.archive.org/web/20121024222556/http://www.spheredev.org/wiki/Git_for_the_lazy">http://web.archive.org/web/20121024222556/http://www.spheredev.org/wiki/Git_for_the_lazy</a>\r
+or, for more documentation, see <a href="http://git-scm.com/documentation">http://git-scm.com/documentation</a></p></div>\r
+<div class="paragraph"><p>Please talk to us before working on new features to see whether they will be\r
+accepted. A good way for this is to open an issue and asking for opinions on it.\r
+Even for accepted features, this can be a good way to refine an idea upfront. However,\r
+we don’t want to see certain features in i3, e.g., switching window focus in an\r
+Alt+Tab like way.</p></div>\r
+<div class="paragraph"><p>When working on bugfixes, please make sure you mention that you are working on\r
+it in the corresponding bug report at <a href="https://github.com/i3/i3/issues">https://github.com/i3/i3/issues</a>. In case\r
+there is no bug report yet, please create one.</p></div>\r
+<div class="paragraph"><p>After you are done, please submit your work for review as a pull request at\r
+<a href="https://github.com/i3/i3">https://github.com/i3/i3</a>.</p></div>\r
+<div class="paragraph"><p>Do not send emails to the mailing list or any author directly, and don’t submit\r
+them in the bugtracker, since all reviews should be done in public at\r
+<a href="https://github.com/i3/i3">https://github.com/i3/i3</a>. In order to make your review go as fast as possible, you\r
+could have a look at previous reviews and see what the common mistakes are.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_which_branch_to_use">20.2. Which branch to use?</h3>\r
+<div class="paragraph"><p>Work on i3 generally happens in two branches: “master” and “next” (the latter\r
+being the default branch, the one that people get when they check out the git\r
+repository).</p></div>\r
+<div class="paragraph"><p>The contents of “master” are always stable. That is, it contains the source code\r
+of the latest release, plus any bugfixes that were applied since that release.</p></div>\r
+<div class="paragraph"><p>New features are only found in the “next” branch. Therefore, if you are working\r
+on a new feature, use the “next” branch. If you are working on a bugfix, use the\r
+“next” branch, too, but make sure your code also works on “master”.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_thought_experiments">21. Thought experiments</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In this section, we collect thought experiments, so that we don’t forget our\r
+thoughts about specific topics. They are not necessary to get into hacking i3,\r
+but if you are interested in one of the topics they cover, you should read them\r
+before asking us why things are the way they are or why we don’t implement\r
+things.</p></div>\r
+<div class="sect2">\r
+<h3 id="_using_cgroups_per_workspace">21.1. Using cgroups per workspace</h3>\r
+<div class="paragraph"><p>cgroups (control groups) are a linux-only feature which provides the ability to\r
+group multiple processes. For each group, you can individually set resource\r
+limits, like allowed memory usage. Furthermore, and more importantly for our\r
+purposes, they serve as a namespace, a label which you can attach to processes\r
+and their children.</p></div>\r
+<div class="paragraph"><p>One interesting use for cgroups is having one cgroup per workspace (or\r
+container, doesn’t really matter). That way, you could set different priorities\r
+and have a workspace for important stuff (say, writing a LaTeX document or\r
+programming) and a workspace for unimportant background stuff (say,\r
+JDownloader). Both tasks can obviously consume a lot of I/O resources, but in\r
+this example it doesn’t really matter if JDownloader unpacks the download a\r
+minute earlier or not. However, your compiler should work as fast as possible.\r
+Having one cgroup per workspace, you would assign more resources to the\r
+programming workspace.</p></div>\r
+<div class="paragraph"><p>Another interesting feature is that an inherent problem of the workspace\r
+concept could be solved by using cgroups: When starting an application on\r
+workspace 1, then switching to workspace 2, you will get the application’s\r
+window(s) on workspace 2 instead of the one you started it on. This is because\r
+the window manager does not have any mapping between the process it starts (or\r
+gets started in any way) and the window(s) which appear.</p></div>\r
+<div class="paragraph"><p>Imagine for example using dmenu: The user starts dmenu by pressing Mod+d, dmenu\r
+gets started with PID 3390. The user then decides to launch Firefox, which\r
+takes a long time. So they enter firefox into dmenu and press enter. Firefox\r
+gets started with PID 4001. When it finally finishes loading, it creates an X11\r
+window and uses MapWindow to make it visible. This is the first time i3\r
+actually gets in touch with Firefox. It decides to map the window, but it has\r
+no way of knowing that this window (even though it has the _NET_WM_PID property\r
+set to 4001) belongs to the dmenu the user started before.</p></div>\r
+<div class="paragraph"><p>How do cgroups help with this? Well, when pressing Mod+d to launch dmenu, i3\r
+would create a new cgroup, let’s call it i3-3390-1. It launches dmenu in that\r
+cgroup, which gets PID 3390. As before, the user enters firefox and Firefox\r
+gets launched with PID 4001. This time, though, the Firefox process with PID\r
+4001 is <strong>also</strong> member of the cgroup i3-3390-1 (because fork()ing in a cgroup\r
+retains the cgroup property). Therefore, when mapping the window, i3 can look\r
+up in which cgroup the process is and can establish a mapping between the\r
+workspace and the window.</p></div>\r
+<div class="paragraph"><p>There are multiple problems with this approach:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Every application has to properly set <tt>_NET_WM_PID</tt>. This is acceptable and\r
+ patches can be written for the few applications which don’t set the hint yet.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It does only work on Linux, since cgroups are a Linux-only feature. Again,\r
+ this is acceptable.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The main problem is that some applications create X11 windows completely\r
+ independent of UNIX processes. An example for this is Chromium (or\r
+ gnome-terminal), which, when being started a second time, communicates with\r
+ the first process and lets the first process open a new window. Therefore, if\r
+ you have a Chromium window on workspace 2 and you are currently working on\r
+ workspace 3, starting <tt>chromium</tt> does not lead to the desired result (the\r
+ window will open on workspace 2).\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>Therefore, my conclusion is that the only proper way of fixing the "window gets\r
+opened on the wrong workspace" problem is in the application itself. Most\r
+modern applications support freedesktop startup-notifications which can be\r
+used for this.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3-config-wizard(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3-config-wizard(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revnumber">version 4.0,</span>\r
+<span id="revdate">July 2011</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-config-wizard - creates a keysym based config based on your layout</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-config-wizard</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_files">3. FILES</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_etc_i3_config_keycodes">3.1. /etc/i3/config.keycodes</h3>\r
+<div class="paragraph"><p>This file contains the default configuration with keycodes. All the bindcode\r
+lines will be transformed to bindsym and the user-specified modifier will be\r
+used.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">4. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-config-wizard is started by i3 in its default config, unless <sub>/.i3/config\r
+exists. i3-config-wizard creates a keysym based i3 config file (based on\r
+/etc/i3/config.keycodes) in </sub>/.i3/config.</p></div>\r
+<div class="paragraph"><p>The advantage of using keysyms is that the config file is easy to read,\r
+understand and modify. However, if we shipped with a keysym based default\r
+config file, the key positions would not be consistent across different\r
+keyboard layouts (take for example the homerow for movement). Therefore, we\r
+ship with a keycode based default config and let the wizard transform it\r
+according to your current keyboard layout.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">5. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3(1)</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_author">6. AUTHOR</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3-migrate-config-to-v4(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3-migrate-config-to-v4(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revnumber">version 4.0,</span>\r
+<span id="revdate">July 2011</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-migrate-config-to-v4 - migrates your i3 config file</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mv ~/.i3/config ~/.i3/old.config\r
+i3-migrate-config-to-v4 ~/.i3/old.config > ~/.i3/config</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">3. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-migrate-config-to-v4 is a Perl script which migrates your old (< version 4)\r
+configuration files to a version 4 config file. The most significant changes\r
+are the new commands (see the release notes).</p></div>\r
+<div class="paragraph"><p>This script will automatically be run by i3 when it detects an old config file.\r
+Please migrate your config file as soon as possible. We plan to include this\r
+script in all i3 release until 2012-08-01. Afterwards, old config files will no\r
+longer be supported.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">4. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3(1)</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_author">5. AUTHOR</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3-msg(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3-msg(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revnumber">version 3.delta,</span>\r
+<span id="revdate">November 2009</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-msg - send messages to i3 window manager</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-msg "message"</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">3. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-msg is a sample implementation for a client using the unix socket IPC\r
+interface to i3. At the moment, it can only be used for sending commands\r
+(like in configuration file for key bindings), but this may change in the\r
+future (staying backwards-compatible, of course).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_example">4. EXAMPLE</h2>\r
+<div class="sectionbody">\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3-msg "bp" # Use 1-px border for current client</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_environment">5. ENVIRONMENT</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_i3sock">5.1. I3SOCK</h3>\r
+<div class="paragraph"><p>If no ipc-socket is specified on the commandline, this variable is used\r
+to determine the path, at wich the unix domain socket is expected, on which\r
+to connect to i3.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">6. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3(1)</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_author">7. AUTHOR</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3-nagbar(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3-nagbar(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revnumber">version 4.0,</span>\r
+<span id="revdate">July 2011</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-nagbar - displays an error bar on top of your screen</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-nagbar -m <em>message</em> -b <em>label</em> <em>action</em></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">3. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3-nagbar is used by i3 to tell you about errors in your configuration file\r
+(for example). While these errors are logged to the logfile (if any), the past\r
+has proven that users are either not aware of their logfile or do not check it\r
+after modifying the configuration file.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_example">4. EXAMPLE</h2>\r
+<div class="sectionbody">\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3-nagbar -m 'You have an error in your i3 config file!' \\r
+-b 'edit config' 'xterm $EDITOR ~/.i3/config'</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">5. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3(1)</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_author">6. AUTHOR</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revnumber">version 4.0,</span>\r
+<span id="revdate">July 2011</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 - an improved dynamic, tiling window manager</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 [-a] [-c configfile] [-C] [-d <loglevel>] [-v] [-V]</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_options">3. OPTIONS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+-a\r
+</dt>\r
+<dd>\r
+<p>\r
+Disables autostart.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-c\r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies an alternate configuration file path.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-C\r
+</dt>\r
+<dd>\r
+<p>\r
+Check the configuration file for validity and exit.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-d\r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies the debug loglevel. To see the most output, use -d all.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-v\r
+</dt>\r
+<dd>\r
+<p>\r
+Display version number (and date of the last commit).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-V\r
+</dt>\r
+<dd>\r
+<p>\r
+Be verbose.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">4. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_introduction">4.1. INTRODUCTION</h3>\r
+<div class="paragraph"><p>i3 was created because wmii, our favorite window manager at the time, didn’t\r
+provide some features we wanted (multi-monitor done right, for example), had\r
+some bugs, didn’t progress since quite some time and wasn’t easy to hack at all\r
+(source code comments/documentation completely lacking). Still, we think the\r
+wmii developers and contributors did a great job. Thank you for inspiring us to\r
+create i3.</p></div>\r
+<div class="paragraph"><p>Please be aware that i3 is primarily targeted at advanced users and developers.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_important_note_to_nvidia_binary_driver_users">4.2. IMPORTANT NOTE TO nVidia BINARY DRIVER USERS</h3>\r
+<div class="paragraph"><p>If you are using the nVidia binary graphics driver (also known as <em>blob</em>)\r
+you need to use the <tt>--force-xinerama</tt> flag (in your ~/.xsession) when starting\r
+i3, like so:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>See also docs/multi-monitor for the full explanation.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_terminology">4.3. TERMINOLOGY</h3>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+Tree\r
+</dt>\r
+<dd>\r
+<p>\r
+i3 keeps your layout in a tree data structure.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Window\r
+</dt>\r
+<dd>\r
+<p>\r
+An X11 window, like the Firefox browser window or a terminal emulator.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Split container\r
+</dt>\r
+<dd>\r
+<p>\r
+A split container contains multiple other split containers or windows.\r
+</p>\r
+<div class="paragraph"><p>Containers can be used in various layouts. The default mode is called "default"\r
+and just resizes each client equally so that it fits.</p></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+A workspace is a set of containers. Other window managers call this "Virtual\r
+Desktops".\r
+</p>\r
+<div class="paragraph"><p>In i3, each workspace is assigned to a specific virtual screen. By default,\r
+screen 1 has workspace 1, screen 2 has workspace 2 and so on… However, when you\r
+create a new workspace (by simply switching to it), it’ll be assigned the\r
+screen you are currently on.</p></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Output\r
+</dt>\r
+<dd>\r
+<p>\r
+Using XRandR, you can have an X11 screen spanning multiple real monitors.\r
+Furthermore, you can set them up in cloning mode or with positions (monitor 1\r
+is left of monitor 2).\r
+</p>\r
+<div class="paragraph"><p>i3 uses the RandR API to query which outputs are available and which screens\r
+are connected to these outputs.</p></div>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_keybindings">5. KEYBINDINGS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Here is a short overview of the default keybindings:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+j/k/l/;\r
+</dt>\r
+<dd>\r
+<p>\r
+Direction keys (left, down, up, right). They are on your homerow (see the mark\r
+on your "j" key). Alternatively, you can use the cursor keys.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Focus window in <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Move window to <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+<number>\r
+</dt>\r
+<dd>\r
+<p>\r
+Switch to workspace <number>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+<number>\r
+</dt>\r
+<dd>\r
+<p>\r
+Move window to workspace <number>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+f\r
+</dt>\r
+<dd>\r
+<p>\r
+Toggle fullscreen mode.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+s\r
+</dt>\r
+<dd>\r
+<p>\r
+Enable stacking layout for the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+e\r
+</dt>\r
+<dd>\r
+<p>\r
+Enable default layout for the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+w\r
+</dt>\r
+<dd>\r
+<p>\r
+Enable tabbed layout for the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+Space\r
+</dt>\r
+<dd>\r
+<p>\r
+Toggle tiling/floating for the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Space\r
+</dt>\r
+<dd>\r
+<p>\r
+Select the first tiling container if the current container is floating and\r
+vice-versa.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+q\r
+</dt>\r
+<dd>\r
+<p>\r
+Kills the current window. This is equivalent to "clicking on the close button",\r
+meaning a polite request to the application to close this window. For example,\r
+Firefox will save its session upon such a request. If the application does not\r
+support that, the window will be killed and it depends on the application what\r
+happens.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+r\r
+</dt>\r
+<dd>\r
+<p>\r
+Restarts i3 in place. Your layout will be preserved.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+e\r
+</dt>\r
+<dd>\r
+<p>\r
+Exits i3.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_files">6. FILES</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_i3_config_or_config_i3_config">6.1. ~/.i3/config (or ~/.config/i3/config)</h3>\r
+<div class="paragraph"><p>When starting, i3 looks for configuration files in the following order:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+~/.i3/config\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/i3/config\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>You can specify a custom path using the -c option.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Sample configuration</div>\r
+<div class="content">\r
+<pre><tt># i3 config file (v4)\r
+\r
+# font for window titles. ISO 10646 = Unicode\r
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
+\r
+# use Mouse+Mod1 to drag floating windows to their wanted position\r
+floating_modifier Mod1\r
+\r
+# start a terminal\r
+bindsym Mod1+Return exec /usr/bin/urxvt\r
+\r
+# kill focused window\r
+bindsym Mod1+Shift+q kill\r
+\r
+# start dmenu (a program launcher)\r
+bindsym Mod1+d exec /usr/bin/dmenu_run\r
+\r
+# change focus\r
+bindsym Mod1+j focus left\r
+bindsym Mod1+k focus down\r
+bindsym Mod1+l focus up\r
+bindsym Mod1+semicolon focus right\r
+\r
+# alternatively, you can use the cursor keys:\r
+bindsym Mod1+Left focus left\r
+bindsym Mod1+Down focus down\r
+bindsym Mod1+Up focus up\r
+bindsym Mod1+Right focus right\r
+\r
+# move focused window\r
+bindsym Mod1+Shift+j move left\r
+bindsym Mod1+Shift+k move down\r
+bindsym Mod1+Shift+l move up\r
+bindsym Mod1+Shift+semicolon move right\r
+\r
+# alternatively, you can use the cursor keys:\r
+bindsym Mod1+Shift+Left move left\r
+bindsym Mod1+Shift+Down move down\r
+bindsym Mod1+Shift+Up move up\r
+bindsym Mod1+Shift+Right move right\r
+\r
+# split in horizontal orientation\r
+bindsym Mod1+h split h\r
+\r
+# split in vertical orientation\r
+bindsym Mod1+v split v\r
+\r
+# enter fullscreen mode for the focused container\r
+bindsym Mod1+f fullscreen\r
+\r
+# change container layout (stacked, tabbed, default)\r
+bindsym Mod1+s layout stacking\r
+bindsym Mod1+w layout tabbed\r
+bindsym Mod1+e layout default\r
+\r
+# toggle tiling / floating\r
+bindsym Mod1+Shift+space floating toggle\r
+\r
+# change focus between tiling / floating windows\r
+bindsym Mod1+space focus mode_toggle\r
+\r
+# focus the parent container\r
+bindsym Mod1+a focus parent\r
+\r
+# focus the child container\r
+#bindsym Mod1+d focus child\r
+\r
+# switch to workspace\r
+bindsym Mod1+1 workspace 1\r
+bindsym Mod1+2 workspace 2\r
+# ..\r
+\r
+# move focused container to workspace\r
+bindsym Mod1+Shift+1 move workspace 1\r
+bindsym Mod1+Shift+2 move workspace 2\r
+# ...\r
+\r
+# reload the configuration file\r
+bindsym Mod1+Shift+c reload\r
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)\r
+bindsym Mod1+Shift+r restart\r
+# exit i3 (logs you out of your X session)\r
+bindsym Mod1+Shift+e exit\r
+\r
+# display workspace buttons plus a statusline generated by i3status\r
+bar {\r
+ status_command i3status\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_xsession">6.2. ~/.xsession</h3>\r
+<div class="paragraph"><p>This file is where you should configure your locales and start i3. It is run by\r
+your login manager (xdm, slim, gdm, …) as soon as you login.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Sample xsession</div>\r
+<div class="content">\r
+<pre><tt># Disable DPMS turning off the screen\r
+xset -dpms\r
+xset s off\r
+\r
+# Disable bell\r
+xset -b\r
+\r
+# Enable zapping (C-A-<Bksp> kills X)\r
+setxkbmap -option terminate:ctrl_alt_bksp\r
+\r
+# Enforce correct locales from the beginning\r
+unset LC_COLLATE\r
+export LC_CTYPE=de_DE.UTF-8\r
+export LC_TIME=de_DE.UTF-8\r
+export LC_NUMERIC=de_DE.UTF-8\r
+export LC_MONETARY=de_DE.UTF-8\r
+export LC_MESSAGES=C\r
+export LC_PAPER=de_DE.UTF-8\r
+export LC_NAME=de_DE.UTF-8\r
+export LC_ADDRESS=de_DE.UTF-8\r
+export LC_TELEPHONE=de_DE.UTF-8\r
+export LC_MEASUREMENT=de_DE.UTF-8\r
+export LC_IDENTIFICATION=de_DE.UTF-8\r
+\r
+# Use XToolkit in java applications\r
+export AWT_TOOLKIT=XToolkit\r
+\r
+# Set background color\r
+xsetroot -solid "#333333"\r
+\r
+# Enable core dumps in case something goes wrong\r
+ulimit -c unlimited\r
+\r
+# Start i3 and log to ~/.i3/logfile\r
+echo "Starting at $(date)" >> ~/.i3/logfile\r
+exec /usr/bin/i3 -V -d all >> ~/.i3/logfile</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_environment">7. ENVIRONMENT</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_i3sock">7.1. I3SOCK</h3>\r
+<div class="paragraph"><p>This variable overwrites the IPC socket path (placed in\r
+/tmp/i3-%u.XXXXXX/ipc-socket.%p by default, where %u is replaced with your UNIX\r
+username, %p is replaced with i3’s PID and XXXXXX is a string of random\r
+characters from the portable filename character set (see mkdtemp(3))). The IPC\r
+socket is used by external programs like i3-msg(1) or i3bar(1).</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_todo">8. TODO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>There is still lot of work to do. Please check our bugtracker for up-to-date\r
+information about tasks which are still not finished.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">9. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>You should have a copy of the userguide (featuring nice screenshots/graphics\r
+which is why this is not integrated into this manpage), the debugging guide,\r
+and the "how to hack" guide. If you are building from source, run:\r
+ <tt>make -C docs</tt></p></div>\r
+<div class="paragraph"><p>You can also access these documents online at <a href="http://i3.zekjur.net/">http://i3.zekjur.net/</a></p></div>\r
+<div class="paragraph"><p>i3-input(1), i3-msg(1), i3-wsbar(1), i3-nagbar(1), i3-config-wizard(1),\r
+i3-migrate-config-to-v4(1)</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_author">10. AUTHOR</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: i3bar input protocol</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes();}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3bar input protocol</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">August 2012</span>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document explains the protocol in which i3bar expects its input. It\r
+provides support for colors, urgency, shortening and easy manipulation.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_rationale_for_chosing_json">1. Rationale for chosing JSON</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Before describing the protocol, let’s cover why JSON is a building block of\r
+this protocol.</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Other bar display programs such as dzen2 or xmobar are using in-band\r
+ signaling: they recognize certain sequences (like ^fg(#330000) in your input\r
+ text). We would like to avoid that and separate information from\r
+ meta-information. By information, we mean the actual output, like the IP\r
+ address of your ethernet adapter and by meta-information, we mean in which\r
+ color it should be displayed right now.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It is easy to write a simple script which manipulates part(s) of the input.\r
+ Each block of information (like a block for the disk space indicator, a block\r
+ for the current IP address, etc.) can be identified specifically and modified\r
+ in whichever way you like.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It remains easy to write a simple script which just suffixes (or prefixes) a\r
+ status line input, because tools like i3status will output their JSON in\r
+ such a way that each line array will be terminated by a newline. Therefore,\r
+ you are not required to use a streaming JSON parser, but you can use any\r
+ JSON parser and write your script in any programming language. In fact, you\r
+ can decide to not bother with the JSON parsing at all and just inject your\r
+ output at a specific position (beginning or end).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Relying on JSON does not introduce any new dependencies. In fact, the IPC\r
+ interface of i3 also uses JSON, therefore i3bar already depends on JSON.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>The only point against using JSON is computational complexity. If that really\r
+bothers you, just use the plain text input format (which i3bar will continue to\r
+support).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_the_protocol">2. The protocol</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The first message of the protocol is a header block, which contains (at least)\r
+the version of the protocol to be used. In case there are significant changes\r
+(not only additions), the version will be incremented. i3bar will still\r
+understand the old protocol version, but in order to use the new one, you need\r
+to provide the correct version. The header block is terminated by a newline and\r
+consists of a single JSON hash:</p></div>\r
+<div class="paragraph"><p><strong>Minimal example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{ "version": 1 }</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>All features example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{ "version": 1, "stop_signal": 10, "cont_signal": 12, "click_events": true }</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>(Note that before i3 v4.3 the precise format had to be <tt>{"version":1}</tt>,\r
+byte-for-byte.)</p></div>\r
+<div class="paragraph"><p>What follows is an infinite array (so it should be parsed by a streaming JSON\r
+parser, but as described above you can go for a simpler solution), whose\r
+elements are one array per status line. A status line is one unit of\r
+information which should be displayed at a time. i3bar will not display any\r
+input until the status line is complete. In each status line, every block will\r
+be represented by a JSON hash:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>[\r
+\r
+ [\r
+ {\r
+ "full_text": "E: 10.0.0.1 (1000 Mbit/s)",\r
+ "color": "#00ff00"\r
+ },\r
+ {\r
+ "full_text": "2012-01-05 20:00:01"\r
+ }\r
+ ],\r
+\r
+ [\r
+ {\r
+ "full_text": "E: 10.0.0.1 (1000 Mbit/s)",\r
+ "color": "#00ff00"\r
+ },\r
+ {\r
+ "full_text": "2012-01-05 20:00:02"\r
+ }\r
+ ],\r
+ …</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Please note that this example was pretty printed for human consumption.\r
+i3status and others will output single statuslines in one line, separated by\r
+\n.</p></div>\r
+<div class="paragraph"><p>You can find an example of a shell script which can be used as your\r
+<tt>status_command</tt> in the bar configuration at\r
+<a href="http://code.stapelberg.de/git/i3/tree/contrib/trivial-bar-script.sh?h=next">http://code.stapelberg.de/git/i3/tree/contrib/trivial-bar-script.sh?h=next</a></p></div>\r
+<div class="sect2">\r
+<h3 id="_header_in_detail">2.1. Header in detail</h3>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+version\r
+</dt>\r
+<dd>\r
+<p>\r
+ The version number (as an integer) of the i3bar protocol you will use.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+stop_signal\r
+</dt>\r
+<dd>\r
+<p>\r
+ Specify to i3bar the signal (as an integer) to send to stop your\r
+ processing.\r
+ The default value (if none is specified) is SIGSTOP.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+cont_signal\r
+</dt>\r
+<dd>\r
+<p>\r
+ Specify to i3bar the signal (as an integer)to send to continue your\r
+ processing.\r
+ The default value (if none is specified) is SIGCONT.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+click_events\r
+</dt>\r
+<dd>\r
+<p>\r
+ If specified and true i3bar will write a infinite array (same as above)\r
+ to your stdin.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_blocks_in_detail">2.2. Blocks in detail</h3>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+full_text\r
+</dt>\r
+<dd>\r
+<p>\r
+ The <tt>full_text</tt> will be displayed by i3bar on the status line. This is the\r
+ only required key.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+short_text\r
+</dt>\r
+<dd>\r
+<p>\r
+ Where appropriate, the <tt>short_text</tt> (string) entry should also be\r
+ provided. It will be used in case the status line needs to be shortened\r
+ because it uses more space than your screen provides. For example, when\r
+ displaying an IPv6 address, the prefix is usually (!) more relevant\r
+ than the suffix, because the latter stays constant when using autoconf,\r
+ while the prefix changes. When displaying the date, the time is more\r
+ important than the date (it is more likely that you know which day it\r
+ is than what time it is).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+color\r
+</dt>\r
+<dd>\r
+<p>\r
+ To make the current state of the information easy to spot, colors can\r
+ be used. For example, the wireless block could be displayed in red\r
+ (using the <tt>color</tt> (string) entry) if the card is not associated with\r
+ any network and in green or yellow (depending on the signal strength)\r
+ when it is associated.\r
+ Colors are specified in hex (like in HTML), starting with a leading\r
+ hash sign. For example, <tt>#ff0000</tt> means red.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+min_width\r
+</dt>\r
+<dd>\r
+<p>\r
+ The minimum width (in pixels) of the block. If the content of the\r
+ <tt>full_text</tt> key take less space than the specified min_width, the block\r
+ will be padded to the left and/or the right side, according to the <tt>align</tt>\r
+ key. This is useful when you want to prevent the whole status line to shift\r
+ when value take more or less space between each iteration.\r
+ The value can also be a string. In this case, the width of the text given\r
+ by <tt>min_width</tt> determines the minimum width of the block. This is useful\r
+ when you want to set a sensible minimum width regardless of which font you\r
+ are using, and at what particular size.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+align\r
+</dt>\r
+<dd>\r
+<p>\r
+ Align text on the <tt>center</tt>, <tt>right</tt> or <tt>left</tt> (default) of the block, when\r
+ the minimum width of the latter, specified by the <tt>min_width</tt> key, is not\r
+ reached.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+name and instance\r
+</dt>\r
+<dd>\r
+<p>\r
+ Every block should have a unique <tt>name</tt> (string) entry so that it can\r
+ be easily identified in scripts which process the output. i3bar\r
+ completely ignores the name and instance fields. Make sure to also\r
+ specify an <tt>instance</tt> (string) entry where appropriate. For example,\r
+ the user can have multiple disk space blocks for multiple mount points.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent\r
+</dt>\r
+<dd>\r
+<p>\r
+ A boolean which specifies whether the current value is urgent. Examples\r
+ are battery charge values below 1 percent or no more available disk\r
+ space (for non-root users). The presentation of urgency is up to i3bar.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+separator\r
+</dt>\r
+<dd>\r
+<p>\r
+ A boolean which specifies whether a separator line should be drawn\r
+ after this block. The default is true, meaning the separator line will\r
+ be drawn. Note that if you disable the separator line, there will still\r
+ be a gap after the block, unless you also use <tt>separator_block_width</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+separator_block_width\r
+</dt>\r
+<dd>\r
+<p>\r
+ The amount of pixels to leave blank after the block. In the middle of\r
+ this gap, a separator line will be drawn unless <tt>separator</tt> is\r
+ disabled. Normally, you want to set this to an odd value (the default\r
+ is 9 pixels), since the separator line is drawn in the middle.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+markup\r
+</dt>\r
+<dd>\r
+<p>\r
+ A string that indicates how the text of the block should be parsed. Set to\r
+ <tt>"pango"</tt> to use <a href="https://developer.gnome.org/pango/stable/PangoMarkupFormat.html">Pango markup</a>.\r
+ Set to <tt>"none"</tt> to not use any markup (default).\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>If you want to put in your own entries into a block, prefix the key with an\r
+underscore (_). i3bar will ignore all keys it doesn’t understand, and prefixing\r
+them with an underscore makes it clear in every script that they are not part\r
+of the i3bar protocol.</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "full_text": "E: 10.0.0.1 (1000 Mbit/s)",\r
+ "_ethernet_vendor": "Intel"\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>In the following example, the longest (widest) possible value of the block is\r
+used to set the minimum width:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "full_text": "CPU 4%",\r
+ "min_width": "CPU 100%",\r
+ "align": "left"\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>An example of a block which uses all possible entries follows:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "full_text": "E: 10.0.0.1 (1000 Mbit/s)",\r
+ "short_text": "10.0.0.1",\r
+ "color": "#00ff00",\r
+ "min_width": 300,\r
+ "align": "right",\r
+ "urgent": false,\r
+ "name": "ethernet",\r
+ "instance": "eth0",\r
+ "separator": true,\r
+ "separator_block_width": 9\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_click_events">2.3. Click events</h3>\r
+<div class="paragraph"><p>If enabled i3bar will send you notifications if the user clicks on a block and\r
+looks like this:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+name\r
+</dt>\r
+<dd>\r
+<p>\r
+ Name of the block, if set\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+instance\r
+</dt>\r
+<dd>\r
+<p>\r
+ Instance of the block, if set\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+x, y\r
+</dt>\r
+<dd>\r
+<p>\r
+ X11 root window coordinates where the click occured\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+button\r
+</dt>\r
+<dd>\r
+<p>\r
+ X11 button ID (for example 1 to 3 for left/middle/right mouse button)\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "name": "ethernet",\r
+ "instance": "eth0",\r
+ "button": 1,\r
+ "x": 1320,\r
+ "y": 1400\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3status(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3status(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revnumber">version 2.9,</span>\r
+<span id="revdate">March 2015</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3status - Generates a status line for i3bar, dzen2 or xmobar</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3status [-c configfile] [-h] [-v]</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_options">3. OPTIONS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+-c\r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies an alternate configuration file path. By default, i3status looks for\r
+configuration files in the following order:\r
+</p>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+~/.i3status.conf\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+~/.config/i3status/config (or $XDG_CONFIG_HOME/i3status/config if set)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/i3status.conf\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/xdg/i3status/config (or $XDG_CONFIG_DIRS/i3status/config if set)\r
+</p>\r
+</li>\r
+</ol></div>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">4. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3status is a small program (about 1500 SLOC) for generating a status bar for\r
+i3bar, dzen2, xmobar or similar programs. It is designed to be very\r
+efficient by issuing a very small number of system calls, as one generally\r
+wants to update such a status line every second. This ensures that even under\r
+high load, your status bar is updated correctly. Also, it saves a bit of energy\r
+by not hogging your CPU as much as spawning the corresponding amount of shell\r
+commands would.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_configuration">5. CONFIGURATION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The basic idea of i3status is that you can specify which "modules" should\r
+be used (the order directive). You can then configure each module with its\r
+own section. For every module, you can specify the output format. See below\r
+for a complete reference.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Sample configuration</div>\r
+<div class="content">\r
+<pre><tt>general {\r
+ output_format = "dzen2"\r
+ colors = true\r
+ interval = 5\r
+}\r
+\r
+order += "ipv6"\r
+order += "disk /"\r
+order += "run_watch DHCP"\r
+order += "run_watch VPNC"\r
+order += "path_exists VPN"\r
+order += "wireless wlan0"\r
+order += "ethernet eth0"\r
+order += "battery 0"\r
+order += "cpu_temperature 0"\r
+order += "load"\r
+order += "tztime local"\r
+order += "tztime berlin"\r
+\r
+wireless wlan0 {\r
+ format_up = "W: (%quality at %essid, %bitrate) %ip"\r
+ format_down = "W: down"\r
+}\r
+\r
+ethernet eth0 {\r
+ # if you use %speed, i3status requires the cap_net_admin capability\r
+ format_up = "E: %ip (%speed)"\r
+ format_down = "E: down"\r
+}\r
+\r
+battery 0 {\r
+ format = "%status %percentage %remaining %emptytime"\r
+ format_down = "No battery"\r
+ status_chr = "⚇ CHR""\r
+ status_bat = "⚡ BAT"\r
+ status_full = "☻ FULL"\r
+ path = "/sys/class/power_supply/BAT%d/uevent"\r
+ low_threshold = 10\r
+}\r
+\r
+run_watch DHCP {\r
+ pidfile = "/var/run/dhclient*.pid"\r
+}\r
+\r
+run_watch VPNC {\r
+ # file containing the PID of a vpnc process\r
+ pidfile = "/var/run/vpnc/pid"\r
+}\r
+\r
+path_exists VPN {\r
+ # path exists when a VPN tunnel launched by nmcli/nm-applet is active\r
+ path = "/proc/sys/net/ipv4/conf/tun0"\r
+}\r
+\r
+tztime local {\r
+ format = "%Y-%m-%d %H:%M:%S"\r
+}\r
+\r
+tztime berlin {\r
+ format = "%Y-%m-%d %H:%M:%S %Z"\r
+ timezone = "Europe/Berlin"\r
+}\r
+\r
+load {\r
+ format = "%5min"\r
+}\r
+\r
+cpu_temperature 0 {\r
+ format = "T: %degrees °C"\r
+ path = "/sys/devices/platform/coretemp.0/temp1_input"\r
+}\r
+\r
+disk "/" {\r
+ format = "%free"\r
+}</tt></pre>\r
+</div></div>\r
+<div class="sect2">\r
+<h3 id="_general">5.1. General</h3>\r
+<div class="paragraph"><p>The <tt>colors</tt> directive will disable all colors if you set it to <tt>false</tt>. You can\r
+also specify the colors that will be used to display "good", "degraded" or "bad"\r
+values using the <tt>color_good</tt>, <tt>color_degraded</tt> or <tt>color_bad</tt> directives,\r
+respectively. Those directives are only used if color support is not disabled by\r
+the <tt>colors</tt> directive. The input format for color values is the canonical RGB\r
+hexadecimal triplet (with no separators between the colors), prefixed by a hash\r
+character ("#").</p></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>color_good = "#00FF00"</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Likewise, you can use the <tt>color_separator</tt> directive to specify the color that\r
+will be used to paint the separator bar. The separator is always output in\r
+color, even when colors are disabled by the <tt>colors</tt> directive. This option has\r
+no effect when <tt>output_format</tt> is set to <tt>i3bar</tt> or <tt>none</tt>.</p></div>\r
+<div class="paragraph"><p>The <tt>interval</tt> directive specifies the time in seconds for which i3status will\r
+sleep before printing the next status line.</p></div>\r
+<div class="paragraph"><p>Using <tt>output_format</tt> you can chose which format strings i3status should\r
+use in its output. Currently available are:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+i3bar\r
+</dt>\r
+<dd>\r
+<p>\r
+i3bar comes with i3 and provides a workspace bar which does the right thing in\r
+multi-monitor situations. It also comes with tray support and can display the\r
+i3status output. This output type uses JSON to pass as much meta-information to\r
+i3bar as possible (like colors, which blocks can be shortened in which way,\r
+etc.).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+dzen2\r
+</dt>\r
+<dd>\r
+<p>\r
+Dzen is a general purpose messaging, notification and menuing program for X11.\r
+It was designed to be scriptable in any language and integrate well with window\r
+managers like dwm, wmii and xmonad though it will work with any windowmanger\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+xmobar\r
+</dt>\r
+<dd>\r
+<p>\r
+xmobar is a minimalistic, text based, status bar. It was designed to work\r
+with the xmonad Window Manager.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+term\r
+</dt>\r
+<dd>\r
+<p>\r
+Use ANSI Escape sequences to produce a terminal-output as close as possible to\r
+the graphical outputs. This makes debugging your config file a little bit\r
+easier because the terminal-output of i3status becomes much more readable, but\r
+should only used for such quick glances, because it will only support very\r
+basic output-features (for example you only get 3 bits of color depth).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+none\r
+</dt>\r
+<dd>\r
+<p>\r
+Does not use any color codes. Separates values by the pipe symbol by default.\r
+This should be used with i3bar and can be used for custom scripts.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>It’s also possible to use the color_good, color_degraded, color_bad directives\r
+to define specific colors per module. If one of these directives is defined\r
+in a module section its value will override the value defined in the general\r
+section just for this module.</p></div>\r
+<div class="paragraph"><p>If you don’t fancy the vertical separators between modules i3status/i3bar\r
+uses by default, you can employ the <tt>separator</tt> directive to configure how\r
+modules are separated. You can either disable the default separator altogether\r
+setting it to the empty string. You might then define separation as part of a\r
+module’s format string. This is your only option when using the i3bar output\r
+format as the separator is drawn by i3bar directly otherwise. For the other\r
+output formats, the provided non-empty string will be automatically enclosed\r
+with the necessary coloring bits if color support is enabled.</p></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>general {\r
+ output_format = "xmobar"\r
+ separator = " "\r
+}\r
+\r
+order += "load"\r
+order += "disk /"\r
+\r
+load {\r
+ format = "[ load: %1min, %5min, %15min ]"\r
+}\r
+disk "/" {\r
+ format = "%avail"\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ipv6">5.2. IPv6</h3>\r
+<div class="paragraph"><p>This module gets the IPv6 address used for outgoing connections (that is, the\r
+best available public IPv6 address on your computer).</p></div>\r
+<div class="paragraph"><p><strong>Example format_up</strong>: <tt>%ip</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format_down</strong>: <tt>no IPv6</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_disk">5.3. Disk</h3>\r
+<div class="paragraph"><p>Gets used, free, available and total amount of bytes on the given mounted filesystem.</p></div>\r
+<div class="paragraph"><p>These values can also be expressed in percentages with the percentage_used,\r
+percentage_free, percentage_avail and percentage_used_of_avail formats.</p></div>\r
+<div class="paragraph"><p>Byte sizes are presented in a human readable format using a set of prefixes\r
+whose type can be specified via the "prefix_type" option. Three sets of\r
+prefixes are available:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+binary\r
+</dt>\r
+<dd>\r
+<p>\r
+IEC prefixes (Ki, Mi, Gi, Ti) represent multiples of powers of 1024.\r
+This is the default.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+decimal\r
+</dt>\r
+<dd>\r
+<p>\r
+SI prefixes (k, M, G, T) represent multiples of powers of 1000.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+custom\r
+</dt>\r
+<dd>\r
+<p>\r
+The custom prefixes (K, M, G, T) represent multiples of powers of 1024.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>It is possible to define a low_threshold that causes the disk text to be\r
+displayed using color_bad. The low_threshold type can be of threshold_type\r
+"bytes_free", "bytes_avail", "percentage_free", or "percentage_avail", where\r
+the former two can be prepended by a generic prefix (k, m, g, t) having\r
+prefix_type. So, if you configure low_threshold to 2, threshold_type to\r
+"gbytes_avail", and prefix_type to "binary", and the remaining available disk\r
+space is below 2 GiB, it will be colored bad. If not specified, threshold_type\r
+is assumed to be "percentage_avail" and low_threshold to be set to 0, which\r
+implies no coloring at all.</p></div>\r
+<div class="paragraph"><p>You can define a different format with the option "format_not_mounted"\r
+which is used if the path is not a mount point. So you can just empty\r
+the output for the given path with adding »format_not_mounted=""«\r
+to the config section.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>disk /mnt/usbstick</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%free (%avail)/ %total</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%percentage_used used, %percentage_free free, %percentage_avail avail</tt></p></div>\r
+<div class="paragraph"><p><strong>Example prefix_type</strong>: <tt>custom</tt></p></div>\r
+<div class="paragraph"><p><strong>Example low_threshold</strong>: <tt>5</tt></p></div>\r
+<div class="paragraph"><p><strong>Example threshold_type</strong>: <tt>percentage_free</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_run_watch">5.4. Run-watch</h3>\r
+<div class="paragraph"><p>Expands the given path to a pidfile and checks if the process ID found inside\r
+is valid (that is, if the process is running). You can use this to check if\r
+a specific application, such as a VPN client or your DHCP client is running.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>run_watch DHCP</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%title: %status</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_path_exists">5.5. Path-exists</h3>\r
+<div class="paragraph"><p>Checks if the given path exists in the filesystem. You can use this to check if\r
+something is active, like for example a VPN tunnel managed by NetworkManager.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>path_exists VPN</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%title: %status</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_wireless">5.6. Wireless</h3>\r
+<div class="paragraph"><p>Gets the link quality, frequency and ESSID of the given wireless network\r
+interface. You can specify different format strings for the network being\r
+connected or not connected.</p></div>\r
+<div class="paragraph"><p>The special interface name <tt>_first_</tt> will be replaced by the first wireless\r
+network interface found on the system (excluding devices starting with "lo").</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>wireless wlan0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>W: (%quality at %essid, %bitrate / %frequency) %ip</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ethernet">5.7. Ethernet</h3>\r
+<div class="paragraph"><p>Gets the IP address and (if possible) the link speed of the given ethernet\r
+interface. Getting the link speed requires the cap_net_admin capability. Set\r
+it using <tt>setcap cap_net_admin=ep $(which i3status)</tt>.</p></div>\r
+<div class="paragraph"><p>The special interface name <tt>_first_</tt> will be replaced by the first non-wireless\r
+network interface found on the system (excluding devices starting with "lo").</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>ethernet eth0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>E: %ip (%speed)</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_battery">5.8. Battery</h3>\r
+<div class="paragraph"><p>Gets the status (charging, discharging, running), percentage, remaining\r
+time and power consumption (in Watts) of the given battery and when it’s\r
+estimated to be empty. If you want to use the last full capacity instead of the\r
+design capacity (when using the design capacity, it may happen that your\r
+battery is at 23% when fully charged because it’s old. In general, I want to\r
+see it this way, because it tells me how worn off my battery is.), just specify\r
+<tt>last_full_capacity = true</tt>. You can hide seconds in the remaining time and\r
+empty time estimations by setting <tt>hide_seconds = true</tt>.</p></div>\r
+<div class="paragraph"><p>If you want the battery percentage to be shown without decimals, add\r
+<tt>integer_battery_capacity = true</tt>.</p></div>\r
+<div class="paragraph"><p>If your battery is represented in a non-standard path in /sys, be sure to\r
+modify the "path" property accordingly, i.e. pointing to the uevent file on\r
+your system. The first occurence of %d gets replaced with the battery number,\r
+but you can just hard-code a path as well.</p></div>\r
+<div class="paragraph"><p>It is possible to define a low_threshold that causes the battery text to be\r
+colored red. The low_threshold type can be of threshold_type "time" or\r
+"percentage". So, if you configure low_threshold to 10 and threshold_type to\r
+"time", and your battery lasts another 9 minutes, it will be colored red.</p></div>\r
+<div class="paragraph"><p>Optionally custom strings including any UTF-8 symbols can be used for different\r
+battery states. This makes it possible to display individual symbols\r
+for each state (charging, discharging, full)\r
+Of course it will also work with special iconic fonts, such as FontAwesome.\r
+If any of this special status strings is omitted, the default (CHR, BAT, FULL)\r
+is used.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>battery 0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%status %remaining (%emptytime %consumption)</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format_down</strong>: <tt>No battery</tt></p></div>\r
+<div class="paragraph"><p><strong>Example status_chr</strong>: <tt>⚇ CHR</tt></p></div>\r
+<div class="paragraph"><p><strong>Example status_bat</strong>: <tt>⚡ BAT</tt></p></div>\r
+<div class="paragraph"><p><strong>Example status_full</strong>: <tt>☻ FULL</tt></p></div>\r
+<div class="paragraph"><p><strong>Example low_threshold</strong>: <tt>30</tt></p></div>\r
+<div class="paragraph"><p><strong>Example threshold_type</strong>: <tt>time</tt></p></div>\r
+<div class="paragraph"><p><strong>Example path</strong>: <tt>/sys/class/power_supply/CMB1/uevent</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_cpu_temperature">5.9. CPU-Temperature</h3>\r
+<div class="paragraph"><p>Gets the temperature of the given thermal zone. It is possible to\r
+define a max_threshold that will color the temperature red in case the\r
+specified thermal zone is getting too hot. Defaults to 75 degrees C.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>cpu_temperature 0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>T: %degrees °C</tt></p></div>\r
+<div class="paragraph"><p><strong>Example max_threshold</strong>: <tt>42</tt></p></div>\r
+<div class="paragraph"><p><strong>Example path</strong>: <tt>/sys/devices/platform/coretemp.0/temp1_input</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_cpu_usage">5.10. CPU Usage</h3>\r
+<div class="paragraph"><p>Gets the percentual CPU usage from <tt>/proc/stat</tt> (Linux) or <tt>sysctl(3)</tt> (FreeBSD/OpenBSD).</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>cpu_usage</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%usage</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_load">5.11. Load</h3>\r
+<div class="paragraph"><p>Gets the system load (number of processes waiting for CPU time in the last\r
+1, 5 and 15 minutes). It is possible to define a max_threshold that will\r
+color the load value red in case the load average of the last minute is\r
+getting higher than the configured threshold. Defaults to 5.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>load</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%1min %5min %15min</tt></p></div>\r
+<div class="paragraph"><p><strong>Example max_threshold</strong>: <tt>"0,1"</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_time">5.12. Time</h3>\r
+<div class="paragraph"><p>Outputs the current time in the local timezone.\r
+To use a different timezone, you can set the TZ environment variable,\r
+or use the <tt>tztime</tt> module.\r
+See <tt>strftime(3)</tt> for details on the format string.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>time</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%Y-%m-%d %H:%M:%S</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_tztime">5.13. TzTime</h3>\r
+<div class="paragraph"><p>Outputs the current time in the given timezone.\r
+If no timezone is given, local time will be used.\r
+See <tt>strftime(3)</tt> for details on the format string.\r
+The system’s timezone database is usually installed in <tt>/usr/share/zoneinfo</tt>.\r
+Files below that path make for valid timezone strings, e.g. for\r
+<tt>/usr/share/zoneinfo/Europe/Berlin</tt> you can set timezone to <tt>Europe/Berlin</tt>\r
+in the <tt>tztime</tt> module.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>tztime berlin</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%Y-%m-%d %H:%M:%S %Z</tt></p></div>\r
+<div class="paragraph"><p><strong>Example timezone</strong>: <tt>Europe/Berlin</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ddate">5.14. DDate</h3>\r
+<div class="paragraph"><p>Outputs the current discordian date in user-specified format. See <tt>ddate(1)</tt> for\r
+details on the format string.\r
+<strong>Note</strong>: Neither <strong>%.</strong> nor <strong>%X</strong> are implemented yet.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>ddate</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%{%a, %b %d%}, %Y%N - %H</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_volume">5.15. Volume</h3>\r
+<div class="paragraph"><p>Outputs the volume of the specified mixer on the specified device. Works only\r
+on Linux because it uses ALSA.\r
+A simplified configuration can be used on FreeBSD and OpenBSD due to\r
+the lack of ALSA, the <tt>device</tt> and <tt>mixer</tt> options can be\r
+ignored on these systems. On these systems the OSS API is used instead to\r
+query <tt>/dev/mixer</tt> directly if <tt>mixer_dix</tt> is -1, otherwise\r
+<tt>/dev/mixer</tt>+mixer_idx+.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>volume master</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>♪: %volume</tt>\r
+<strong>Example format_muted</strong>: <tt>♪: 0%%</tt></p></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>volume master {\r
+ format = "♪: %volume"\r
+ format_muted = "♪: muted (%volume)"\r
+ device = "default"\r
+ mixer = "Master"\r
+ mixer_idx = 0\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_universal_module_options">6. Universal module options</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When using the i3bar output format, there are a few additional options that\r
+can be used with all modules to customize their appearance:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+align\r
+</dt>\r
+<dd>\r
+<p>\r
+ The alignment policy to use when the minimum width (see below) is not\r
+ reached. Either <tt>center</tt> (default), <tt>right</tt> or <tt>left</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+min_width\r
+</dt>\r
+<dd>\r
+<p>\r
+ The minimum width (in pixels) the module should occupy. If the module takes\r
+ less space than the specified size, the block will be padded to the left\r
+ and/or the right side, according to the defined alignment policy. This is\r
+ useful when you want to prevent the whole status line from shifting when\r
+ values take more or less space between each iteration.\r
+ The option can also be a string. In this case, the width of the given text\r
+ determines the minimum width of the block. This is useful when you want to\r
+ set a sensible minimum width regardless of which font you are using, and at\r
+ what particular size. Please note that a number enclosed with quotes will\r
+ still be treated as a number.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>disk "/" {\r
+ format = "%avail"\r
+ align = "left"\r
+ min_width = 100\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_using_i3status_with_dzen2">7. Using i3status with dzen2</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>After installing dzen2, you can directly use it with i3status. Just ensure that\r
+<tt>output_format</tt> is set to <tt>dzen2</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Example for usage of i3status with dzen2</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3status | dzen2 -fg white -ta r -w 1280 \\r
+-fn "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso8859-1"</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_using_i3status_with_xmobar">8. Using i3status with xmobar</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>To get xmobar to start, you might need to copy the default configuration\r
+file to <tt>~/.xmobarrc</tt>. Also, ensure that the <tt>output_format</tt> option for i3status\r
+is set to <tt>xmobar</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Example for usage of i3status with xmobar</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3status | xmobar -o -t "%StdinReader%" -c "[Run StdinReader]"</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_what_about_memory_usage_or_cpu_frequency">9. What about memory usage or CPU frequency?</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>While talking about two specific things, please understand this section as a\r
+general explanation why your favorite information is not included in i3status.</p></div>\r
+<div class="paragraph"><p>Let’s talk about memory usage specifically. It is hard to measure memory in a\r
+way which is accurate or meaningful. An in-depth understanding of how paging\r
+and virtual memory work in your operating system is required. Furthermore, even\r
+if we had a well-defined way of displaying memory usage and you would\r
+understand it, I think that it’s not helpful to repeatedly monitor your memory\r
+usage. One reason for that is that I have not run out of memory in the last few\r
+years. Memory has become so cheap that even in my 4 year old notebook, I have\r
+8 GiB of RAM. Another reason is that your operating system will do the right\r
+thing anyway: Either you have not enough RAM for your workload, but you need to\r
+do it anyway, then your operating system will swap. Or you don’t have enough\r
+RAM and you want to restrict your workload so that it fits, then the operating\r
+system will kill the process using too much RAM and you can act accordingly.</p></div>\r
+<div class="paragraph"><p>For CPU frequency, the situation is similar. Many people don’t understand how\r
+frequency scaling works precisely. The generally recommended CPU frequency\r
+governor ("ondemand") changes the CPU frequency far more often than i3status\r
+could display it. The display number is therefore often incorrect and doesn’t\r
+tell you anything useful either.</p></div>\r
+<div class="paragraph"><p>In general, i3status wants to display things which you would look at\r
+occasionally anyways, like the current date/time, whether you are connected to\r
+a WiFi network or not, and if you have enough disk space to fit that 4.3 GiB\r
+download.</p></div>\r
+<div class="paragraph"><p>However, if you need to look at some kind of information more than once in a\r
+while (like checking repeatedly how full your RAM is), you are probably better\r
+off with a script doing that, which pops up an alert when your RAM usage reaches\r
+a certain threshold. After all, the point of computers is not to burden you\r
+with additional boring tasks like repeatedly checking a number.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_external_scripts_programs_with_i3status">10. External scripts/programs with i3status</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In i3status, we don’t want to implement process management again. Therefore,\r
+there is no module to run arbitrary scripts or commands. Instead, you should\r
+use your shell, for example like this:</p></div>\r
+<div class="paragraph"><p><strong>Example for prepending the i3status output</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>#!/bin/sh\r
+# shell script to prepend i3status with more stuff\r
+\r
+i3status | while :\r
+do\r
+ read line\r
+ echo "mystuff | $line" || exit 1\r
+done</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Put that in some script, say <tt>.bin/my_i3status.sh</tt> and execute that instead of i3status.</p></div>\r
+<div class="paragraph"><p>Note that if you want to use the JSON output format (with colors in i3bar), you\r
+need to use a slightly more complex wrapper script. There are examples in the\r
+contrib/ folder, see <a href="http://code.i3wm.org/i3status/tree/contrib">http://code.i3wm.org/i3status/tree/contrib</a></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_signals">11. SIGNALS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When receiving <tt>SIGUSR1</tt>, i3status’s nanosleep() will be interrupted and thus\r
+you will force an update. You can use killall -USR1 i3status to force an update\r
+after changing the system volume, for example.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">12. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><tt>strftime(3)</tt>, <tt>date(1)</tt>, <tt>glob(3)</tt>, <tt>dzen2(1)</tt>, <tt>xmobar(1)</tt></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_authors">13. AUTHORS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+<div class="paragraph"><p>Thorsten Toepper</p></div>\r
+<div class="paragraph"><p>Baptiste Daroussin</p></div>\r
+<div class="paragraph"><p>Axel Wagner</p></div>\r
+<div class="paragraph"><p>Fernando Tarlá Cardoso Lemos</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+---
+layout: default
+title: Docs
+group: Docs
+---
+<div id="content">
+<h2>Documentation for i3 v4.12</h2>
+
+<p>
+One of i3’s goals is good documentation. The documents which you will find
+below will hopefully answer all your questions. If you have any corrections or
+suggestions please let us know!
+</p>
+
+<div class="docs">
+<h2>For users</h2>
+
+<p style="font-size: 100%; background-color: #444; border-radius: 5px; padding: 0.5em; width: 90%">
+<a href="/docs/userguide.html" style="font-size: 125%"><strong>User’s Guide</strong></a><br>
+Introduction and reference. Read this!
+</p>
+
+<p>
+<a href="/docs/layout-saving.html"><strong>Layout saving/restoring</strong></a><br>
+Explains how to save a layout and restore it in a new i3 session.
+</p>
+
+
+<p>
+<a href="/docs/multi-monitor.html"><strong>Multi-monitor</strong></a><br>
+Interesting for users of the nVidia driver.
+</p>
+
+<p>
+<a href="/docs/debugging.html"><strong>Debugging i3</strong></a><br>
+Explains you how to enable debug logging.
+</p>
+
+<p>
+<a href="/docs/wsbar.html"><strong>External workspace bars</strong></a><br>
+About bar programs such as i3bar or dzen2.
+</p>
+
+<p>
+<a href="/docs/refcard.html"><strong>i3 reference card</strong></a><br>
+Might be useful to memorize i3’s shortcuts.
+</p>
+</div>
+
+<div class="docs">
+<h2>For developers</h2>
+
+<p style="padding-top: 1em">
+<a href="/docs/hacking-howto.html"><strong>Hacking Howto</strong></a><br>
+Helps you if you want to get into i3’s source code.
+</p>
+
+<p>
+<a href="/docs/debugging.html"><strong>Debugging i3</strong></a><br>
+Explains you how to enable debug logging.
+</p>
+
+<p>
+<a href="/docs/ipc.html"><strong>Inter process communication (IPC interface)</strong></a><br>
+Read this if you want to talk to i3 within your script.
+</p>
+
+<p>
+<a href="/docs/testsuite.html"><strong>i3 testsuite</strong></a><br>
+Makes you able to read and write i3 testcases.
+</p>
+
+<p>
+<a href="/docs/i3bar-protocol.html"><strong>i3bar protocol</strong></a><br>
+Documents the JSON based protocol which i3bar uses.
+</p>
+
+</div>
+
+<br style="clear: both">
+
+<h2>User-contributed articles</h2>
+
+<div class="ugdocs">
+
+<p>
+<a href="/docs/buildbot.html"><strong>i3 buildbot setup</strong></a> <span class="author">(2012-09, by Michael)</span><br>
+Describes the <a href="http://www.buildbot.net/">buildbot</a> setup i3 uses for
+automatic docs, compilation and debian packages.
+</p>
+
+<p>
+<a href="/docs/user-contributed/lzap-config.html"><strong>Lukáš Zapletal’s i3
+configuration</strong></a> <span class="author">(2012-08, by Lukáš)</span><br>
+A detailed explanation of Lukáš’s configuration of i3 and related tools.
+</p>
+
+<p>
+<a href="/docs/user-contributed/swapping-workspaces.html"><strong>Swapping
+workspaces</strong></a> <span class="author">(2012-09, by Sagar)</span><br>
+Shows how Sagar uses i3’s IPC interface to swap workspaces between two outputs.
+</p>
+
+<p>
+<a href="/docs/user-contributed/conky-i3bar.html"><strong>Using conky with
+i3bar</strong></a> <span class="author">(2012-11, by Gianrico)</span><br>
+Shows how to configure conky to generate JSON input for i3bar (with colors)!
+</p>
+
+<p>
+<a href="/docs/user-contributed/py3status.html"><strong>Enhanced and extensible
+i3bar with py3status</strong></a> <span class="author">(2013-02, by Ultrabug)</span><br>
+Introduces py3status, a wrapper script for i3status which is easily extensible.
+</p>
+
+<p>
+<a href="/docs/tshirts.html"><strong>i3wm T-shirts</strong></a>
+<span class="author">(2013-12, by Stefan)</span><br>
+Where and how to order official i3 T-shirts.
+</p>
+
+<p>
+<a href="/docs/user-contributed/workspace-current-output.html"><strong>Switch to workspaces on the current output</strong></a>
+<span class="author">(2014-08, by captnfab)</span><br>
+When switching workspaces, i3 sets focus to the output of the target workspace.
+With the script that is presented in this article, you always stay on the same
+output, and instead the workspace is moved.
+</p>
+
+</div>
+
+</div>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: IPC interface (interprocess communication)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>IPC interface (interprocess communication)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">October 2014</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document describes how to interface with i3 from a separate process. This\r
+is useful for example to remote-control i3 (to write test cases for example) or\r
+to get various information like the current workspaces to implement an external\r
+workspace bar.</p></div>\r
+<div class="paragraph"><p>The method of choice for IPC in our case is a unix socket because it has very\r
+little overhead on both sides and is usually available without headaches in\r
+most languages. In the default configuration file, the ipc-socket gets created\r
+in <tt>/tmp/i3-%u.XXXXXX/ipc-socket.%p</tt> where <tt>%u</tt> is your UNIX username, <tt>%p</tt> is\r
+the PID of i3 and XXXXXX is a string of random characters from the portable\r
+filename character set (see mkdtemp(3)). You can get the socketpath from i3 by\r
+calling <tt>i3 --get-socketpath</tt>.</p></div>\r
+<div class="paragraph"><p>All i3 utilities, like <tt>i3-msg</tt> and <tt>i3-input</tt> will read the <tt>I3_SOCKET_PATH</tt>\r
+X11 property, stored on the X11 root window.</p></div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Warning</div>\r
+</td>\r
+<td class="content">\r
+<div class="title">Use an existing library!</div>There are existing libraries for many languages. You can have a look at\r
+<a href="#libraries">[libraries]</a> or search the web if your language of choice is not mentioned.\r
+Usually, it is not necessary to implement low-level communication with i3\r
+directly.</td>\r
+</tr></table>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_establishing_a_connection">1. Establishing a connection</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>To establish a connection, simply open the IPC socket. The following code\r
+snippet illustrates this in Perl:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>use IO::Socket::UNIX;\r
+chomp(my $path = qx(i3 --get-socketpath));\r
+my $sock = IO::Socket::UNIX->new(Peer => $path);</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_sending_messages_to_i3">2. Sending messages to i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>To send a message to i3, you have to format in the binary message format which\r
+i3 expects. This format specifies a magic string in the beginning to ensure\r
+the integrity of messages (to prevent follow-up errors). Following the magic\r
+string comes the length of the payload of the message as 32-bit integer, and\r
+the type of the message as 32-bit integer (the integers are not converted, so\r
+they are in native byte order).</p></div>\r
+<div class="paragraph"><p>The magic string currently is "i3-ipc" and will only be changed when a change\r
+in the IPC API is done which breaks compatibility (we hope that we don’t need\r
+to do that).</p></div>\r
+<div class="paragraph"><p>Currently implemented message types are the following:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+COMMAND (0)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The payload of the message is a command for i3 (like the commands you\r
+ can bind to keys in the configuration file) and will be executed\r
+ directly after receiving it.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+GET_WORKSPACES (1)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Gets the current workspaces. The reply will be a JSON-encoded list of\r
+ workspaces (see the reply section).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+SUBSCRIBE (2)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Subscribes your connection to certain events. See <a href="#events">[events]</a> for a\r
+ description of this message and the concept of events.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+GET_OUTPUTS (3)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Gets the current outputs. The reply will be a JSON-encoded list of outputs\r
+ (see the reply section).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+GET_TREE (4)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Gets the layout tree. i3 uses a tree as data structure which includes\r
+ every container. The reply will be the JSON-encoded tree (see the reply\r
+ section).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+GET_MARKS (5)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Gets a list of marks (identifiers for containers to easily jump to them\r
+ later). The reply will be a JSON-encoded list of window marks (see\r
+ reply section).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+GET_BAR_CONFIG (6)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Gets the configuration (as JSON map) of the workspace bar with the\r
+ given ID. If no ID is provided, an array with all configured bar IDs is\r
+ returned instead.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+GET_VERSION (7)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Gets the version of i3. The reply will be a JSON-encoded dictionary\r
+ with the major, minor, patch and human-readable version.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>So, a typical message could look like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>"i3-ipc" <message length> <message type> <payload></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Or, as a hexdump:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>00000000 69 33 2d 69 70 63 04 00 00 00 00 00 00 00 65 78 |i3-ipc........ex|\r
+00000010 69 74 |it|</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>To generate and send such a message, you could use the following code in Perl:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sub format_ipc_command {\r
+ my ($msg) = @_;\r
+ my $len;\r
+ # Get the real byte count (vs. amount of characters)\r
+ { use bytes; $len = length($msg); }\r
+ return "i3-ipc" . pack("LL", $len, 0) . $msg;\r
+}\r
+\r
+$sock->write(format_ipc_command("exit"));</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_receiving_replies_from_i3">3. Receiving replies from i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Replies from i3 usually consist of a simple string (the length of the string\r
+is the message_length, so you can consider them length-prefixed) which in turn\r
+contain the JSON serialization of a data structure. For example, the\r
+GET_WORKSPACES message returns an array of workspaces (each workspace is a map\r
+with certain attributes).</p></div>\r
+<div class="sect2">\r
+<h3 id="_reply_format">3.1. Reply format</h3>\r
+<div class="paragraph"><p>The reply format is identical to the normal message format. There also is\r
+the magic string, then the message length, then the message type and the\r
+payload.</p></div>\r
+<div class="paragraph"><p>The following reply types are implemented:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+COMMAND (0)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Confirmation/Error code for the COMMAND message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+WORKSPACES (1)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reply to the GET_WORKSPACES message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+SUBSCRIBE (2)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Confirmation/Error code for the SUBSCRIBE message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+OUTPUTS (3)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reply to the GET_OUTPUTS message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+TREE (4)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reply to the GET_TREE message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+MARKS (5)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reply to the GET_MARKS message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+BAR_CONFIG (6)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reply to the GET_BAR_CONFIG message.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+VERSION (7)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Reply to the GET_VERSION message.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_command_reply">3.2. COMMAND reply</h3>\r
+<div class="paragraph"><p>The reply consists of a list of serialized maps for each command that was\r
+parsed. Each has the property <tt>success (bool)</tt> and may also include a\r
+human-readable error message in the property <tt>error (string)</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>[{ "success": true }]</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_workspaces_reply">3.3. WORKSPACES reply</h3>\r
+<div class="paragraph"><p>The reply consists of a serialized list of workspaces. Each workspace has the\r
+following properties:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+num (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The logical number of the workspace. Corresponds to the command\r
+ to switch to this workspace. For named workspaces, this will be -1.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+name (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The name of this workspace (by default num+1), as changed by the\r
+ user. Encoded in UTF-8.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+visible (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether this workspace is currently visible on an output (multiple\r
+ workspaces can be visible at the same time).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+focused (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether this workspace currently has the focus (only one workspace\r
+ can have the focus at the same time).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether a window on this workspace has the "urgent" flag set.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+rect (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The rectangle of this workspace (equals the rect of the output it\r
+ is on), consists of x, y, width, height.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+output (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The video output this workspace is on (LVDS1, VGA1, …).\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>[\r
+ {\r
+ "num": 0,\r
+ "name": "1",\r
+ "visible": true,\r
+ "focused": true,\r
+ "urgent": false,\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 800\r
+ },\r
+ "output": "LVDS1"\r
+ },\r
+ {\r
+ "num": 1,\r
+ "name": "2",\r
+ "visible": false,\r
+ "focused": false,\r
+ "urgent": false,\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 800\r
+ },\r
+ "output": "LVDS1"\r
+ }\r
+]</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_subscribe_reply">3.4. SUBSCRIBE reply</h3>\r
+<div class="paragraph"><p>The reply consists of a single serialized map. The only property is\r
+<tt>success (bool)</tt>, indicating whether the subscription was successful (the\r
+default) or whether a JSON parse error occurred.</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{ "success": true }</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_outputs_reply">3.5. OUTPUTS reply</h3>\r
+<div class="paragraph"><p>The reply consists of a serialized list of outputs. Each output has the\r
+following properties:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+name (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The name of this output (as seen in <tt>xrandr(1)</tt>). Encoded in UTF-8.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+active (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether this output is currently active (has a valid mode).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+current_workspace (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The name of the current workspace that is visible on this output. <tt>null</tt> if\r
+ the output is not active.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+rect (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The rectangle of this output (equals the rect of the output it\r
+ is on), consists of x, y, width, height.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>[\r
+ {\r
+ "name": "LVDS1",\r
+ "active": true,\r
+ "current_workspace": "4",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 800\r
+ }\r
+ },\r
+ {\r
+ "name": "VGA1",\r
+ "active": true,\r
+ "current_workspace": "1",\r
+ "rect": {\r
+ "x": 1280,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 1024\r
+ },\r
+ }\r
+]</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_tree_reply">3.6. TREE reply</h3>\r
+<div class="paragraph"><p>The reply consists of a serialized tree. Each node in the tree (representing\r
+one container) has at least the properties listed below. While the nodes might\r
+have more properties, please do not use any properties which are not documented\r
+here. They are not yet finalized and will probably change!</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+id (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The internal ID (actually a C pointer value) of this container. Do not\r
+ make any assumptions about it. You can use it to (re-)identify and\r
+ address containers when talking to i3.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+name (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The internal name of this container. For all containers which are part\r
+ of the tree structure down to the workspace contents, this is set to a\r
+ nice human-readable name of the container.\r
+ For containers that have an X11 window, the content is the title\r
+ (_NET_WM_NAME property) of that window.\r
+ For all other containers, the content is not defined (yet).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+type (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Type of this container. Can be one of "root", "output", "con",\r
+ "floating_con", "workspace" or "dockarea".\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+border (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Can be either "normal", "none" or "1pixel", dependending on the\r
+ container’s border style.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+current_border_width (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Number of pixels of the border width.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+layout (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Can be either "splith", "splitv", "stacked", "tabbed", "dockarea" or\r
+ "output".\r
+ Other values might be possible in the future, should we add new\r
+ layouts.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+orientation (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Can be either "none" (for non-split containers), "horizontal" or\r
+ "vertical".\r
+ THIS FIELD IS OBSOLETE. It is still present, but your code should not\r
+ use it. Instead, rely on the layout field.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+percent (float)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The percentage which this container takes in its parent. A value of\r
+ <tt>null</tt> means that the percent property does not make sense for this\r
+ container, for example for the root container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+rect (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The absolute display coordinates for this container. Display\r
+ coordinates means that when you have two 1600x1200 monitors on a single\r
+ X11 Display (the standard way), the coordinates of the first window on\r
+ the second monitor are <tt>{ "x": 1600, "y": 0, "width": 1600, "height":\r
+ 1200 }</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+window_rect (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The coordinates of the <strong>actual client window</strong> inside its container.\r
+ These coordinates are relative to the container and do not include the\r
+ window decoration (which is actually rendered on the parent container).\r
+ So, when using the <tt>default</tt> layout, you will have a 2 pixel border on\r
+ each side, making the window_rect <tt>{ "x": 2, "y": 0, "width": 632,\r
+ "height": 366 }</tt> (for example).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+deco_rect (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The coordinates of the <strong>window decoration</strong> inside its container. These\r
+ coordinates are relative to the container and do not include the actual\r
+ client window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+geometry (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The original geometry the window specified when i3 mapped it. Used when\r
+ switching a window to floating mode, for example.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+window (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The X11 window ID of the <strong>actual client window</strong> inside this container.\r
+ This field is set to null for split containers or otherwise empty\r
+ containers. This ID corresponds to what xwininfo(1) and other\r
+ X11-related tools display (usually in hex).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent (bool)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether this container (window or workspace) has the urgency hint set.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+focused (bool)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Whether this container is currently focused.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Please note that in the following example, I have left out some keys/values\r
+which are not relevant for the type of the node. Otherwise, the example would\r
+be by far too long (it already is quite long, despite showing only 1 window and\r
+one dock window).</p></div>\r
+<div class="paragraph"><p>It is useful to have an overview of the structure before taking a look at the\r
+JSON dump:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+root\r
+</p>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+LVDS1\r
+</p>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+topdock\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+content\r
+</p>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+workspace 1\r
+</p>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+window 1\r
+</p>\r
+</li>\r
+</ul></div>\r
+</li>\r
+</ul></div>\r
+</li>\r
+<li>\r
+<p>\r
+bottomdock\r
+</p>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+dock window 1\r
+</p>\r
+</li>\r
+</ul></div>\r
+</li>\r
+</ul></div>\r
+</li>\r
+<li>\r
+<p>\r
+VGA1\r
+</p>\r
+</li>\r
+</ul></div>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "id": 6875648,\r
+ "name": "root",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 800\r
+ },\r
+ "nodes": [\r
+\r
+ {\r
+ "id": 6878320,\r
+ "name": "LVDS1",\r
+ "layout": "output",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 800\r
+ },\r
+ "nodes": [\r
+\r
+ {\r
+ "id": 6878784,\r
+ "name": "topdock",\r
+ "layout": "dockarea",\r
+ "orientation": "vertical",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 0\r
+ },\r
+ },\r
+\r
+ {\r
+ "id": 6879344,\r
+ "name": "content",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 782\r
+ },\r
+ "nodes": [\r
+\r
+ {\r
+ "id": 6880464,\r
+ "name": "1",\r
+ "orientation": "horizontal",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 0,\r
+ "width": 1280,\r
+ "height": 782\r
+ },\r
+ "floating_nodes": [],\r
+ "nodes": [\r
+\r
+ {\r
+ "id": 6929968,\r
+ "name": "#aa0000",\r
+ "border": "normal",\r
+ "percent": 1,\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 18,\r
+ "width": 1280,\r
+ "height": 782\r
+ }\r
+ }\r
+\r
+ ]\r
+ }\r
+\r
+ ]\r
+ },\r
+\r
+ {\r
+ "id": 6880208,\r
+ "name": "bottomdock",\r
+ "layout": "dockarea",\r
+ "orientation": "vertical",\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 782,\r
+ "width": 1280,\r
+ "height": 18\r
+ },\r
+ "nodes": [\r
+\r
+ {\r
+ "id": 6931312,\r
+ "name": "#00aa00",\r
+ "percent": 1,\r
+ "rect": {\r
+ "x": 0,\r
+ "y": 782,\r
+ "width": 1280,\r
+ "height": 18\r
+ }\r
+ }\r
+\r
+ ]\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_marks_reply">3.7. MARKS reply</h3>\r
+<div class="paragraph"><p>The reply consists of a single array of strings for each container that has a\r
+mark. A mark can only be set on one container, so the array is unique.\r
+The order of that array is undefined.</p></div>\r
+<div class="paragraph"><p>If no window has a mark the response will be the empty array [].</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bar_config_reply">3.8. BAR_CONFIG reply</h3>\r
+<div class="paragraph"><p>This can be used by third-party workspace bars (especially i3bar, but others\r
+are free to implement compatible alternatives) to get the <tt>bar</tt> block\r
+configuration from i3.</p></div>\r
+<div class="paragraph"><p>Depending on the input, the reply is either:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+empty input\r
+</dt>\r
+<dd>\r
+<p>\r
+ An array of configured bar IDs\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Bar ID\r
+</dt>\r
+<dd>\r
+<p>\r
+ A JSON map containing the configuration for the specified bar.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Each bar configuration has the following properties:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+id (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The ID for this bar. Included in case you request multiple\r
+ configurations and want to differentiate the different replies.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+mode (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Either <tt>dock</tt> (the bar sets the dock window type) or <tt>hide</tt> (the bar\r
+ does not show unless a specific key is pressed).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+position (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Either <tt>bottom</tt> or <tt>top</tt> at the moment.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+status_command (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Command which will be run to generate a statusline. Each line on stdout\r
+ of this command will be displayed in the bar. At the moment, no\r
+ formatting is supported.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+font (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The font to use for text on the bar.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+workspace_buttons (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Display workspace buttons or not? Defaults to true.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+binding_mode_indicator (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Display the mode indicator or not? Defaults to true.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+verbose (boolean)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Should the bar enable verbose output for debugging? Defaults to false.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+colors (map)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Contains key/value pairs of colors. Each value is a color code in hex,\r
+ formatted #rrggbb (like in HTML).\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>The following colors can be configured at the moment:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+background\r
+</dt>\r
+<dd>\r
+<p>\r
+ Background color of the bar.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+statusline\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text color to be used for the statusline.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+separator\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text color to be used for the separator.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+focused_workspace_text/focused_workspace_bg/focused_workspace_border\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text/background/border color for a workspace button when the workspace\r
+ has focus.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+active_workspace_text/active_workspace_bg/active_workspace_border\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text/background/border color for a workspace button when the workspace\r
+ is active (visible) on some output, but the focus is on another one.\r
+ You can only tell this apart from the focused workspace when you are\r
+ using multiple monitors.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+inactive_workspace_text/inactive_workspace_bg/inactive_workspace_border\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text/background/border color for a workspace button when the workspace\r
+ does not have focus and is not active (visible) on any output. This\r
+ will be the case for most workspaces.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent_workspace_text/urgent_workspace_bg/urgent_workspace_border\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text/background/border color for workspaces which contain at least one\r
+ window with the urgency hint set.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+binding_mode_text/binding_mode_bg/binding_mode_border\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text/background/border color for the binding mode indicator.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example of configured bars:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>["bar-bxuqzf"]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example of bar configuration:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "id": "bar-bxuqzf",\r
+ "mode": "dock",\r
+ "position": "bottom",\r
+ "status_command": "i3status",\r
+ "font": "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1",\r
+ "workspace_buttons": true,\r
+ "binding_mode_indicator": true,\r
+ "verbose": false,\r
+ "colors": {\r
+ "background": "#c0c0c0",\r
+ "statusline": "#00ff00",\r
+ "focused_workspace_text": "#ffffff",\r
+ "focused_workspace_bg": "#000000"\r
+ }\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_version_reply">3.9. VERSION reply</h3>\r
+<div class="paragraph"><p>The reply consists of a single JSON dictionary with the following keys:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+major (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The major version of i3, such as <tt>4</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+minor (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The minor version of i3, such as <tt>2</tt>. Changes in the IPC interface (new\r
+ features) will only occur with new minor (or major) releases. However,\r
+ bugfixes might be introduced in patch releases, too.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+patch (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The patch version of i3, such as <tt>1</tt> (when the complete version is\r
+ <tt>4.2.1</tt>). For versions such as <tt>4.2</tt>, patch will be set to <tt>0</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+human_readable (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ A human-readable version of i3 containing the precise git version,\r
+ build date and branch name. When you need to display the i3 version to\r
+ your users, use the human-readable version whenever possible (since\r
+ this is what <tt>i3 --version</tt> displays, too).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+loaded_config_file_name (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The current config path.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "human_readable" : "4.2-169-gf80b877 (2012-08-05, branch \"next\")",\r
+ "loaded_config_file_name" : "/home/hwangcc23/.i3/config",\r
+ "minor" : 2,\r
+ "patch" : 0,\r
+ "major" : 4\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_events">4. Events</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph" id="events"><p>To get informed when certain things happen in i3, clients can subscribe to\r
+events. Events consist of a name (like "workspace") and an event reply type\r
+(like I3_IPC_EVENT_WORKSPACE). The events sent by i3 are in the same format\r
+as replies to specific commands. However, the highest bit of the message type\r
+is set to 1 to indicate that this is an event reply instead of a normal reply.</p></div>\r
+<div class="paragraph"><p>Caveat: As soon as you subscribe to an event, it is not guaranteed any longer\r
+that the requests to i3 are processed in order. This means, the following\r
+situation can happen: You send a GET_WORKSPACES request but you receive a\r
+"workspace" event before receiving the reply to GET_WORKSPACES. If your\r
+program does not want to cope which such kinds of race conditions (an\r
+event based library may not have a problem here), I suggest you create a\r
+separate connection to receive events.</p></div>\r
+<div class="sect2">\r
+<h3 id="_subscribing_to_events">4.1. Subscribing to events</h3>\r
+<div class="paragraph"><p>By sending a message of type SUBSCRIBE with a JSON-encoded array as payload\r
+you can register to an event.</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>type: SUBSCRIBE\r
+payload: [ "workspace", "output" ]</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_available_events">4.2. Available events</h3>\r
+<div class="paragraph"><p>The numbers in parenthesis is the event type (keep in mind that you need to\r
+strip the highest bit first).</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+workspace (0)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sent when the user switches to a different workspace, when a new\r
+ workspace is initialized or when a workspace is removed (because the\r
+ last client vanished).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+output (1)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sent when RandR issues a change notification (of either screens,\r
+ outputs, CRTCs or output properties).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+mode (2)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sent whenever i3 changes its binding mode.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+window (3)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sent when a client’s window is successfully reparented (that is when i3\r
+ has finished fitting it into a container), when a window received input\r
+ focus or when certain properties of the window have changed.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+barconfig_update (4)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sent when the hidden_state or mode field in the barconfig of any bar\r
+ instance was updated and when the config is reloaded.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+binding (5)\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sent when a configured command binding is triggered with the keyboard or\r
+ mouse\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># the appropriate 4 bytes read from the socket are stored in $input\r
+\r
+# unpack a 32-bit unsigned integer\r
+my $message_type = unpack("L", $input);\r
+\r
+# check if the highest bit is 1\r
+my $is_event = (($message_type >> 31) == 1);\r
+\r
+# use the other bits\r
+my $event_type = ($message_type & 0x7F);\r
+\r
+if ($is_event) {\r
+ say "Received event of type $event_type";\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_workspace_event">4.3. workspace event</h3>\r
+<div class="paragraph"><p>This event consists of a single serialized map containing a property\r
+<tt>change (string)</tt> which indicates the type of the change ("focus", "init",\r
+"empty", "urgent"). A <tt>current (object)</tt> property will be present with the\r
+affected workspace whenever the type of event affects a workspace (otherwise,\r
+it will be +null).</p></div>\r
+<div class="paragraph"><p>When the change is "focus", an <tt>old (object)</tt> property will be present with the\r
+previous workspace. When the first switch occurs (when i3 focuses the\r
+workspace visible at the beginning) there is no previous workspace, and the\r
+<tt>old</tt> property will be set to <tt>null</tt>. Also note that if the previous is empty\r
+it will get destroyed when switching, but will still be present in the "old"\r
+property.</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "change": "focus",\r
+ "current": {\r
+ "id": 28489712,\r
+ "type": "workspace",\r
+ ...\r
+ }\r
+ "old": {\r
+ "id": 28489715,\r
+ "type": "workspace",\r
+ ...\r
+ }\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_output_event">4.4. output event</h3>\r
+<div class="paragraph"><p>This event consists of a single serialized map containing a property\r
+<tt>change (string)</tt> which indicates the type of the change (currently only\r
+"unspecified").</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{ "change": "unspecified" }</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_mode_event">4.5. mode event</h3>\r
+<div class="paragraph"><p>This event consists of a single serialized map containing a property\r
+<tt>change (string)</tt> which holds the name of current mode in use. The name\r
+is the same as specified in config when creating a mode. The default\r
+mode is simply named default.</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{ "change": "default" }</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_window_event">4.6. window event</h3>\r
+<div class="paragraph"><p>This event consists of a single serialized map containing a property\r
+<tt>change (string)</tt> which indicates the type of the change</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<tt>new</tt> - the window has become managed by i3\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>close</tt> - the window has closed\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>focus</tt> - the window has received input focus\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>title</tt> - the window’s title has changed\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>fullscreen_mode</tt> - the window has entered or exited fullscreen mode\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>move</tt> - the window has changed its position in the tree\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>floating</tt> - the window has transitioned to or from floating\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<tt>urgent</tt> - the window has become urgent or lost its urgent status\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>Additionally a <tt>container (object)</tt> field will be present, which consists\r
+of the window’s parent container. Be aware that for the "new" event, the\r
+container will hold the initial name of the newly reparented window (e.g.\r
+if you run urxvt with a shell that changes the title, you will still at\r
+this point get the window title as "urxvt").</p></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "change": "new",\r
+ "container": {\r
+ "id": 35569536,\r
+ "type": "con",\r
+ ...\r
+ }\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_barconfig_update_event">4.7. barconfig_update event</h3>\r
+<div class="paragraph"><p>This event consists of a single serialized map reporting on options from the\r
+barconfig of the specified bar_id that were updated in i3. This event is the\r
+same as a <tt>GET_BAR_CONFIG</tt> reply for the bar with the given id.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_binding_event">4.8. binding event</h3>\r
+<div class="paragraph"><p>This event consists of a single serialized map reporting on the details of a\r
+binding that ran a command because of user input. The <tt>change (sring)</tt> field\r
+indicates what sort of binding event was triggered (right now it will always be\r
+<tt>"run"</tt> but may be expanded in the future).</p></div>\r
+<div class="paragraph"><p>The <tt>binding (object)</tt> field contains details about the binding that was run:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+command (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The i3 command that is configured to run for this binding.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+event_state_mask (array of strings)\r
+</dt>\r
+<dd>\r
+<p>\r
+ The group and modifier keys that were configured with this binding.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+input_code (integer)\r
+</dt>\r
+<dd>\r
+<p>\r
+ If the binding was configured with <tt>bindcode</tt>, this will be the key code\r
+ that was given for the binding. If the binding is a mouse binding, it will be\r
+ the number of the mouse button that was pressed. Otherwise it will be 0.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+symbol (string or null)\r
+</dt>\r
+<dd>\r
+<p>\r
+ If this is a keyboard binding that was configured with <tt>bindsym</tt>, this\r
+ field will contain the given symbol. Otherwise it will be <tt>null</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+input_type (string)\r
+</dt>\r
+<dd>\r
+<p>\r
+ This will be <tt>"keyboard"</tt> or <tt>"mouse"</tt> depending on whether or not this was\r
+ a keyboard or a mouse binding.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ "change": "run",\r
+ "binding": {\r
+ "command": "nop",\r
+ "event_state_mask": [\r
+ "shift",\r
+ "ctrl"\r
+ ],\r
+ "input_code": 0,\r
+ "symbol": "t",\r
+ "input_type": "keyboard"\r
+ }\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also_existing_libraries">5. See also (existing libraries)</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph" id="libraries"><p>For some languages, libraries are available (so you don’t have to implement\r
+all this on your own). This list names some (if you wrote one, please let me\r
+know):</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+C\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+i3 includes a headerfile <tt>i3/ipc.h</tt> which provides you all constants.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<a href="https://github.com/acrisci/i3ipc-glib">https://github.com/acrisci/i3ipc-glib</a>\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Go\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://github.com/proxypoke/i3ipc">https://github.com/proxypoke/i3ipc</a>\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+JavaScript\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://github.com/acrisci/i3ipc-gjs">https://github.com/acrisci/i3ipc-gjs</a>\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Lua\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://github.com/acrisci/i3ipc-lua">https://github.com/acrisci/i3ipc-lua</a>\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Perl\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://metacpan.org/module/AnyEvent::I3">https://metacpan.org/module/AnyEvent::I3</a>\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Python\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://github.com/acrisci/i3ipc-python">https://github.com/acrisci/i3ipc-python</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<a href="https://github.com/whitelynx/i3ipc">https://github.com/whitelynx/i3ipc</a> (not maintained)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<a href="https://github.com/ziberna/i3-py">https://github.com/ziberna/i3-py</a> (not maintained)\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Ruby\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://github.com/veelenga/i3ipc-ruby">https://github.com/veelenga/i3ipc-ruby</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+<a href="https://github.com/badboy/i3-ipc">https://github.com/badboy/i3-ipc</a> (not maintained)\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Rust\r
+</dt>\r
+<dd>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+<a href="https://github.com/tmerr/i3ipc-rs">https://github.com/tmerr/i3ipc-rs</a>\r
+</p>\r
+</li>\r
+</ul></div>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="900"
+ height="300"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.48.1 r9760"
+ version="1.0"
+ sodipodi:docname="keyboard-layer1.svg"
+ inkscape:export-filename="/home/michael/i3/keyboard.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 150 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="900 : 150 : 1"
+ inkscape:persp3d-origin="450 : 100 : 1"
+ id="perspective174" />
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path5387"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path5390"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Tail"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Tail"
+ style="overflow:visible">
+ <g
+ id="g5342"
+ transform="scale(-1.2)">
+ <path
+ id="path5344"
+ d="M -3.8048674,-3.9585227 L 0.54352094,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5346"
+ d="M -1.2866832,-3.9585227 L 3.0617053,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5348"
+ d="M 1.3053582,-3.9585227 L 5.6537466,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5350"
+ d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5352"
+ d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5354"
+ d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ </g>
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ id="path5363"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ id="path5369"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Send"
+ style="overflow:visible;">
+ <path
+ id="path5375"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.2) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Send"
+ style="overflow:visible;">
+ <path
+ id="path5357"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.3) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path5381"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.4) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path5372"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(-5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0437869"
+ inkscape:cx="366.05395"
+ inkscape:cy="149.64675"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:grid-points="true"
+ showgrid="true"
+ gridtolerance="15px"
+ showborder="false"
+ inkscape:window-width="956"
+ inkscape:window-height="1126"
+ inkscape:window-x="1600"
+ inkscape:window-y="54"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-to-guides="false"
+ inkscape:snap-grids="false"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="7.5px"
+ spacingy="7.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.12156863"
+ empopacity="0.25098039"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,0 L 60,0 L 60,60 L 0,60 L 0,0 z "
+ id="rect2186" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 60,0 L 120,0 L 120,60 L 60,60 L 60,0 z "
+ id="rect2218" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 120,0 L 180,0 L 180,60 L 120,60 L 120,0 z "
+ id="rect2222" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 180,0 L 240,0 L 240,60 L 180,60 L 180,0 z "
+ id="rect2228" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,0 L 300,0 L 300,60 L 240,60 L 240,0 z "
+ id="rect2230" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 300,0 L 360,0 L 360,60 L 300,60 L 300,0 z "
+ id="rect2232" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 360,0 L 420,0 L 420,60 L 360,60 L 360,0 z "
+ id="rect2234" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 420,0 L 480,0 L 480,60 L 420,60 L 420,0 z "
+ id="rect2236" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 480,0 L 540,0 L 540,60 L 480,60 L 480,0 z "
+ id="rect2238" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 540,0 L 600,0 L 600,60 L 540,60 L 540,0 z "
+ id="rect2240" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,0 L 660,0 L 660,60 L 600,60 L 600,0 z "
+ id="rect2242" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 660,0 L 720,0 L 720,60 L 660,60 L 660,0 z "
+ id="rect2244" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 720,0 L 780,0 L 780,60 L 720,60 L 720,0 z "
+ id="rect2246" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 780,0 L 900,0 L 900,60 L 780,60 L 780,0 z "
+ id="rect2248" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,60 L 90,60 L 90,120 L 0,120 L 0,60 z "
+ id="rect2250" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,60 L 150,60 L 150,120 L 90,120 L 90,60 z "
+ id="rect2252" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,60 L 210,60 L 210,120 L 150,120 L 150,60 z "
+ id="rect2254" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 210,60 L 270,60 L 270,120 L 210,120 L 210,60 z "
+ id="rect2256" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 270,60 L 330,60 L 330,120 L 270,120 L 270,60 z "
+ id="rect2258" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
+ d="m 330,60 60,0 0,60 -60,0 0,-60 z"
+ id="rect2262" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 390,60 L 450,60 L 450,120 L 390,120 L 390,60 z "
+ id="rect2264" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 450,60 L 510,60 L 510,120 L 450,120 L 450,60 z "
+ id="rect2266" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 510,60 L 570,60 L 570,120 L 510,120 L 510,60 z "
+ id="rect2270" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 570,60 L 630,60 L 630,120 L 570,120 L 570,60 z "
+ id="rect2272" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 630,60 L 690,60 L 690,120 L 630,120 L 630,60 z "
+ id="rect2274" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,60 L 750,60 L 750,120 L 690,120 L 690,60 z "
+ id="rect2278" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,60 L 810,60 L 810,120 L 750,120 L 750,60 z "
+ id="rect2280" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,60 L 900,60 L 900,120 L 810,120 L 810,60 z "
+ id="rect2284" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,120 L 105,120 L 105,180 L 0,180 L 0,120 z "
+ id="rect2286" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 105,120 L 165,120 L 165,180 L 105,180 L 105,120 z "
+ id="rect2292" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 165,120 L 225,120 L 225,180 L 165,180 L 165,120 z "
+ id="rect2296" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 225,120 L 285,120 L 285,180 L 225,180 L 225,120 z "
+ id="rect2298" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 285,120 L 345,120 L 345,180 L 285,180 L 285,120 z "
+ id="rect2300" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 345,120 L 405,120 L 405,180 L 345,180 L 345,120 z "
+ id="rect2302" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 405,120 L 465,120 L 465,180 L 405,180 L 405,120 z "
+ id="rect2306" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 465,120 L 525,120 L 525,180 L 465,180 L 465,120 z "
+ id="rect2308" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 525,120 L 585,120 L 585,180 L 525,180 L 525,120 z "
+ id="rect2312" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 585,120 L 645,120 L 645,180 L 585,180 L 585,120 z "
+ id="rect2314" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 645,120 L 705,120 L 705,180 L 645,180 L 645,120 z "
+ id="rect2316" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 705,120 L 765,120 L 765,180 L 705,180 L 705,120 z "
+ id="rect2318" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 765,120 L 900,120 L 900,180 L 765,180 L 765,120 z "
+ id="rect2320" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,180 L 135,180 L 135,240 L 0,240 L 0,180 z "
+ id="rect2322" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 135,180 L 195,180 L 195,240 L 135,240 L 135,180 z "
+ id="rect2324" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 195,180 L 255,180 L 255,240 L 195,240 L 195,180 z "
+ id="rect2326" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 255,180 L 315,180 L 315,240 L 255,240 L 255,180 z "
+ id="rect2330" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 315,180 L 375,180 L 375,240 L 315,240 L 315,180 z "
+ id="rect2334" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 375,180 L 435,180 L 435,240 L 375,240 L 375,180 z "
+ id="rect2336" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 435,180 L 495,180 L 495,240 L 435,240 L 435,180 z "
+ id="rect2338" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 495,180 L 555,180 L 555,240 L 495,240 L 495,180 z "
+ id="rect2340" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 555,180 L 615,180 L 615,240 L 555,240 L 555,180 z "
+ id="rect2342" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 615,180 L 675,180 L 675,240 L 615,240 L 615,180 z "
+ id="rect2344" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 675,180 L 735,180 L 735,240 L 675,240 L 675,180 z "
+ id="rect2346" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 735,180 L 900,180 L 900,240 L 735,240 L 735,180 z "
+ id="rect2348" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,240 L 90,240 L 90,300 L 0,300 L 0,240 z "
+ id="rect2350" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,240 L 900,240 L 900,300 L 810,300 L 810,240 z "
+ id="rect2352" />
+ <path
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,240 L 240,240 L 240,300 L 150,300 L 150,240 z "
+ id="rect2354" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,240 L 690,240 L 690,300 L 600,300 L 600,240 z "
+ id="rect2360" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,240 L 600,240 L 600,300 L 240,300 L 240,240 z "
+ id="rect2362" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,240 L 150,240 L 150,300 L 90,300 L 90,240 z "
+ id="rect2364" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,240 L 750,240 L 750,300 L 690,300 L 690,240 z "
+ id="rect2366" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,240 L 810,240 L 810,300 L 750,300 L 750,240 z "
+ id="rect2368" />
+ <path
+ style=""
+ d=""
+ id="flowRoot4146" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 75.351563,18.826172 L 74.4375,11.056641 L 74.4375,6.3691406 L 78.046875,6.3691406 L 78.046875,11.056641 L 77.132813,18.826172 L 75.351563,18.826172 M 74.484375,23.630859 L 74.484375,20.173828 L 77.964844,20.173828 L 77.964844,23.630859 L 74.484375,23.630859 M 75.351563,53.630859 L 75.351563,42.158203 L 71.34375,42.158203 L 71.34375,39.802734 L 71.601563,39.802734 C 73.062496,39.802748 74.124995,39.576186 74.789063,39.123047 C 75.460931,38.669937 75.855462,37.912125 75.972656,36.849609 L 78.65625,36.849609 L 78.65625,53.630859 L 75.351563,53.630859"
+ id="text5091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 23.34375,14.220703 L 23.34375,16.810547 C 22.531233,17.365241 21.761702,17.775396 21.035156,18.041016 C 20.316391,18.298833 19.605455,18.42774 18.902344,18.427734 C 18.542956,18.42774 18.183581,18.39649 17.824219,18.333984 C 17.464832,18.27149 17.105457,18.181646 16.746094,18.064453 C 16.558583,18.001959 16.281239,17.904303 15.914063,17.771484 C 14.203116,17.185553 12.902336,16.892585 12.011719,16.892578 C 11.34765,16.892585 10.652339,17.041022 9.9257813,17.337891 C 9.2070275,17.626959 8.3984345,18.091802 7.5,18.732422 L 7.5,16.142578 C 8.3359346,15.580086 9.1328088,15.162118 9.890625,14.888672 C 10.648432,14.607431 11.363275,14.466806 12.035156,14.466797 C 12.949211,14.466806 14.085929,14.693368 15.445313,15.146484 C 15.46874,15.154305 15.484365,15.158212 15.492188,15.158203 C 15.632802,15.205087 15.847646,15.279305 16.136719,15.380859 C 17.347644,15.810555 18.285143,16.025398 18.949219,16.025391 C 19.613267,16.025398 20.29686,15.880867 21,15.591797 C 21.703109,15.302743 22.484358,14.845712 23.34375,14.220703 M 11.988281,35.033203 L 15.011719,35.033203 L 17.320313,39.369141 L 15.65625,39.369141 L 11.988281,35.033203"
+ id="text5103" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 136.47578,20.443359 C 136.04608,21.099612 135.54999,21.583986 134.9875,21.896484 C 134.42499,22.201173 133.76093,22.353517 132.99532,22.353516 C 131.76093,22.353517 130.81953,22.01758 130.1711,21.345703 C 129.53047,20.673831 129.21015,19.681645 129.21016,18.369141 C 129.21015,16.50196 129.75312,14.935556 130.83907,13.669922 C 131.93281,12.404308 133.27656,11.771496 134.87032,11.771484 C 135.4953,11.771496 136.03827,11.900402 136.49922,12.158203 C 136.96015,12.416027 137.33905,12.798839 137.63594,13.306641 L 138.25703,12.158203 L 140.34297,12.158203 L 138.62032,19.166016 C 138.59686,19.251958 138.57733,19.341801 138.56172,19.435547 C 138.54608,19.521488 138.53827,19.591801 138.53828,19.646484 C 138.53827,19.919926 138.63202,20.126957 138.81953,20.267578 C 139.00702,20.400394 139.28436,20.4668 139.65157,20.466797 C 139.95624,20.4668 140.27264,20.388675 140.60078,20.232422 C 140.9367,20.076175 141.2492,19.857426 141.53828,19.576172 C 142.21014,18.951177 142.71795,18.220709 143.06172,17.384766 C 143.41326,16.548835 143.58904,15.630867 143.58907,14.630859 C 143.58904,12.75587 142.86248,11.216809 141.40938,10.013672 C 139.96405,8.8027492 138.09686,8.1972811 135.80782,8.1972656 C 134.70624,8.1972811 133.6789,8.3300934 132.72578,8.5957031 C 131.78046,8.8613429 130.92109,9.2558737 130.14766,9.7792969 C 128.81953,10.669935 127.79609,11.783215 127.07735,13.119141 C 126.36641,14.455087 126.01094,15.91993 126.01094,17.513672 C 126.01094,19.912113 126.81953,21.83008 128.43672,23.267578 C 130.0539,24.697265 132.21406,25.412108 134.91719,25.412109 C 136.1828,25.412108 137.41718,25.220702 138.62032,24.837891 C 139.83124,24.455077 140.95623,23.90039 141.99532,23.173828 L 142.95625,24.544922 C 141.76092,25.443358 140.49139,26.119138 139.14766,26.572266 C 137.81171,27.025387 136.41718,27.25195 134.96407,27.251953 C 133.46405,27.25195 132.08515,27.060543 130.82735,26.677734 C 129.56953,26.302732 128.45234,25.744139 127.47578,25.001953 C 126.26484,24.05664 125.35859,22.966798 124.75703,21.732422 C 124.15547,20.49805 123.85469,19.099614 123.85469,17.537109 C 123.85469,16.232429 124.05781,14.990243 124.46407,13.810547 C 124.87813,12.623058 125.48359,11.544934 126.28047,10.576172 C 127.43672,9.1621238 128.82734,8.0918124 130.45235,7.3652344 C 132.07734,6.6386889 133.88593,6.275408 135.87813,6.2753906 C 137.19843,6.275408 138.43671,6.4550953 139.59297,6.8144531 C 140.75702,7.1660321 141.76873,7.6660316 142.62813,8.3144531 C 143.68279,9.1347801 144.46795,10.072279 144.9836,11.126953 C 145.50701,12.17384 145.76873,13.357432 145.76875,14.677734 C 145.76873,15.966805 145.51092,17.15821 144.99532,18.251953 C 144.48748,19.337895 143.75311,20.267581 142.79219,21.041016 C 142.2453,21.478518 141.64764,21.814455 140.99922,22.048828 C 140.35858,22.275392 139.69061,22.388673 138.99532,22.388672 C 138.16718,22.388673 137.54218,22.224611 137.12032,21.896484 C 136.70624,21.568361 136.4914,21.083987 136.47578,20.443359 M 137.06172,15.427734 C 136.96015,14.794931 136.73358,14.314462 136.38203,13.986328 C 136.03827,13.650401 135.58124,13.482432 135.01094,13.482422 C 134.1203,13.482432 133.34687,13.966807 132.69063,14.935547 C 132.03437,15.904305 131.70624,17.068366 131.70625,18.427734 C 131.70624,19.146489 131.86249,19.693363 132.175,20.068359 C 132.49531,20.443363 132.95624,20.630862 133.55782,20.630859 C 134.20624,20.630862 134.79608,20.384769 135.32735,19.892578 C 135.8664,19.400395 136.23358,18.75977 136.42891,17.970703 L 137.06172,15.427734 M 128.56563,53.630859 C 128.58125,52.130861 128.90156,50.861331 129.52657,49.822266 C 130.15156,48.775395 131.26094,47.716803 132.85469,46.646484 C 133.09687,46.482429 133.44844,46.255867 133.90938,45.966797 C 136.01875,44.615243 137.07343,43.314463 137.07344,42.064453 C 137.07343,41.322278 136.85078,40.736341 136.40547,40.306641 C 135.96015,39.876967 135.35078,39.662123 134.57735,39.662109 C 133.73359,39.662123 133.08125,39.927748 132.62032,40.458984 C 132.16719,40.982435 131.94062,41.732434 131.94063,42.708984 L 131.94063,42.849609 L 128.84688,42.849609 C 128.84688,40.927747 129.3625,39.44728 130.39375,38.408203 C 131.425,37.369157 132.89375,36.849626 134.8,36.849609 C 136.52656,36.849626 137.90546,37.322282 138.93672,38.267578 C 139.96796,39.205093 140.48358,40.455091 140.4836,42.017578 C 140.48358,43.134776 140.21405,44.103525 139.675,44.923828 C 139.13593,45.744149 138.09296,46.677741 136.5461,47.724609 C 136.21796,47.951178 135.76484,48.248052 135.18672,48.615234 C 133.71797,49.560551 132.88984,50.2793 132.70235,50.771484 L 140.31953,50.771484 L 140.31953,53.630859 L 128.56563,53.630859"
+ id="text5127" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 195.28125,13.693359 L 194.25,16.552734 L 197.19141,16.552734 L 198.19922,13.693359 L 195.28125,13.693359 M 195.28125,6.4746094 L 197.87109,6.4746094 L 196.16016,11.337891 L 198.99609,11.337891 L 200.73047,6.4746094 L 203.32031,6.4746094 L 201.58594,11.337891 L 204.90234,11.337891 L 204.03516,13.693359 L 200.75391,13.693359 L 199.76953,16.529297 L 203.16797,16.529297 L 202.33594,18.873047 L 198.92578,18.873047 L 197.19141,23.748047 L 194.60156,23.748047 L 196.33594,18.873047 L 193.47656,18.873047 L 191.73047,23.748047 L 189.15234,23.748047 L 190.86328,18.873047 L 187.5,18.873047 L 188.39063,16.529297 L 191.69531,16.529297 L 192.70313,13.693359 L 189.19922,13.693359 L 190.06641,11.337891 L 193.54688,11.337891 L 195.28125,6.4746094 M 190.07813,48.521484 L 193.30078,48.521484 C 193.30859,49.458989 193.53515,50.166019 193.98047,50.642578 C 194.42578,51.111331 195.08593,51.345705 195.96094,51.345703 C 196.80468,51.345705 197.45312,51.126956 197.90625,50.689453 C 198.36718,50.244144 198.59765,49.607426 198.59766,48.779297 C 198.59765,47.951178 198.32812,47.326178 197.78906,46.904297 C 197.2578,46.474617 196.46484,46.259773 195.41016,46.259766 C 195.35546,46.259773 195.26953,46.263679 195.15234,46.271484 C 195.04296,46.279304 194.96093,46.28321 194.90625,46.283203 L 194.90625,43.962891 L 195.26953,43.962891 C 196.23827,43.9629 196.95312,43.7754 197.41406,43.400391 C 197.8828,43.017589 198.11718,42.435558 198.11719,41.654297 C 198.11718,41.005872 197.91796,40.494154 197.51953,40.119141 C 197.1289,39.736342 196.59374,39.544936 195.91406,39.544922 C 195.17187,39.544936 194.59765,39.763686 194.19141,40.201172 C 193.78515,40.638685 193.58203,41.259778 193.58203,42.064453 L 193.58203,42.205078 L 190.41797,42.205078 C 190.45703,40.486341 190.96094,39.169936 191.92969,38.255859 C 192.90625,37.334001 194.28125,36.873064 196.05469,36.873047 C 197.73437,36.873064 199.0664,37.283219 200.05078,38.103516 C 201.03514,38.923843 201.52733,40.02931 201.52734,41.419922 C 201.52733,42.154308 201.35936,42.798839 201.02344,43.353516 C 200.68749,43.908213 200.18358,44.365244 199.51172,44.724609 C 200.37108,45.099618 201.01952,45.619149 201.45703,46.283203 C 201.90233,46.93946 202.12499,47.724615 202.125,48.638672 C 202.12499,50.318363 201.57421,51.650393 200.47266,52.634766 C 199.37108,53.619141 197.86718,54.111328 195.96094,54.111328 C 194.07812,54.111328 192.625,53.634766 191.60156,52.681641 C 190.58594,51.720705 190.07812,50.357425 190.07813,48.591797 L 190.07813,48.521484"
+ id="text5139" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 254.46094,21.451172 C 255.10155,21.365237 255.58984,21.134768 255.92578,20.759766 C 256.26171,20.384769 256.42968,19.884769 256.42969,19.259766 C 256.42968,18.705083 256.26952,18.248052 255.94922,17.888672 C 255.63671,17.52149 255.14062,17.236335 254.46094,17.033203 L 254.46094,21.451172 M 253.06641,13.435547 L 253.06641,9.4511719 C 252.45703,9.529311 251.99218,9.7402483 251.67188,10.083984 C 251.35156,10.419935 251.1914,10.87306 251.19141,11.443359 C 251.1914,11.919934 251.33984,12.318371 251.63672,12.638672 C 251.9414,12.958995 252.41796,13.22462 253.06641,13.435547 M 253.06641,26.267578 L 253.06641,24.017578 C 251.30078,23.908203 249.98047,23.396485 249.10547,22.482422 C 248.23047,21.568361 247.79297,20.24805 247.79297,18.521484 L 250.93359,18.521484 C 250.97265,19.365239 251.16796,20.033207 251.51953,20.525391 C 251.8789,21.009768 252.39453,21.318362 253.06641,21.451172 L 253.06641,16.599609 C 251.2539,16.138679 249.96484,15.537117 249.19922,14.794922 C 248.43359,14.052744 248.05078,13.03712 248.05078,11.748047 C 248.05078,10.318373 248.5039,9.1660301 249.41016,8.2910156 C 250.32422,7.4160318 251.54296,6.959001 253.06641,6.9199219 L 253.06641,5.4199219 L 254.46094,5.4199219 L 254.46094,6.9199219 C 255.98437,6.9980635 257.17186,7.4590005 258.02344,8.3027344 C 258.87499,9.1386864 259.34374,10.318373 259.42969,11.841797 L 256.24219,11.841797 C 256.18749,11.115247 256.01171,10.56056 255.71484,10.177734 C 255.42577,9.7871232 255.0078,9.5683734 254.46094,9.5214844 L 254.46094,13.787109 C 256.39062,14.388681 257.74999,15.07618 258.53906,15.849609 C 259.32811,16.623054 259.72264,17.642584 259.72266,18.908203 C 259.72264,20.400394 259.26171,21.591799 258.33984,22.482422 C 257.42577,23.373047 256.1328,23.892578 254.46094,24.041016 L 254.46094,26.267578 L 253.06641,26.267578 M 254.64844,47.419922 L 254.64844,40.236328 L 250.08984,47.419922 L 254.64844,47.419922 M 254.57813,53.630859 L 254.57813,50.009766 L 247.5,50.009766 L 247.5,47.056641 L 253.6875,37.330078 L 257.84766,37.330078 L 257.84766,47.337891 L 259.79297,47.337891 L 259.79297,50.009766 L 257.84766,50.009766 L 257.84766,53.630859 L 254.57813,53.630859"
+ id="text5145" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 320.42578,19.740234 C 320.42577,20.263675 320.60155,20.705081 320.95313,21.064453 C 321.30467,21.416018 321.73827,21.591799 322.25391,21.591797 C 322.75389,21.591799 323.18358,21.412112 323.54297,21.052734 C 323.90233,20.68555 324.08201,20.24805 324.08203,19.740234 C 324.08201,19.240239 323.90233,18.814458 323.54297,18.462891 C 323.19139,18.103521 322.7617,17.923834 322.25391,17.923828 C 321.73827,17.923834 321.30467,18.099615 320.95313,18.451172 C 320.60155,18.794927 320.42577,19.224614 320.42578,19.740234 M 317.88281,19.740234 C 317.8828,18.521489 318.30468,17.494147 319.14844,16.658203 C 319.99217,15.822273 321.02733,15.404305 322.25391,15.404297 C 323.45701,15.404305 324.48045,15.830086 325.32422,16.681641 C 326.17576,17.525397 326.60154,18.544927 326.60156,19.740234 C 326.60154,20.943362 326.17576,21.974611 325.32422,22.833984 C 324.47264,23.685547 323.4492,24.111328 322.25391,24.111328 C 321.02733,24.111328 319.99217,23.689453 319.14844,22.845703 C 318.30468,22.001955 317.8828,20.9668 317.88281,19.740234 M 311.07422,24.111328 L 321.08203,6.8496094 L 322.96875,6.8496094 L 312.96094,24.111328 L 311.07422,24.111328 M 310.04297,11.220703 C 310.04297,11.73634 310.21484,12.169933 310.55859,12.521484 C 310.91015,12.873058 311.34375,13.048839 311.85938,13.048828 C 312.36718,13.048839 312.79687,12.873058 313.14844,12.521484 C 313.50781,12.162121 313.68749,11.728528 313.6875,11.220703 C 313.68749,10.720716 313.50781,10.294935 313.14844,9.9433594 C 312.79687,9.5839984 312.36718,9.4043111 311.85938,9.4042969 C 311.34375,9.4043111 310.91015,9.5800922 310.55859,9.9316406 C 310.21484,10.275404 310.04297,10.705091 310.04297,11.220703 M 307.5,11.220703 C 307.5,10.001967 307.92187,8.9707178 308.76563,8.1269531 C 309.60937,7.275407 310.64062,6.8496262 311.85938,6.8496094 C 313.06249,6.8496262 314.08593,7.2793132 314.92969,8.1386719 C 315.78124,8.990249 316.20702,10.017592 316.20703,11.220703 C 316.20702,12.423839 315.78124,13.451182 314.92969,14.302734 C 314.08593,15.146493 313.06249,15.568367 311.85938,15.568359 C 310.63281,15.568367 309.59765,15.150399 308.75391,14.314453 C 307.91797,13.478526 307.5,12.447277 307.5,11.220703 M 310.85156,49.119141 L 314.13281,49.119141 C 314.1875,49.853519 314.43359,50.423831 314.87109,50.830078 C 315.30859,51.228518 315.89453,51.427737 316.62891,51.427734 C 317.53515,51.427737 318.22655,51.162112 318.70313,50.630859 C 319.18749,50.099613 319.42968,49.337895 319.42969,48.345703 C 319.42968,47.416022 319.18358,46.685554 318.69141,46.154297 C 318.19921,45.615242 317.51952,45.345711 316.65234,45.345703 C 316.16796,45.345711 315.74218,45.443368 315.375,45.638672 C 315.00781,45.833992 314.69531,46.123054 314.4375,46.505859 L 311.41406,46.330078 L 312.50391,37.330078 L 322.14844,37.330078 L 322.14844,40.166016 L 314.87109,40.166016 L 314.4375,43.529297 C 314.80468,43.240245 315.22656,43.025401 315.70313,42.884766 C 316.17968,42.736339 316.71093,42.66212 317.29688,42.662109 C 318.96874,42.66212 320.3164,43.169932 321.33984,44.185547 C 322.37108,45.20118 322.88671,46.53321 322.88672,48.181641 C 322.88671,49.986332 322.3203,51.427737 321.1875,52.505859 C 320.05468,53.576172 318.53515,54.111328 316.62891,54.111328 C 314.89453,54.111328 313.51172,53.669922 312.48047,52.787109 C 311.45703,51.896486 310.91406,50.673831 310.85156,49.119141"
+ id="text5151" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 373.13672,6.5214844 L 376.08984,6.5214844 L 381.72656,13.095703 L 378.97266,13.095703 L 374.625,8.7480469 L 370.25391,13.095703 L 367.5,13.095703 L 373.13672,6.5214844 M 372.15234,48.298828 C 372.15234,49.25977 372.39062,50.021488 372.86719,50.583984 C 373.35156,51.146487 374.00781,51.427737 374.83594,51.427734 C 375.60937,51.427737 376.21484,51.154299 376.65234,50.607422 C 377.08983,50.06055 377.30858,49.298832 377.30859,48.322266 C 377.30858,47.423834 377.08202,46.724616 376.62891,46.224609 C 376.17577,45.724617 375.53905,45.474618 374.71875,45.474609 C 373.91406,45.474618 373.28515,45.724617 372.83203,46.224609 C 372.3789,46.724616 372.15234,47.416022 372.15234,48.298828 M 372.10547,43.916016 C 372.48828,43.525401 372.94921,43.232432 373.48828,43.037109 C 374.02734,42.833995 374.6289,42.732433 375.29297,42.732422 C 376.93358,42.732433 378.24608,43.232432 379.23047,44.232422 C 380.22264,45.23243 380.71874,46.56446 380.71875,48.228516 C 380.71874,49.994144 380.17968,51.419924 379.10156,52.505859 C 378.02343,53.591797 376.60155,54.134765 374.83594,54.134766 C 372.79687,54.134765 371.24609,53.431641 370.18359,52.025391 C 369.1289,50.619144 368.60156,48.560552 368.60156,45.849609 C 368.60156,42.935558 369.16797,40.708997 370.30078,39.169922 C 371.43359,37.623063 373.0664,36.849626 375.19922,36.849609 C 376.68358,36.849626 377.8789,37.236345 378.78516,38.009766 C 379.69921,38.783218 380.19921,39.830092 380.28516,41.150391 L 376.88672,41.150391 C 376.80858,40.611341 376.59765,40.205092 376.25391,39.931641 C 375.91015,39.658217 375.42968,39.521498 374.8125,39.521484 C 373.96874,39.521498 373.32031,39.888686 372.86719,40.623047 C 372.41406,41.349622 372.16015,42.447277 372.10547,43.916016"
+ id="text5157" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 432.85547,16.095703 L 431.96484,16.740234 C 431.60546,16.990241 431.33593,17.291022 431.15625,17.642578 C 430.97656,17.994146 430.88671,18.388677 430.88672,18.826172 C 430.88671,19.490239 431.11328,20.048832 431.56641,20.501953 C 432.01953,20.955081 432.58593,21.181643 433.26563,21.181641 C 433.76562,21.181643 434.24218,21.080081 434.69531,20.876953 C 435.15624,20.666019 435.58202,20.361331 435.97266,19.962891 L 432.85547,16.095703 M 433.79297,12.404297 L 434.20313,12.111328 C 434.57812,11.853527 434.85546,11.564465 435.03516,11.244141 C 435.21483,10.923841 435.30468,10.556654 435.30469,10.142578 C 435.30468,9.7441545 435.17968,9.4277486 434.92969,9.1933594 C 434.68749,8.958999 434.35546,8.8418117 433.93359,8.8417969 C 433.5039,8.8418117 433.16406,8.9629053 432.91406,9.2050781 C 432.66406,9.4394673 432.53906,9.7597795 432.53906,10.166016 C 432.53906,10.384779 432.59765,10.62306 432.71484,10.880859 C 432.83984,11.138684 433.01562,11.412122 433.24219,11.701172 L 433.79297,12.404297 M 431.15625,13.962891 L 430.47656,13.072266 C 430.125,12.603527 429.87109,12.166027 429.71484,11.759766 C 429.5664,11.345715 429.49218,10.912122 429.49219,10.458984 C 429.49218,9.2089988 429.89062,8.2168123 430.6875,7.4824219 C 431.49218,6.7402513 432.58203,6.3691579 433.95703,6.3691406 C 435.27733,6.3691579 436.3203,6.7090013 437.08594,7.3886719 C 437.85155,8.0683749 438.23436,8.9863428 438.23438,10.142578 C 438.23436,11.017591 438.0078,11.802746 437.55469,12.498047 C 437.10936,13.185557 436.40624,13.833994 435.44531,14.443359 L 437.91797,17.490234 C 438.15233,17.107428 438.33593,16.677741 438.46875,16.201172 C 438.60936,15.724617 438.70702,15.193368 438.76172,14.607422 L 441.80859,14.607422 C 441.72264,15.623055 441.5117,16.56446 441.17578,17.431641 C 440.83983,18.298833 440.37889,19.091801 439.79297,19.810547 L 442.93359,23.630859 L 438.94922,23.630859 L 437.77734,22.189453 C 437.08983,22.822266 436.33202,23.302735 435.50391,23.630859 C 434.68359,23.951172 433.82421,24.111328 432.92578,24.111328 C 431.33203,24.111328 430.02734,23.638672 429.01172,22.693359 C 428.0039,21.748049 427.5,20.541019 427.5,19.072266 C 427.5,17.978521 427.78125,17.037116 428.34375,16.248047 C 428.90625,15.458993 429.84375,14.697275 431.15625,13.962891 M 434.66016,53.630859 L 431.15625,53.630859 C 431.28125,51.341799 431.83203,49.07227 432.80859,46.822266 C 433.79296,44.572275 435.19531,42.361339 437.01563,40.189453 L 428.76563,40.189453 L 428.76563,37.330078 L 440.66016,37.330078 L 440.66016,39.849609 C 438.8164,41.880871 437.39843,44.029306 436.40625,46.294922 C 435.42187,48.560552 434.83984,51.005862 434.66016,53.630859"
+ id="text5163" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 493.5,13.212891 L 491.4375,16.119141 L 489.44531,14.724609 L 491.69531,11.900391 L 488.41406,10.986328 L 489.17578,8.6074219 L 492.32813,9.7324219 L 492.32813,6.3691406 L 494.64844,6.3691406 L 494.64844,9.7324219 L 497.80078,8.6308594 L 498.58594,11.009766 L 495.30469,11.900391 L 497.53125,14.701172 L 495.49219,16.166016 L 493.5,13.212891 M 490.875,48.755859 C 490.875,49.576176 491.10156,50.208988 491.55469,50.654297 C 492.01562,51.099612 492.67187,51.322268 493.52344,51.322266 C 494.33593,51.322268 494.97265,51.095706 495.43359,50.642578 C 495.90233,50.189457 496.13671,49.560551 496.13672,48.755859 C 496.13671,47.982428 495.89843,47.361334 495.42188,46.892578 C 494.9453,46.423835 494.31249,46.189461 493.52344,46.189453 C 492.73437,46.189461 492.09374,46.427742 491.60156,46.904297 C 491.11718,47.380866 490.875,47.998053 490.875,48.755859 M 491.14453,41.560547 C 491.14453,42.208996 491.34765,42.708995 491.75391,43.060547 C 492.16015,43.404307 492.74218,43.576182 493.5,43.576172 C 494.2578,43.576182 494.83984,43.400401 495.24609,43.048828 C 495.66015,42.697277 495.86718,42.201183 495.86719,41.560547 C 495.86718,40.93556 495.65624,40.443373 495.23438,40.083984 C 494.81249,39.724623 494.23437,39.544936 493.5,39.544922 C 492.78124,39.544936 492.20703,39.72853 491.77734,40.095703 C 491.35546,40.462904 491.14453,40.951185 491.14453,41.560547 M 489.9375,44.818359 C 489.23437,44.427744 488.72656,43.970713 488.41406,43.447266 C 488.10156,42.923839 487.94531,42.255871 487.94531,41.443359 C 487.94531,40.005873 488.4375,38.876968 489.42188,38.056641 C 490.40625,37.236345 491.76562,36.826189 493.5,36.826172 C 495.24999,36.826189 496.61718,37.236345 497.60156,38.056641 C 498.59374,38.869155 499.08983,39.998061 499.08984,41.443359 C 499.08983,42.216808 498.92186,42.888683 498.58594,43.458984 C 498.24999,44.021494 497.74608,44.474619 497.07422,44.818359 C 497.89452,45.20118 498.51171,45.73243 498.92578,46.412109 C 499.33983,47.083991 499.54686,47.904303 499.54688,48.873047 C 499.54686,50.505862 499.0078,51.787111 497.92969,52.716797 C 496.85936,53.646484 495.3828,54.111328 493.5,54.111328 C 491.59375,54.111328 490.11328,53.650391 489.05859,52.728516 C 488.0039,51.806642 487.47656,50.521487 487.47656,48.873047 C 487.47656,47.912115 487.67187,47.107428 488.0625,46.458984 C 488.46094,45.802742 489.08594,45.255868 489.9375,44.818359"
+ id="text5169" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 557.85938,6.3691406 C 556.78124,8.1347811 555.98046,9.9316543 555.45703,11.759766 C 554.93359,13.587901 554.67187,15.505868 554.67188,17.513672 C 554.67187,19.513676 554.93359,21.427737 555.45703,23.255859 C 555.98046,25.083983 556.78124,26.880856 557.85938,28.646484 L 555.38672,28.646484 C 554.01953,26.779294 552.98046,24.904296 552.26953,23.021484 C 551.5664,21.130862 551.21484,19.294926 551.21484,17.513672 C 551.21484,15.73243 551.5664,13.896494 552.26953,12.005859 C 552.98046,10.115248 554.01953,8.2363435 555.38672,6.3691406 L 557.85938,6.3691406 M 556.06641,42.685547 C 556.0664,41.724621 555.82421,40.96681 555.33984,40.412109 C 554.86327,39.849623 554.21093,39.568373 553.38281,39.568359 C 552.60156,39.568373 551.99218,39.837904 551.55469,40.376953 C 551.125,40.916028 550.91015,41.669934 550.91016,42.638672 C 550.91015,43.544932 551.13671,44.251963 551.58984,44.759766 C 552.04296,45.267586 552.67968,45.521492 553.5,45.521484 C 554.30468,45.521492 554.93359,45.271493 555.38672,44.771484 C 555.83983,44.271494 556.0664,43.576182 556.06641,42.685547 M 556.125,47.056641 C 555.73437,47.447272 555.27343,47.74024 554.74219,47.935547 C 554.21093,48.130865 553.61327,48.228521 552.94922,48.228516 C 551.30078,48.228521 549.98047,47.732428 548.98828,46.740234 C 547.99609,45.748055 547.5,44.419931 547.5,42.755859 C 547.5,40.990247 548.03906,39.564467 549.11719,38.478516 C 550.19531,37.392594 551.61718,36.849626 553.38281,36.849609 C 555.42968,36.849626 556.98436,37.556657 558.04688,38.970703 C 559.11718,40.376966 559.65233,42.431652 559.65234,45.134766 C 559.65233,48.041021 559.08202,50.267581 557.94141,51.814453 C 556.80077,53.361328 555.16015,54.134765 553.01953,54.134766 C 551.54296,54.134765 550.35156,53.751953 549.44531,52.986328 C 548.53906,52.212892 548.04297,51.162112 547.95703,49.833984 L 551.34375,49.845703 C 551.42187,50.384769 551.63281,50.787112 551.97656,51.052734 C 552.32031,51.318362 552.80468,51.451174 553.42969,51.451172 C 554.27343,51.451174 554.91796,51.083987 555.36328,50.349609 C 555.80858,49.615238 556.06249,48.517583 556.125,47.056641"
+ id="text5175" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 609.375,6.3691406 L 611.87109,6.3691406 C 613.23046,8.228531 614.26171,10.103529 614.96484,11.994141 C 615.66796,13.876963 616.01952,15.716805 616.01953,17.513672 C 616.01952,19.302739 615.66796,21.142581 614.96484,23.033203 C 614.26171,24.923827 613.23046,26.794919 611.87109,28.646484 L 609.375,28.646484 C 610.46094,26.873044 611.26562,25.072264 611.78906,23.244141 C 612.32031,21.408205 612.58593,19.498051 612.58594,17.513672 C 612.58593,15.521492 612.32031,13.611338 611.78906,11.783203 C 611.26562,9.9550918 610.46094,8.1504061 609.375,6.3691406 M 610.98047,45.474609 C 610.98046,47.513678 611.18359,48.994145 611.58984,49.916016 C 612.0039,50.837893 612.66015,51.29883 613.55859,51.298828 C 614.45702,51.29883 615.11327,50.833987 615.52734,49.904297 C 615.9414,48.974614 616.14843,47.498053 616.14844,45.474609 C 616.14843,43.44337 615.9414,41.966809 615.52734,41.044922 C 615.11327,40.12306 614.45702,39.662123 613.55859,39.662109 C 612.66015,39.662123 612.0039,40.12306 611.58984,41.044922 C 611.18359,41.958996 610.98046,43.435557 610.98047,45.474609 M 607.5,45.474609 C 607.5,42.591808 608,40.43556 609,39.005859 C 610.00781,37.568375 611.52734,36.849626 613.55859,36.849609 C 615.58202,36.849626 617.09765,37.572282 618.10547,39.017578 C 619.12108,40.455091 619.62889,42.615245 619.62891,45.498047 C 619.62889,48.380865 619.12499,50.533206 618.11719,51.955078 C 617.11718,53.376953 615.59765,54.08789 613.55859,54.087891 C 611.52734,54.08789 610.00781,53.373047 609,51.943359 C 608,50.513675 607.5,48.357427 607.5,45.474609"
+ id="text5181" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 667.5,26.900391 L 679.5,26.900391 L 679.5,29.291016 L 667.5,29.291016 L 667.5,26.900391 M 670.20703,48.849609 L 670.20703,45.638672 L 676.79297,45.638672 L 676.79297,48.849609 L 670.20703,48.849609"
+ id="text5187" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 733.33594,9.3222656 L 735.70313,9.3222656 L 735.70313,15.298828 L 741.53906,15.298828 L 741.53906,17.630859 L 735.70313,17.630859 L 735.70313,23.630859 L 733.33594,23.630859 L 733.33594,17.630859 L 727.5,17.630859 L 727.5,15.298828 L 733.33594,15.298828 L 733.33594,9.3222656 M 727.5,47.818359 L 741.53906,47.818359 L 741.53906,50.150391 L 727.5,50.150391 L 727.5,47.818359 M 727.5,42.779297 L 741.53906,42.779297 L 741.53906,45.111328 L 727.5,45.111328 L 727.5,42.779297"
+ id="text5201" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 11.070313,95.601563 L 11.070313,86.148438 L 7.65625,86.148438 L 7.65625,84.09375 L 16.828125,84.09375 L 16.828125,86.148438 L 13.4375,86.148438 L 13.4375,95.601563 L 11.070313,95.601563 M 22.859375,94.546875 C 22.572911,94.989584 22.197911,95.328125 21.734375,95.5625 C 21.270829,95.791666 20.731767,95.90625 20.117188,95.90625 C 19.294269,95.90625 18.658853,95.671875 18.210938,95.203125 C 17.768228,94.734376 17.546874,94.06771 17.546875,93.203125 C 17.546874,92.401045 17.768228,91.789066 18.210938,91.367188 C 18.658853,90.945317 19.395831,90.656255 20.421875,90.5 C 20.656246,90.463547 20.963538,90.42188 21.34375,90.375 C 22.307286,90.250005 22.789057,89.97136 22.789063,89.539063 C 22.789057,89.195319 22.682286,88.950527 22.46875,88.804688 C 22.255203,88.653653 21.898433,88.578132 21.398438,88.578125 C 20.9401,88.578132 20.588538,88.669278 20.34375,88.851563 C 20.098955,89.033861 19.97656,89.294277 19.976563,89.632813 L 19.976563,89.757813 L 17.851563,89.757813 L 17.851563,89.601563 C 17.851562,88.731778 18.158853,88.049487 18.773438,87.554688 C 19.388018,87.054696 20.236976,86.804696 21.320313,86.804688 C 22.507807,86.804696 23.41666,87.010425 24.046875,87.421875 C 24.682284,87.833341 24.999992,88.427091 25,89.203125 L 25,94.03125 C 24.999992,94.385418 25.03645,94.651043 25.109375,94.828125 C 25.182283,95.000001 25.304679,95.130209 25.476563,95.21875 L 25.476563,95.601563 L 23.109375,95.601563 C 23.031244,95.455729 22.971348,95.294271 22.929688,95.117188 C 22.888015,94.940105 22.864577,94.750001 22.859375,94.546875 M 22.820313,91.421875 C 22.450515,91.593754 22.023432,91.731775 21.539063,91.835938 C 21.059892,91.940108 20.812496,91.994795 20.796875,92 C 20.39583,92.114587 20.11458,92.257816 19.953125,92.429688 C 19.796872,92.601566 19.718747,92.838544 19.71875,93.140625 C 19.718747,93.453127 19.82031,93.703127 20.023438,93.890625 C 20.226559,94.072918 20.499997,94.164064 20.84375,94.164063 C 21.458329,94.164064 21.940099,93.992189 22.289063,93.648438 C 22.643224,93.299481 22.820307,92.825524 22.820313,92.226563 L 22.820313,91.421875 M 27.039063,84.09375 L 29.25,84.09375 L 29.25,88.164063 C 29.531246,87.721362 29.882809,87.388029 30.304688,87.164063 C 30.731766,86.934905 31.216141,86.820321 31.757813,86.820313 C 32.783847,86.820321 33.622388,87.2448 34.273438,88.09375 C 34.92447,88.937507 35.249991,90.036464 35.25,91.390625 C 35.249991,92.734378 34.92447,93.820314 34.273438,94.648438 C 33.622388,95.476563 32.773431,95.890625 31.726563,95.890625 C 31.179682,95.890625 30.70312,95.776041 30.296875,95.546875 C 29.895829,95.317709 29.531246,94.953126 29.203125,94.453125 L 29.203125,95.601563 L 27.039063,95.601563 L 27.039063,84.09375 M 32.992188,91.296875 C 32.992181,90.51563 32.828118,89.903652 32.5,89.460938 C 32.171869,89.013027 31.721348,88.789069 31.148438,88.789063 C 30.544266,88.789069 30.075517,89.007819 29.742188,89.445313 C 29.414059,89.87761 29.249997,90.494797 29.25,91.296875 C 29.249997,92.161462 29.406247,92.817711 29.71875,93.265625 C 30.036454,93.713544 30.497391,93.937502 31.101563,93.9375 C 31.71614,93.937502 32.18489,93.713544 32.507813,93.265625 C 32.830722,92.812503 32.992181,92.156253 32.992188,91.296875"
+ id="text5427" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 789.76563,44.369141 L 792.57031,44.369141 C 793.23176,44.369143 793.71353,44.249351 794.01563,44.009766 C 794.3177,43.770185 794.46874,43.392581 794.46875,42.876953 C 794.46874,42.340499 794.3203,41.955083 794.02344,41.720703 C 793.72656,41.481125 793.23697,41.361333 792.55469,41.361328 L 789.76563,41.361328 L 789.76563,44.369141 M 789.76563,39.392578 L 792.46875,39.392578 C 793.05208,39.392585 793.47916,39.293627 793.75,39.095703 C 794.02083,38.892586 794.15624,38.574878 794.15625,38.142578 C 794.15624,37.720712 794.02343,37.416025 793.75781,37.228516 C 793.49739,37.035817 793.06249,36.939463 792.45313,36.939453 L 789.76563,36.939453 L 789.76563,39.392578 M 787.5,46.447266 L 787.5,34.939453 L 792.92188,34.939453 C 794.09895,34.939465 794.99478,35.189464 795.60938,35.689453 C 796.22916,36.184255 796.53905,36.905609 796.53906,37.853516 C 796.53905,38.436857 796.42447,38.923836 796.19531,39.314453 C 795.96614,39.705085 795.62239,40.007168 795.16406,40.220703 C 795.7578,40.460292 796.20051,40.806646 796.49219,41.259766 C 796.78905,41.707687 796.93749,42.267582 796.9375,42.939453 C 796.93749,44.059247 796.57291,44.92383 795.84375,45.533203 C 795.11457,46.142578 794.08072,46.447266 792.74219,46.447266 L 787.5,46.447266 M 803.45313,45.392578 C 803.16666,45.835287 802.79166,46.173828 802.32813,46.408203 C 801.86458,46.63737 801.32552,46.751953 800.71094,46.751953 C 799.88802,46.751953 799.2526,46.517578 798.80469,46.048828 C 798.36198,45.580079 798.14062,44.913413 798.14063,44.048828 C 798.14062,43.246748 798.36198,42.634769 798.80469,42.212891 C 799.2526,41.79102 799.98958,41.501958 801.01563,41.345703 C 801.25,41.30925 801.55729,41.267583 801.9375,41.220703 C 802.90104,41.095708 803.38281,40.817063 803.38281,40.384766 C 803.38281,40.041022 803.27604,39.796231 803.0625,39.650391 C 802.84895,39.499356 802.49218,39.423835 801.99219,39.423828 C 801.53385,39.423835 801.18229,39.514981 800.9375,39.697266 C 800.69271,39.879564 800.57031,40.13998 800.57031,40.478516 L 800.57031,40.603516 L 798.44531,40.603516 L 798.44531,40.447266 C 798.44531,39.577481 798.7526,38.89519 799.36719,38.400391 C 799.98177,37.900399 800.83073,37.650399 801.91406,37.650391 C 803.10156,37.650399 804.01041,37.856128 804.64063,38.267578 C 805.27603,38.679044 805.59374,39.272794 805.59375,40.048828 L 805.59375,44.876953 C 805.59374,45.231121 805.6302,45.496746 805.70313,45.673828 C 805.77603,45.845704 805.89843,45.975912 806.07031,46.064453 L 806.07031,46.447266 L 803.70313,46.447266 C 803.62499,46.301432 803.5651,46.139974 803.52344,45.962891 C 803.48176,45.785808 803.45833,45.595704 803.45313,45.392578 M 803.41406,42.267578 C 803.04427,42.439457 802.61718,42.577478 802.13281,42.681641 C 801.65364,42.785811 801.40625,42.840498 801.39063,42.845703 C 800.98958,42.96029 800.70833,43.103519 800.54688,43.275391 C 800.39062,43.447269 800.3125,43.684248 800.3125,43.986328 C 800.3125,44.29883 800.41406,44.54883 800.61719,44.736328 C 800.82031,44.918621 801.09375,45.009767 801.4375,45.009766 C 802.05208,45.009767 802.53385,44.837892 802.88281,44.494141 C 803.23697,44.145185 803.41406,43.671227 803.41406,43.072266 L 803.41406,42.267578 M 812.71875,43.244141 L 814.96094,43.244141 C 814.86718,44.322268 814.47395,45.173829 813.78125,45.798828 C 813.08854,46.423828 812.19791,46.736328 811.10938,46.736328 C 809.875,46.736328 808.90625,46.335287 808.20313,45.533203 C 807.50521,44.725913 807.15625,43.611331 807.15625,42.189453 C 807.15625,40.772792 807.51302,39.663418 808.22656,38.861328 C 808.94531,38.054045 809.93229,37.650399 811.1875,37.650391 C 812.28645,37.650399 813.16666,37.942066 813.82813,38.525391 C 814.49478,39.108731 814.86718,39.92123 814.94531,40.962891 L 812.6875,40.962891 C 812.62499,40.509772 812.46614,40.163418 812.21094,39.923828 C 811.95572,39.684252 811.61979,39.56446 811.20313,39.564453 C 810.64062,39.56446 810.21875,39.785814 809.9375,40.228516 C 809.66146,40.67123 809.52343,41.335292 809.52344,42.220703 C 809.52343,43.038415 809.66666,43.668623 809.95313,44.111328 C 810.24479,44.54883 810.66145,44.76758 811.20313,44.767578 C 811.62499,44.76758 811.96354,44.639976 812.21875,44.384766 C 812.47395,44.12956 812.64062,43.749352 812.71875,43.244141 M 816.44531,46.447266 L 816.44531,34.939453 L 818.65625,34.939453 L 818.65625,40.978516 L 821.35938,37.955078 L 824.09375,37.955078 L 821.13281,41.103516 L 824.27344,46.447266 L 821.54688,46.447266 L 819.51563,42.830078 L 818.65625,43.759766 L 818.65625,46.447266 L 816.44531,46.447266 M 824.79688,43.681641 L 827.0625,43.681641 C 827.08333,44.113935 827.23958,44.436851 827.53125,44.650391 C 827.82291,44.858726 828.26041,44.962892 828.84375,44.962891 C 829.28645,44.962892 829.6276,44.889976 829.86719,44.744141 C 830.11197,44.593101 830.23437,44.382164 830.23438,44.111328 C 830.23437,43.725914 829.78124,43.436852 828.875,43.244141 C 828.5052,43.166019 828.21093,43.098311 827.99219,43.041016 C 826.88802,42.759769 826.11979,42.426436 825.6875,42.041016 C 825.26042,41.655604 825.04687,41.134771 825.04688,40.478516 C 825.04687,39.608731 825.35937,38.921231 825.98438,38.416016 C 826.61458,37.905608 827.46614,37.650399 828.53906,37.650391 C 829.67447,37.650399 830.5651,37.903003 831.21094,38.408203 C 831.86197,38.913419 832.20833,39.624356 832.25,40.541016 L 830.03906,40.541016 C 830.02343,40.181647 829.88541,39.903001 829.625,39.705078 C 829.36979,39.507168 829.01302,39.40821 828.55469,39.408203 C 828.12239,39.40821 827.79948,39.473314 827.58594,39.603516 C 827.3776,39.733731 827.27343,39.929043 827.27344,40.189453 C 827.27343,40.528001 827.83854,40.82748 828.96875,41.087891 C 829.22916,41.145188 829.43489,41.192063 829.58594,41.228516 C 830.71614,41.494146 831.48697,41.814458 831.89844,42.189453 C 832.3151,42.564457 832.52343,43.093102 832.52344,43.775391 C 832.52343,44.738934 832.18228,45.473308 831.5,45.978516 C 830.82291,46.483724 829.83593,46.736328 828.53906,46.736328 C 827.36718,46.736328 826.45052,46.473307 825.78906,45.947266 C 825.1276,45.421225 824.79687,44.697267 824.79688,43.775391 L 824.79688,43.681641 M 840.02344,42.251953 C 840.02343,41.397792 839.86197,40.74675 839.53906,40.298828 C 839.21614,39.84571 838.74739,39.619147 838.13281,39.619141 C 837.52864,39.619147 837.0677,39.843106 836.75,40.291016 C 836.4375,40.738938 836.28125,41.392583 836.28125,42.251953 C 836.28125,43.05404 836.44531,43.673831 836.77344,44.111328 C 837.10677,44.54883 837.57552,44.76758 838.17969,44.767578 C 838.7526,44.76758 839.20312,44.543622 839.53125,44.095703 C 839.85937,43.647789 840.02343,43.033207 840.02344,42.251953 M 834.07031,49.853516 L 834.07031,37.955078 L 836.23438,37.955078 L 836.23438,39.103516 C 836.5625,38.603523 836.92708,38.23894 837.32813,38.009766 C 837.73437,37.780608 838.21093,37.666024 838.75781,37.666016 C 839.80468,37.666024 840.65364,38.080086 841.30469,38.908203 C 841.95572,39.731127 842.28124,40.814459 842.28125,42.158203 C 842.28124,43.517581 841.95572,44.621747 841.30469,45.470703 C 840.65364,46.314453 839.8151,46.736328 838.78906,46.736328 C 838.24739,46.736328 837.76302,46.621745 837.33594,46.392578 C 836.91406,46.163412 836.5625,45.830079 836.28125,45.392578 L 836.28125,49.853516 L 834.07031,49.853516 M 848.70313,45.392578 C 848.41666,45.835287 848.04166,46.173828 847.57813,46.408203 C 847.11458,46.63737 846.57552,46.751953 845.96094,46.751953 C 845.13802,46.751953 844.5026,46.517578 844.05469,46.048828 C 843.61198,45.580079 843.39062,44.913413 843.39063,44.048828 C 843.39062,43.246748 843.61198,42.634769 844.05469,42.212891 C 844.5026,41.79102 845.23958,41.501958 846.26563,41.345703 C 846.5,41.30925 846.80729,41.267583 847.1875,41.220703 C 848.15104,41.095708 848.63281,40.817063 848.63281,40.384766 C 848.63281,40.041022 848.52604,39.796231 848.3125,39.650391 C 848.09895,39.499356 847.74218,39.423835 847.24219,39.423828 C 846.78385,39.423835 846.43229,39.514981 846.1875,39.697266 C 845.94271,39.879564 845.82031,40.13998 845.82031,40.478516 L 845.82031,40.603516 L 843.69531,40.603516 L 843.69531,40.447266 C 843.69531,39.577481 844.0026,38.89519 844.61719,38.400391 C 845.23177,37.900399 846.08073,37.650399 847.16406,37.650391 C 848.35156,37.650399 849.26041,37.856128 849.89063,38.267578 C 850.52603,38.679044 850.84374,39.272794 850.84375,40.048828 L 850.84375,44.876953 C 850.84374,45.231121 850.8802,45.496746 850.95313,45.673828 C 851.02603,45.845704 851.14843,45.975912 851.32031,46.064453 L 851.32031,46.447266 L 848.95313,46.447266 C 848.87499,46.301432 848.8151,46.139974 848.77344,45.962891 C 848.73176,45.785808 848.70833,45.595704 848.70313,45.392578 M 848.66406,42.267578 C 848.29427,42.439457 847.86718,42.577478 847.38281,42.681641 C 846.90364,42.785811 846.65625,42.840498 846.64063,42.845703 C 846.23958,42.96029 845.95833,43.103519 845.79688,43.275391 C 845.64062,43.447269 845.5625,43.684248 845.5625,43.986328 C 845.5625,44.29883 845.66406,44.54883 845.86719,44.736328 C 846.07031,44.918621 846.34375,45.009767 846.6875,45.009766 C 847.30208,45.009767 847.78385,44.837892 848.13281,44.494141 C 848.48697,44.145185 848.66406,43.671227 848.66406,43.072266 L 848.66406,42.267578 M 857.96875,43.244141 L 860.21094,43.244141 C 860.11718,44.322268 859.72395,45.173829 859.03125,45.798828 C 858.33854,46.423828 857.44791,46.736328 856.35938,46.736328 C 855.125,46.736328 854.15625,46.335287 853.45313,45.533203 C 852.75521,44.725913 852.40625,43.611331 852.40625,42.189453 C 852.40625,40.772792 852.76302,39.663418 853.47656,38.861328 C 854.19531,38.054045 855.18229,37.650399 856.4375,37.650391 C 857.53645,37.650399 858.41666,37.942066 859.07813,38.525391 C 859.74478,39.108731 860.11718,39.92123 860.19531,40.962891 L 857.9375,40.962891 C 857.87499,40.509772 857.71614,40.163418 857.46094,39.923828 C 857.20572,39.684252 856.86979,39.56446 856.45313,39.564453 C 855.89062,39.56446 855.46875,39.785814 855.1875,40.228516 C 854.91146,40.67123 854.77343,41.335292 854.77344,42.220703 C 854.77343,43.038415 854.91666,43.668623 855.20313,44.111328 C 855.49479,44.54883 855.91145,44.76758 856.45313,44.767578 C 856.87499,44.76758 857.21354,44.639976 857.46875,44.384766 C 857.72395,44.12956 857.89062,43.749352 857.96875,43.244141 M 866.88281,43.869141 L 869.14844,43.869141 C 868.91926,44.764976 868.45572,45.4681 867.75781,45.978516 C 867.0651,46.483724 866.21874,46.736328 865.21875,46.736328 C 863.98958,46.736328 863.01562,46.32487 862.29688,45.501953 C 861.57812,44.67383 861.21875,43.554039 861.21875,42.142578 C 861.21875,40.751959 861.57292,39.655606 862.28125,38.853516 C 862.98958,38.051441 863.95833,37.650399 865.1875,37.650391 C 866.48958,37.650399 867.49478,38.046232 868.20313,38.837891 C 868.91145,39.624356 869.26562,40.74675 869.26563,42.205078 C 869.26562,42.366541 869.26301,42.488936 869.25781,42.572266 C 869.2578,42.650394 869.2526,42.725915 869.24219,42.798828 L 863.57031,42.798828 C 863.60156,43.465498 863.76302,43.968101 864.05469,44.306641 C 864.35156,44.645184 864.77604,44.814455 865.32813,44.814453 C 865.71874,44.814455 866.03906,44.738934 866.28906,44.587891 C 866.53906,44.431643 866.73697,44.19206 866.88281,43.869141 M 863.57031,41.306641 L 866.91406,41.306641 C 866.89322,40.73373 866.73958,40.298834 866.45313,40.001953 C 866.17187,39.699877 865.76562,39.548835 865.23438,39.548828 C 864.73958,39.548835 864.34895,39.699877 864.0625,40.001953 C 863.78125,40.304043 863.61718,40.738938 863.57031,41.306641"
+ id="text5207" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 840,17.646484 L 797.02608,17.646484"
+ id="path5439" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 802.5,25.146484 L 802.5,10.146484 L 787.5,17.646484 L 802.5,25.146484 z "
+ id="path5441" />
+ <g
+ id="g5459"
+ transform="translate(0,7.5)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 82.50003,75 L 54.020182,75"
+ id="path5453" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ id="path5455" />
+ <path
+ id="path5457"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g5464"
+ transform="matrix(-1,9.581637e-17,-9.581637e-17,-1,127.5,172.5)">
+ <path
+ id="path5466"
+ d="M 82.50003,75 L 54.020182,75"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path5468"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ id="path5470" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 107.0625,80.560547 L 105.23438,78.779297 L 107.17969,76.763672 L 109.05469,78.591797 C 109.30467,78.123052 109.49608,77.587897 109.62891,76.986328 C 109.7617,76.384773 109.82811,75.728524 109.82813,75.017578 C 109.82811,73.119151 109.40233,71.646496 108.55078,70.599609 C 107.69921,69.544936 106.5078,69.017593 104.97656,69.017578 C 103.46093,69.017593 102.28124,69.54103 101.4375,70.587891 C 100.59374,71.634778 100.17187,73.111339 100.17188,75.017578 C 100.17187,76.916022 100.59374,78.392583 101.4375,79.447266 C 102.28124,80.494144 103.46093,81.017581 104.97656,81.017578 C 105.36718,81.017581 105.73436,80.978518 106.07813,80.900391 C 106.42968,80.822268 106.7578,80.708987 107.0625,80.560547 M 109.55859,82.916016 C 108.97264,83.306641 108.28905,83.603516 107.50781,83.806641 C 106.73436,84.009765 105.89061,84.111328 104.97656,84.111328 C 102.39843,84.111328 100.34765,83.291016 98.824219,81.650391 C 97.308592,80.009769 96.55078,77.798834 96.550781,75.017578 C 96.55078,72.228527 97.308592,70.017592 98.824219,68.384766 C 100.34765,66.744158 102.39843,65.923846 104.97656,65.923828 C 107.55468,65.923846 109.60545,66.744158 111.12891,68.384766 C 112.66014,70.025404 113.42576,72.23634 113.42578,75.017578 C 113.42576,76.236336 113.26951,77.353522 112.95703,78.369141 C 112.64451,79.376957 112.18358,80.259769 111.57422,81.017578 L 113.44922,82.810547 L 111.52734,84.826172 L 109.55859,82.916016"
+ id="text5474" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 407.06836,83.630859 L 403.51758,83.630859 L 403.51758,77.197266 L 397.24805,66.369141 L 401.5957,66.369141 L 405.28711,73.810547 L 408.69727,66.369141 L 412.75195,66.369141 L 407.06836,77.197266 L 407.06836,83.630859"
+ id="text5518" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 458.08594,66.105469 L 461.67188,66.105469 L 461.67188,76.933594 C 461.67187,78.269536 461.93749,79.246098 462.46875,79.863281 C 462.99999,80.472659 463.84374,80.777346 465,80.777344 C 466.17187,80.777346 467.02343,80.472659 467.55469,79.863281 C 468.09374,79.25391 468.36327,78.277349 468.36328,76.933594 L 468.36328,66.105469 L 471.91406,66.105469 L 471.91406,77.320313 C 471.91405,79.437504 471.3203,81.062502 470.13281,82.195313 C 468.95311,83.328125 467.24999,83.894531 465.02344,83.894531 C 462.78124,83.894531 461.0625,83.332031 459.86719,82.207031 C 458.67969,81.074221 458.08594,79.445316 458.08594,77.320313 L 458.08594,66.105469"
+ id="text5522" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 523.22461,83.630859 L 523.22461,66.369141 L 526.77539,66.369141 L 526.77539,83.630859 L 523.22461,83.630859"
+ id="text5526" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 580.18359,75 C 580.18359,76.898444 580.60546,78.375005 581.44922,79.429688 C 582.29296,80.476566 583.47265,81.000003 584.98828,81 C 586.51952,81.000003 587.71093,80.476566 588.5625,79.429688 C 589.41405,78.375005 589.83983,76.898444 589.83984,75 C 589.83983,73.101573 589.41405,71.628918 588.5625,70.582031 C 587.71093,69.527358 586.51952,69.000015 584.98828,69 C 583.47265,69.000015 582.29296,69.523452 581.44922,70.570313 C 580.60546,71.617199 580.18359,73.093761 580.18359,75 M 576.5625,75 C 576.5625,72.210949 577.32031,70.000014 578.83594,68.367188 C 580.35937,66.726579 582.41015,65.906268 584.98828,65.90625 C 587.56639,65.906268 589.61717,66.726579 591.14063,68.367188 C 592.67186,70.007826 593.43748,72.218761 593.4375,75 C 593.43748,77.781256 592.67186,79.992191 591.14063,81.632813 C 589.61717,83.273438 587.56639,84.09375 584.98828,84.09375 C 582.41015,84.09375 580.35937,83.273438 578.83594,81.632813 C 577.32031,79.992191 576.5625,77.781256 576.5625,75"
+ id="text5530" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 641.97656,74.361328 L 645.41016,74.361328 C 646.33983,74.361337 647.01561,74.166025 647.4375,73.775391 C 647.85936,73.376963 648.0703,72.740245 648.07031,71.865234 C 648.0703,71.044934 647.86327,70.423841 647.44922,70.001953 C 647.03515,69.580092 646.41796,69.369155 645.59766,69.369141 L 641.97656,69.369141 L 641.97656,74.361328 M 641.95313,77.490234 L 641.95313,83.630859 L 638.40234,83.630859 L 638.40234,66.369141 L 646.07813,66.369141 C 647.89061,66.369158 649.26171,66.841814 650.19141,67.787109 C 651.12889,68.724624 651.59764,70.103529 651.59766,71.923828 C 651.59764,73.705088 651.14061,75.080087 650.22656,76.048828 C 649.31249,77.009772 648.0078,77.490241 646.3125,77.490234 L 641.95313,77.490234"
+ id="text5534" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 709.24805,63.919922 L 709.24805,66.369141 C 709.17772,66.369155 709.08007,66.365249 708.95508,66.357422 C 708.83007,66.349624 708.74413,66.345718 708.69727,66.345703 C 707.90819,66.345718 707.37304,66.498062 707.0918,66.802734 C 706.81835,67.099624 706.68163,67.732435 706.68164,68.701172 L 706.68164,71.513672 C 706.68163,72.66993 706.50585,73.490242 706.1543,73.974609 C 705.80273,74.458991 705.16992,74.806647 704.25586,75.017578 C 705.16992,75.228522 705.80273,75.572271 706.1543,76.048828 C 706.50585,76.525395 706.68163,77.341801 706.68164,78.498047 L 706.68164,81.322266 C 706.68163,82.283202 706.81835,82.912108 707.0918,83.208984 C 707.36523,83.505857 707.90038,83.654294 708.69727,83.654297 C 708.74413,83.654294 708.83007,83.650388 708.95508,83.642578 C 709.08007,83.634763 709.17772,83.630857 709.24805,83.630859 L 709.24805,86.080078 C 709.13866,86.080073 708.98632,86.08398 708.79102,86.091797 C 708.59569,86.099605 708.45116,86.103511 708.35742,86.103516 C 707.57616,86.103511 706.92382,86.056636 706.40039,85.962891 C 705.87695,85.869136 705.43163,85.724605 705.06445,85.529297 C 704.61913,85.263668 704.30273,84.904293 704.11523,84.451172 C 703.93554,84.005857 703.8457,83.228514 703.8457,82.119141 L 703.8457,79.166016 C 703.8457,78.095706 703.64648,77.337895 703.24805,76.892578 C 702.84961,76.439458 702.17773,76.212896 701.23242,76.212891 C 701.18554,76.212896 701.10742,76.216802 700.99805,76.224609 C 700.88867,76.232427 700.80664,76.236333 700.75195,76.236328 L 700.75195,73.787109 C 700.80664,73.787117 700.88867,73.791023 700.99805,73.798828 C 701.10742,73.806648 701.18554,73.810554 701.23242,73.810547 C 702.16992,73.810554 702.83789,73.583992 703.23633,73.130859 C 703.64257,72.677743 703.8457,71.912119 703.8457,70.833984 L 703.8457,67.904297 C 703.8457,66.787124 703.93554,66.001968 704.11523,65.548828 C 704.30273,65.095719 704.61913,64.736345 705.06445,64.470703 C 705.43163,64.275408 705.87695,64.130876 706.40039,64.037109 C 706.92382,63.943377 707.57616,63.896502 708.35742,63.896484 C 708.45116,63.896502 708.59569,63.900408 708.79102,63.908203 C 708.98632,63.916033 709.13866,63.919939 709.24805,63.919922 M 703.0957,93.966797 L 709.01367,93.966797 L 709.01367,96.462891 L 706.25977,96.462891 L 706.25977,113.8418 L 709.01367,113.8418 L 709.01367,116.33789 L 703.0957,116.33789 L 703.0957,93.966797"
+ id="text5546" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 760.75195,63.908203 L 761.54883,63.908203 C 762.4082,63.90822 763.09961,63.955095 763.62305,64.048828 C 764.14648,64.142595 764.58398,64.291033 764.93555,64.494141 C 765.38085,64.744157 765.69335,65.103532 765.87305,65.572266 C 766.06054,66.033218 766.15429,66.806655 766.1543,67.892578 L 766.1543,70.845703 C 766.15429,71.916025 766.35351,72.677743 766.75195,73.130859 C 767.15038,73.57618 767.82226,73.798836 768.76758,73.798828 C 768.81444,73.798836 768.89257,73.794929 769.00195,73.787109 C 769.11132,73.779304 769.19335,73.775398 769.24805,73.775391 L 769.24805,76.224609 L 768.81445,76.224609 C 767.83788,76.224614 767.15038,76.443364 766.75195,76.880859 C 766.35351,77.318363 766.15429,78.076175 766.1543,79.154297 L 766.1543,82.107422 C 766.15429,83.224607 766.06054,84.009763 765.87305,84.462891 C 765.69335,84.916012 765.38085,85.267574 764.93555,85.517578 C 764.56835,85.712886 764.12304,85.857417 763.59961,85.951172 C 763.07617,86.044917 762.42382,86.091792 761.64258,86.091797 C 761.54883,86.091792 761.40429,86.087886 761.20898,86.080078 C 761.01367,86.072261 760.86133,86.068355 760.75195,86.068359 L 760.75195,83.619141 C 760.82226,83.619138 760.91992,83.623044 761.04492,83.630859 C 761.16992,83.638669 761.25586,83.642576 761.30273,83.642578 C 762.09179,83.642576 762.62304,83.490232 762.89648,83.185547 C 763.17773,82.88867 763.31836,82.263671 763.31836,81.310547 L 763.31836,78.509766 C 763.31836,77.337895 763.49414,76.513677 763.8457,76.037109 C 764.19726,75.55274 764.83007,75.20899 765.74414,75.005859 C 764.83007,74.794928 764.19726,74.447272 763.8457,73.962891 C 763.49414,73.478523 763.31836,72.658212 763.31836,71.501953 L 763.31836,68.666016 C 763.31836,67.712904 763.17773,67.087905 762.89648,66.791016 C 762.62304,66.486343 762.09179,66.333999 761.30273,66.333984 C 761.25586,66.333999 761.16992,66.337906 761.04492,66.345703 C 760.91992,66.35353 760.82226,66.357437 760.75195,66.357422 L 760.75195,63.908203 M 767.00977,93.955078 L 767.00977,116.32617 L 761.08008,116.32617 L 761.08008,113.83008 L 763.8457,113.83008 L 763.8457,96.451172 L 761.08008,96.451172 L 761.08008,93.955078 L 767.00977,93.955078"
+ id="text5554" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 823.79883,62.876953 L 826.21289,62.876953 L 826.21289,86.876953 L 823.79883,86.876953 L 823.79883,62.876953 M 827.10352,113.44336 L 821.29102,93.509766 L 822.87305,93.509766 L 828.70898,113.44336 L 827.10352,113.44336"
+ id="text5564" />
+ <g
+ id="g5770"
+ transform="translate(0,3.75)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5570"
+ y="139.30469"
+ x="52.152344"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="139.30469"
+ x="52.152344"
+ id="tspan5572"
+ sodipodi:role="line">Caps Lock</tspan></text>
+ <path
+ id="path5584"
+ d="M 26.25,142.5 L 15,157.5 L 22.5,157.5 L 22.5,165 L 30,165 L 30,157.5 L 37.5,157.5 L 26.25,142.5 z M 25.21875,146.71875 L 27.25,146.71875 L 30.375,155.34375 L 28.5,155.34375 L 27.90625,153.5625 L 24.5625,153.5625 L 24,155.34375 L 22.125,155.34375 L 25.21875,146.71875 z M 26.25,148.4375 L 25.03125,152.09375 L 27.4375,152.09375 L 26.25,148.4375 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 365.17969,141.57422 C 364.53905,142.44141 363.80858,143.07813 362.98828,143.48438 C 362.17577,143.89062 361.21874,144.09375 360.11719,144.09375 C 357.70312,144.09375 355.74609,143.25781 354.24609,141.58594 C 352.7539,139.90625 352.00781,137.70313 352.00781,134.97656 C 352.00781,132.22657 352.7539,130.02736 354.24609,128.37891 C 355.73828,126.73049 357.72656,125.90627 360.21094,125.90625 C 362.37499,125.90627 364.14061,126.4258 365.50781,127.46484 C 366.87498,128.49611 367.68748,129.91798 367.94531,131.73047 L 364.32422,131.73047 C 364.10546,130.83204 363.65624,130.14845 362.97656,129.67969 C 362.30468,129.21095 361.42577,128.97658 360.33984,128.97656 C 358.89452,128.97658 357.75781,129.50783 356.92969,130.57031 C 356.10937,131.62501 355.69921,133.08595 355.69922,134.95313 C 355.69921,136.82813 356.1289,138.29688 356.98828,139.35938 C 357.84765,140.42188 359.02734,140.95313 360.52734,140.95313 C 361.65233,140.95313 362.59374,140.6211 363.35156,139.95703 C 364.10936,139.29297 364.57811,138.38282 364.75781,137.22656 L 360.84375,137.22656 L 360.84375,134.27344 L 367.99219,134.27344 L 367.99219,143.61328 L 365.61328,143.61328 L 365.17969,141.57422"
+ id="text5657" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 143.15039,203.63086 L 143.15039,200.63086 L 152.53711,189.49805 L 143.33789,189.49805 L 143.33789,186.36914 L 156.84961,186.36914 L 156.84961,189.36914 L 147.43945,200.51367 L 156.63867,200.51367 L 156.63867,203.63086 L 143.15039,203.63086"
+ id="text5679" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 202.37109,203.63086 L 207.79688,194.81836 L 202.37109,186.36914 L 206.47266,186.36914 L 210,192.4043 L 213.50391,186.36914 L 217.62891,186.36914 L 212.20313,194.79492 L 217.62891,203.63086 L 213.52734,203.63086 L 210,197.6543 L 206.47266,203.63086 L 202.37109,203.63086"
+ id="text5683" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 277.875,197.68359 C 277.74217,199.64454 276.98436,201.20313 275.60156,202.35938 C 274.22655,203.51563 272.42968,204.09375 270.21094,204.09375 C 267.65624,204.09375 265.66796,203.29688 264.24609,201.70313 C 262.83203,200.10938 262.125,197.87501 262.125,195 C 262.125,192.06251 262.84765,189.81251 264.29297,188.25 C 265.73828,186.68752 267.8164,185.90627 270.52734,185.90625 C 272.73046,185.90627 274.46874,186.44533 275.74219,187.52344 C 277.02342,188.59377 277.72655,190.10939 277.85156,192.07031 L 274.34766,192.07031 C 274.19921,191.09376 273.80077,190.35158 273.15234,189.84375 C 272.50389,189.32814 271.6289,189.07033 270.52734,189.07031 C 268.96484,189.07033 267.77734,189.57423 266.96484,190.58203 C 266.15234,191.58986 265.74609,193.06251 265.74609,195 C 265.74609,196.87501 266.14843,198.32422 266.95313,199.34766 C 267.76562,200.3711 268.91796,200.88282 270.41016,200.88281 C 271.48827,200.88282 272.37108,200.60938 273.05859,200.0625 C 273.74608,199.50782 274.19139,198.71485 274.39453,197.68359 L 277.875,197.68359"
+ id="text5687" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 386.32031,200.51367 L 390.52734,200.51367 C 391.51952,200.51367 392.24218,200.33399 392.69531,199.97461 C 393.14843,199.61524 393.37499,199.04883 393.375,198.27539 C 393.37499,197.47071 393.15233,196.89258 392.70703,196.54102 C 392.26171,196.18165 391.52733,196.00196 390.50391,196.00195 L 386.32031,196.00195 L 386.32031,200.51367 M 386.32031,193.04883 L 390.375,193.04883 C 391.24999,193.04884 391.89061,192.9004 392.29688,192.60352 C 392.70311,192.29884 392.90624,191.82228 392.90625,191.17383 C 392.90624,190.54103 392.70702,190.084 392.30859,189.80273 C 391.91796,189.51369 391.26561,189.36915 390.35156,189.36914 L 386.32031,189.36914 L 386.32031,193.04883 M 382.92188,203.63086 L 382.92188,186.36914 L 391.05469,186.36914 C 392.8203,186.36916 394.16405,186.74416 395.08594,187.49414 C 396.01561,188.23634 396.48045,189.31837 396.48047,190.74023 C 396.48045,191.61525 396.30858,192.34571 395.96484,192.93164 C 395.62108,193.51759 395.10545,193.97071 394.41797,194.29102 C 395.30858,194.6504 395.97264,195.16993 396.41016,195.84961 C 396.85545,196.52149 397.07811,197.36133 397.07813,198.36914 C 397.07811,200.04883 396.53123,201.34571 395.4375,202.25977 C 394.34374,203.17383 392.79296,203.63086 390.78516,203.63086 L 382.92188,203.63086"
+ id="text5695" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 442.88672,203.63086 L 442.88672,186.36914 L 446.60156,186.36914 L 453.60938,198.22852 L 453.60938,186.36914 L 457.11328,186.36914 L 457.11328,203.63086 L 453.44531,203.63086 L 446.39063,191.77148 L 446.39063,203.63086 L 442.88672,203.63086"
+ id="text5699" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 501.32813,203.63086 L 501.32813,186.36914 L 506.57813,186.36914 L 510.01172,199.50586 L 513.39844,186.36914 L 518.67188,186.36914 L 518.67188,203.63086 L 515.34375,203.63086 L 515.34375,189.70898 L 511.83984,203.63086 L 508.20703,203.63086 L 504.65625,189.70898 L 504.65625,203.63086 L 501.32813,203.63086"
+ id="text5703" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 720.78516,126.7793 L 723.03516,126.7793 L 723.03516,133.33008 L 720.78516,133.33008 L 720.78516,126.7793 M 716.96484,126.7793 L 719.21484,126.7793 L 719.21484,133.33008 L 716.96484,133.33008 L 716.96484,126.7793 M 718.88672,156.7793 L 721.13672,156.7793 L 721.13672,163.33008 L 718.88672,163.33008 L 718.88672,156.7793"
+ id="text5731" />
+ <g
+ id="g5790">
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ x="31.8125"
+ y="201.19531"
+ id="text5753"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5755"
+ x="31.8125"
+ y="201.19531">Shift</tspan></text>
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ id="path5757" />
+ </g>
+ <g
+ id="g5795"
+ transform="translate(727.5,0)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5797"
+ y="201.19531"
+ x="31.8125"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="201.19531"
+ x="31.8125"
+ id="tspan5799"
+ sodipodi:role="line">Shift</tspan></text>
+ <path
+ id="path5801"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 576.90234,189.63867 L 576.90234,192.20508 L 566.4375,196.48242 L 576.90234,200.74805 L 576.90234,203.31445 L 563.09766,197.63086 L 563.09766,195.29883 L 576.90234,189.63867 M 568.21875,237.68555 L 568.21875,236.31445 C 568.875,236.12695 569.35937,235.83789 569.67188,235.44727 C 569.98437,235.05664 570.14062,234.54883 570.14063,233.92383 L 570.14063,233.63086 L 568.21875,233.63086 L 568.21875,230.10352 L 571.76953,230.10352 L 571.76953,233.49023 C 571.76953,234.6543 571.46875,235.59179 570.86719,236.30273 C 570.27343,237.01367 569.39062,237.47461 568.21875,237.68555"
+ id="text5803" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 623.09766,189.63867 L 636.90234,195.29883 L 636.90234,197.63086 L 623.09766,203.31445 L 623.09766,200.74805 L 633.58594,196.48242 L 623.09766,192.20508 L 623.09766,189.63867 M 628.21875,233.63086 L 628.21875,230.10352 L 631.74609,230.10352 L 631.74609,233.63086 L 628.21875,233.63086"
+ id="text5813" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 688.44727,198.61523 C 688.44726,198.5293 688.44335,198.41602 688.43555,198.27539 C 688.42773,198.12696 688.42382,198.01758 688.42383,197.94727 C 688.42382,197.25977 688.49804,196.68946 688.64648,196.23633 C 688.79492,195.7754 689.0332,195.34571 689.36133,194.94727 C 689.61132,194.6504 689.98242,194.31056 690.47461,193.92773 C 690.9746,193.54493 691.29882,193.26759 691.44727,193.0957 C 691.75976,192.74415 691.9746,192.42775 692.0918,192.14648 C 692.20898,191.86525 692.26757,191.55665 692.26758,191.2207 C 692.26757,190.47853 692.06054,189.9004 691.64648,189.48633 C 691.23241,189.07228 690.65429,188.86525 689.91211,188.86523 C 689.16992,188.86525 688.58398,189.11525 688.1543,189.61523 C 687.73242,190.10744 687.50195,190.80275 687.46289,191.70117 L 684.1582,191.70117 L 684.1582,191.33789 C 684.1582,189.68947 684.67773,188.37697 685.7168,187.40039 C 686.76367,186.41603 688.16992,185.92385 689.93555,185.92383 C 691.74023,185.92385 693.17382,186.38869 694.23633,187.31836 C 695.30663,188.24025 695.84178,189.47853 695.8418,191.0332 C 695.84178,191.58009 695.77928,192.07228 695.6543,192.50977 C 695.5371,192.93946 695.3535,193.33399 695.10352,193.69336 C 694.78319,194.14649 694.2871,194.63868 693.61523,195.16992 C 692.95116,195.69337 692.54882,196.01759 692.4082,196.14258 C 692.11132,196.43165 691.89648,196.73634 691.76367,197.05664 C 691.63866,197.37696 691.57616,197.75977 691.57617,198.20508 C 691.57616,198.24415 691.58007,198.31055 691.58789,198.4043 C 691.59569,198.49805 691.5996,198.56836 691.59961,198.61523 L 688.44727,198.61523 M 688.2832,203.63086 L 688.2832,200.19727 L 691.74023,200.19727 L 691.74023,203.63086 L 688.2832,203.63086 M 686.31445,235.85742 L 692.12695,215.92383 L 693.73242,215.92383 L 687.89648,235.85742 L 686.31445,235.85742"
+ id="text5819" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 18,271.78906 C 17.911447,273.09636 17.406239,274.13542 16.484375,274.90625 C 15.5677,275.67708 14.369784,276.0625 12.890625,276.0625 C 11.187496,276.0625 9.8619761,275.53125 8.9140625,274.46875 C 7.971353,273.40625 7.4999993,271.91667 7.5,270 C 7.4999993,268.04167 7.9817696,266.54168 8.9453125,265.5 C 9.9088511,264.45834 11.294266,263.93751 13.101563,263.9375 C 14.570305,263.93751 15.729158,264.29689 16.578125,265.01563 C 17.432281,265.72918 17.901031,266.73959 17.984375,268.04688 L 15.648438,268.04688 C 15.54947,267.39584 15.283846,266.90105 14.851563,266.5625 C 14.419263,266.21876 13.83593,266.04688 13.101563,266.04688 C 12.059891,266.04688 11.268225,266.38282 10.726563,267.05469 C 10.184892,267.72657 9.9140594,268.70834 9.9140625,270 C 9.9140594,271.25 10.182288,272.21615 10.71875,272.89844 C 11.260412,273.58073 12.028641,273.92188 13.023438,273.92188 C 13.742181,273.92188 14.330722,273.73959 14.789063,273.375 C 15.247387,273.00521 15.544262,272.47657 15.679688,271.78906 L 18,271.78906 M 23.46875,275.80469 C 23.260412,275.8099 23.010412,275.81771 22.71875,275.82813 C 22.432288,275.84375 22.249996,275.85156 22.171875,275.85156 C 21.302081,275.85156 20.705727,275.6901 20.382813,275.36719 C 20.065103,275.03906 19.906249,274.39583 19.90625,273.4375 L 19.90625,268.84375 L 18.78125,268.84375 L 18.78125,267.25 L 19.90625,267.25 L 19.90625,264.92969 L 22.15625,264.92969 L 22.15625,267.25 L 23.46875,267.25 L 23.46875,268.84375 L 22.15625,268.84375 L 22.15625,273.54688 C 22.156247,273.77084 22.205726,273.91927 22.304688,273.99219 C 22.403642,274.0599 22.606767,274.09375 22.914063,274.09375 L 23.46875,274.09375 L 23.46875,275.80469 M 24.789063,275.74219 L 24.789063,267.25 L 26.898438,267.25 L 26.898438,268.70313 C 27.195309,268.1198 27.541663,267.69272 27.9375,267.42188 C 28.333329,267.14584 28.804682,267.00782 29.351563,267.00781 C 29.440099,267.00782 29.507807,267.01043 29.554688,267.01563 C 29.606765,267.01563 29.648432,267.01824 29.679688,267.02344 L 29.6875,269.32813 L 28.929688,269.32813 C 28.309891,269.32813 27.843746,269.48959 27.53125,269.8125 C 27.218747,270.13542 27.062497,270.61459 27.0625,271.25 L 27.0625,275.74219 L 24.789063,275.74219 M 31.023438,275.74219 L 31.023438,264.23438 L 33.296875,264.23438 L 33.296875,275.74219 L 31.023438,275.74219"
+ id="text5827" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 612.96875,266.53906 L 611.375,271.4375 L 614.57031,271.4375 L 612.96875,266.53906 M 611.59375,264.23438 L 614.32813,264.23438 L 618.47656,275.74219 L 615.99219,275.74219 L 615.21094,273.375 L 610.75,273.375 L 609.99219,275.74219 L 607.5,275.74219 L 611.59375,264.23438 M 619.53906,275.74219 L 619.53906,264.23438 L 621.8125,264.23438 L 621.8125,275.74219 L 619.53906,275.74219 M 627.64063,275.80469 C 627.43229,275.8099 627.18229,275.81771 626.89063,275.82813 C 626.60416,275.84375 626.42187,275.85156 626.34375,275.85156 C 625.47396,275.85156 624.8776,275.6901 624.55469,275.36719 C 624.23698,275.03906 624.07812,274.39583 624.07813,273.4375 L 624.07813,268.84375 L 622.95313,268.84375 L 622.95313,267.25 L 624.07813,267.25 L 624.07813,264.92969 L 626.32813,264.92969 L 626.32813,267.25 L 627.64063,267.25 L 627.64063,268.84375 L 626.32813,268.84375 L 626.32813,273.54688 C 626.32812,273.77084 626.3776,273.91927 626.47656,273.99219 C 626.57552,274.0599 626.77864,274.09375 627.08594,274.09375 L 627.64063,274.09375 L 627.64063,275.80469"
+ id="text5835"
+ sodipodi:nodetypes="cccccccccccccccccccsssccccccccccccsccc" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 828,271.78906 C 827.91145,273.09636 827.40624,274.13542 826.48438,274.90625 C 825.5677,275.67708 824.36978,276.0625 822.89063,276.0625 C 821.1875,276.0625 819.86198,275.53125 818.91406,274.46875 C 817.97135,273.40625 817.5,271.91667 817.5,270 C 817.5,268.04167 817.98177,266.54168 818.94531,265.5 C 819.90885,264.45834 821.29427,263.93751 823.10156,263.9375 C 824.5703,263.93751 825.72916,264.29689 826.57813,265.01563 C 827.43228,265.72918 827.90103,266.73959 827.98438,268.04688 L 825.64844,268.04688 C 825.54947,267.39584 825.28385,266.90105 824.85156,266.5625 C 824.41926,266.21876 823.83593,266.04688 823.10156,266.04688 C 822.05989,266.04688 821.26822,266.38282 820.72656,267.05469 C 820.18489,267.72657 819.91406,268.70834 819.91406,270 C 819.91406,271.25 820.18229,272.21615 820.71875,272.89844 C 821.26041,273.58073 822.02864,273.92188 823.02344,273.92188 C 823.74218,273.92188 824.33072,273.73959 824.78906,273.375 C 825.24739,273.00521 825.54426,272.47657 825.67969,271.78906 L 828,271.78906 M 833.46875,275.80469 C 833.26041,275.8099 833.01041,275.81771 832.71875,275.82813 C 832.43229,275.84375 832.25,275.85156 832.17188,275.85156 C 831.30208,275.85156 830.70573,275.6901 830.38281,275.36719 C 830.0651,275.03906 829.90625,274.39583 829.90625,273.4375 L 829.90625,268.84375 L 828.78125,268.84375 L 828.78125,267.25 L 829.90625,267.25 L 829.90625,264.92969 L 832.15625,264.92969 L 832.15625,267.25 L 833.46875,267.25 L 833.46875,268.84375 L 832.15625,268.84375 L 832.15625,273.54688 C 832.15625,273.77084 832.20573,273.91927 832.30469,273.99219 C 832.40364,274.0599 832.60677,274.09375 832.91406,274.09375 L 833.46875,274.09375 L 833.46875,275.80469 M 834.78906,275.74219 L 834.78906,267.25 L 836.89844,267.25 L 836.89844,268.70313 C 837.19531,268.1198 837.54166,267.69272 837.9375,267.42188 C 838.33333,267.14584 838.80468,267.00782 839.35156,267.00781 C 839.4401,267.00782 839.50781,267.01043 839.55469,267.01563 C 839.60677,267.01563 839.64843,267.01824 839.67969,267.02344 L 839.6875,269.32813 L 838.92969,269.32813 C 838.30989,269.32813 837.84375,269.48959 837.53125,269.8125 C 837.21875,270.13542 837.0625,270.61459 837.0625,271.25 L 837.0625,275.74219 L 834.78906,275.74219 M 841.02344,275.74219 L 841.02344,264.23438 L 843.29688,264.23438 L 843.29688,275.74219 L 841.02344,275.74219"
+ id="text5839" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 108.94531,264.01953 L 105.64844,252.51172 L 108.10156,252.51172 L 110.07031,260.62891 L 111.73438,252.51172 L 114.25781,252.51172 L 115.92188,260.62891 L 117.89063,252.51172 L 120.32031,252.51172 L 117.03125,264.01953 L 114.77344,264.01953 L 112.99219,255.20703 L 111.20313,264.01953 L 108.94531,264.01953 M 121.5,254.58203 L 121.5,252.51172 L 123.77344,252.51172 L 123.77344,254.58203 L 121.5,254.58203 M 121.5,264.01953 L 121.5,255.52734 L 123.77344,255.52734 L 123.77344,264.01953 L 121.5,264.01953 M 125.79688,264.01953 L 125.79688,255.52734 L 128.02344,255.52734 L 128.02344,256.53516 C 128.34114,256.12371 128.71614,255.81641 129.14844,255.61328 C 129.58072,255.40496 130.06249,255.30079 130.59375,255.30078 C 131.53124,255.30079 132.23176,255.54558 132.69531,256.03516 C 133.16405,256.51954 133.39843,257.25131 133.39844,258.23047 L 133.39844,264.01953 L 131.125,264.01953 L 131.125,258.88672 C 131.12499,258.27735 131.02083,257.84245 130.8125,257.58203 C 130.60937,257.32162 130.27604,257.19141 129.8125,257.19141 C 129.27604,257.19141 128.85156,257.35287 128.53906,257.67578 C 128.22656,257.9935 128.07031,258.42839 128.07031,258.98047 L 128.07031,264.01953 L 125.79688,264.01953 M 106.64844,284.01953 L 106.64844,272.51172 L 109.01563,272.51172 L 109.01563,277.23828 L 113.50781,272.51172 L 116.46875,272.51172 L 111.875,277.16797 L 116.88281,284.01953 L 113.99219,284.01953 L 110.24219,278.75391 L 109.01563,279.97266 L 109.01563,284.01953 L 106.64844,284.01953 M 122.9375,281.44141 L 125.20313,281.44141 C 124.97395,282.33724 124.51041,283.04037 123.8125,283.55078 C 123.11979,284.05599 122.27343,284.30859 121.27344,284.30859 C 120.04427,284.30859 119.07031,283.89714 118.35156,283.07422 C 117.63281,282.2461 117.27344,281.1263 117.27344,279.71484 C 117.27344,278.32422 117.6276,277.22787 118.33594,276.42578 C 119.04427,275.62371 120.01302,275.22267 121.24219,275.22266 C 122.54427,275.22267 123.54947,275.6185 124.25781,276.41016 C 124.96614,277.19662 125.3203,278.31902 125.32031,279.77734 C 125.3203,279.93881 125.3177,280.0612 125.3125,280.14453 C 125.31249,280.22266 125.30728,280.29818 125.29688,280.37109 L 119.625,280.37109 C 119.65625,281.03776 119.81771,281.54037 120.10938,281.87891 C 120.40625,282.21745 120.83073,282.38672 121.38281,282.38672 C 121.77343,282.38672 122.09374,282.3112 122.34375,282.16016 C 122.59374,282.00391 122.79166,281.76433 122.9375,281.44141 M 119.625,278.87891 L 122.96875,278.87891 C 122.94791,278.306 122.79426,277.8711 122.50781,277.57422 C 122.22656,277.27214 121.82031,277.1211 121.28906,277.12109 C 120.79427,277.1211 120.40364,277.27214 120.11719,277.57422 C 119.83593,277.87631 119.67187,278.3112 119.625,278.87891 M 127.16406,287.42578 L 127.16406,285.58984 C 127.23698,285.60026 127.3125,285.60807 127.39063,285.61328 C 127.46875,285.61849 127.57031,285.62109 127.69531,285.62109 C 128.14323,285.62109 128.47916,285.51432 128.70313,285.30078 C 128.92708,285.09245 129.03906,284.77734 129.03906,284.35547 C 129.03906,284.32422 129.03385,284.28516 129.02344,284.23828 C 129.01302,284.19141 129.0026,284.15234 128.99219,284.12109 L 125.92969,275.52734 L 128.42969,275.52734 L 130.21875,281.65234 L 131.96094,275.52734 L 134.35156,275.52734 L 130.85938,285.54297 C 130.59895,286.29297 130.27343,286.80338 129.88281,287.07422 C 129.49218,287.35026 128.90625,287.48828 128.125,287.48828 C 127.98437,287.48828 127.83333,287.48307 127.67188,287.47266 C 127.51041,287.46224 127.34114,287.44661 127.16406,287.42578"
+ id="text5872" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 708.94531,264.01953 L 705.64844,252.51172 L 708.10156,252.51172 L 710.07031,260.62891 L 711.73438,252.51172 L 714.25781,252.51172 L 715.92188,260.62891 L 717.89063,252.51172 L 720.32031,252.51172 L 717.03125,264.01953 L 714.77344,264.01953 L 712.99219,255.20703 L 711.20313,264.01953 L 708.94531,264.01953 M 721.5,254.58203 L 721.5,252.51172 L 723.77344,252.51172 L 723.77344,254.58203 L 721.5,254.58203 M 721.5,264.01953 L 721.5,255.52734 L 723.77344,255.52734 L 723.77344,264.01953 L 721.5,264.01953 M 725.79688,264.01953 L 725.79688,255.52734 L 728.02344,255.52734 L 728.02344,256.53516 C 728.34114,256.12371 728.71614,255.81641 729.14844,255.61328 C 729.58072,255.40496 730.06249,255.30079 730.59375,255.30078 C 731.53124,255.30079 732.23176,255.54558 732.69531,256.03516 C 733.16405,256.51954 733.39843,257.25131 733.39844,258.23047 L 733.39844,264.01953 L 731.125,264.01953 L 731.125,258.88672 C 731.12499,258.27735 731.02083,257.84245 730.8125,257.58203 C 730.60937,257.32162 730.27604,257.19141 729.8125,257.19141 C 729.27604,257.19141 728.85156,257.35287 728.53906,257.67578 C 728.22656,257.9935 728.07031,258.42839 728.07031,258.98047 L 728.07031,264.01953 L 725.79688,264.01953 M 706.64844,284.01953 L 706.64844,272.51172 L 709.01563,272.51172 L 709.01563,277.23828 L 713.50781,272.51172 L 716.46875,272.51172 L 711.875,277.16797 L 716.88281,284.01953 L 713.99219,284.01953 L 710.24219,278.75391 L 709.01563,279.97266 L 709.01563,284.01953 L 706.64844,284.01953 M 722.9375,281.44141 L 725.20313,281.44141 C 724.97395,282.33724 724.51041,283.04037 723.8125,283.55078 C 723.11979,284.05599 722.27343,284.30859 721.27344,284.30859 C 720.04427,284.30859 719.07031,283.89714 718.35156,283.07422 C 717.63281,282.2461 717.27344,281.1263 717.27344,279.71484 C 717.27344,278.32422 717.6276,277.22787 718.33594,276.42578 C 719.04427,275.62371 720.01302,275.22267 721.24219,275.22266 C 722.54427,275.22267 723.54947,275.6185 724.25781,276.41016 C 724.96614,277.19662 725.3203,278.31902 725.32031,279.77734 C 725.3203,279.93881 725.3177,280.0612 725.3125,280.14453 C 725.31249,280.22266 725.30728,280.29818 725.29688,280.37109 L 719.625,280.37109 C 719.65625,281.03776 719.81771,281.54037 720.10938,281.87891 C 720.40625,282.21745 720.83073,282.38672 721.38281,282.38672 C 721.77343,282.38672 722.09374,282.3112 722.34375,282.16016 C 722.59374,282.00391 722.79166,281.76433 722.9375,281.44141 M 719.625,278.87891 L 722.96875,278.87891 C 722.94791,278.306 722.79426,277.8711 722.50781,277.57422 C 722.22656,277.27214 721.82031,277.1211 721.28906,277.12109 C 720.79427,277.1211 720.40364,277.27214 720.11719,277.57422 C 719.83593,277.87631 719.67187,278.3112 719.625,278.87891 M 727.16406,287.42578 L 727.16406,285.58984 C 727.23698,285.60026 727.3125,285.60807 727.39063,285.61328 C 727.46875,285.61849 727.57031,285.62109 727.69531,285.62109 C 728.14323,285.62109 728.47916,285.51432 728.70313,285.30078 C 728.92708,285.09245 729.03906,284.77734 729.03906,284.35547 C 729.03906,284.32422 729.03385,284.28516 729.02344,284.23828 C 729.01302,284.19141 729.0026,284.15234 728.99219,284.12109 L 725.92969,275.52734 L 728.42969,275.52734 L 730.21875,281.65234 L 731.96094,275.52734 L 734.35156,275.52734 L 730.85938,285.54297 C 730.59895,286.29297 730.27343,286.80338 729.88281,287.07422 C 729.49218,287.35026 728.90625,287.48828 728.125,287.48828 C 727.98437,287.48828 727.83333,287.48307 727.67188,287.47266 C 727.51041,287.46224 727.34114,287.44661 727.16406,287.42578"
+ id="text5878" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 759.98438,275.60938 L 759.98438,264.10156 L 763.48438,264.10156 L 765.77344,272.85938 L 768.03125,264.10156 L 771.54688,264.10156 L 771.54688,275.60938 L 769.32813,275.60938 L 769.32813,266.32813 L 766.99219,275.60938 L 764.57031,275.60938 L 762.20313,266.32813 L 762.20313,275.60938 L 759.98438,275.60938 M 778.99219,273.03125 L 781.25781,273.03125 C 781.02864,273.92709 780.5651,274.63021 779.86719,275.14063 C 779.17447,275.64583 778.32812,275.89844 777.32813,275.89844 C 776.09896,275.89844 775.125,275.48698 774.40625,274.66406 C 773.6875,273.83594 773.32812,272.71615 773.32813,271.30469 C 773.32812,269.91407 773.68229,268.81772 774.39063,268.01563 C 775.09896,267.21355 776.06771,266.81251 777.29688,266.8125 C 778.59895,266.81251 779.60416,267.20834 780.3125,268 C 781.02083,268.78647 781.37499,269.90886 781.375,271.36719 C 781.37499,271.52865 781.37239,271.65105 781.36719,271.73438 C 781.36718,271.8125 781.36197,271.88802 781.35156,271.96094 L 775.67969,271.96094 C 775.71093,272.62761 775.87239,273.13021 776.16406,273.46875 C 776.46093,273.80729 776.88541,273.97656 777.4375,273.97656 C 777.82812,273.97656 778.14843,273.90104 778.39844,273.75 C 778.64843,273.59375 778.84635,273.35417 778.99219,273.03125 M 775.67969,270.46875 L 779.02344,270.46875 C 779.0026,269.89584 778.84895,269.46094 778.5625,269.16406 C 778.28124,268.86199 777.87499,268.71094 777.34375,268.71094 C 776.84895,268.71094 776.45833,268.86199 776.17188,269.16406 C 775.89062,269.46615 775.72656,269.90105 775.67969,270.46875 M 782.88281,275.60938 L 782.88281,267.11719 L 785.10938,267.11719 L 785.10938,268.125 C 785.42708,267.71355 785.80208,267.40626 786.23438,267.20313 C 786.66666,266.9948 787.14843,266.89063 787.67969,266.89063 C 788.61718,266.89063 789.3177,267.13543 789.78125,267.625 C 790.24999,268.10938 790.48437,268.84115 790.48438,269.82031 L 790.48438,275.60938 L 788.21094,275.60938 L 788.21094,270.47656 C 788.21093,269.86719 788.10676,269.4323 787.89844,269.17188 C 787.69531,268.91147 787.36197,268.78126 786.89844,268.78125 C 786.36197,268.78126 785.9375,268.94272 785.625,269.26563 C 785.3125,269.58334 785.15625,270.01823 785.15625,270.57031 L 785.15625,275.60938 L 782.88281,275.60938 M 800.01563,267.11719 L 800.01563,275.60938 L 797.78906,275.60938 L 797.78906,274.60156 C 797.46614,275.01302 797.08854,275.32292 796.65625,275.53125 C 796.22916,275.73437 795.74739,275.83594 795.21094,275.83594 C 794.27864,275.83594 793.57812,275.59115 793.10938,275.10156 C 792.64583,274.61198 792.41406,273.88021 792.41406,272.90625 L 792.41406,267.11719 L 794.6875,267.11719 L 794.6875,272.25 C 794.6875,272.85417 794.78906,273.28646 794.99219,273.54688 C 795.19531,273.80209 795.53125,273.92969 796,273.92969 C 796.53124,273.92969 796.95312,273.77084 797.26563,273.45313 C 797.58333,273.13021 797.74218,272.69271 797.74219,272.14063 L 797.74219,267.11719 L 800.01563,267.11719"
+ id="text5884" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="314.20523"
+ y="144.79591"
+ id="text2980"><tspan
+ sodipodi:role="line"
+ id="tspan2982"
+ x="314.20523"
+ y="144.79591"
+ style="font-size:14px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">full</tspan><tspan
+ sodipodi:role="line"
+ x="314.20523"
+ y="162.29591"
+ id="tspan2984"
+ style="font-size:14px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">screen</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="180"
+ y="86"
+ id="text2986"><tspan
+ sodipodi:role="line"
+ id="tspan2988"
+ x="180"
+ y="86"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">tabbed</tspan><tspan
+ sodipodi:role="line"
+ x="180"
+ y="102.25"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3030">layout</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="240"
+ y="86"
+ id="text2990"><tspan
+ sodipodi:role="line"
+ id="tspan2992"
+ x="240"
+ y="86"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">default</tspan><tspan
+ sodipodi:role="line"
+ x="240"
+ y="102.25"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3028">layout</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="230.73412"
+ y="154.28845"
+ id="text2994"><tspan
+ sodipodi:role="line"
+ id="tspan2996"
+ x="230.73412"
+ y="154.28845"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">dmenu</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="428.51135"
+ y="272.48416"
+ id="text2998"><tspan
+ sodipodi:role="line"
+ x="428.51135"
+ y="272.48416"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3004">focus floating/tiling</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="480"
+ y="154"
+ id="text3006"><tspan
+ sodipodi:role="line"
+ id="tspan3008"
+ x="480"
+ y="154"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="540"
+ y="154"
+ id="text3010"><tspan
+ sodipodi:role="line"
+ id="tspan3012"
+ x="540"
+ y="154"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">down</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="600"
+ y="154"
+ id="text3014"><tspan
+ sodipodi:role="line"
+ id="tspan3016"
+ x="600"
+ y="154"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">up</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="660"
+ y="154"
+ id="text3018"><tspan
+ sodipodi:role="line"
+ id="tspan3020"
+ x="660"
+ y="154"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="434.21317"
+ y="146.87415"
+ id="text3022"><tspan
+ sodipodi:role="line"
+ x="434.21317"
+ y="146.87415"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3026">split</tspan><tspan
+ sodipodi:role="line"
+ x="434.21317"
+ y="163.12415"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3397">horiz.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="164.78459"
+ y="277.00677"
+ id="text2996"><tspan
+ sodipodi:role="line"
+ id="tspan2998"
+ x="164.78459"
+ y="277.00677"
+ style="font-size:18px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">Mod1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="830.84515"
+ y="144.03874"
+ id="text3022-6"><tspan
+ sodipodi:role="line"
+ x="830.84515"
+ y="144.03874"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3026-2">open</tspan><tspan
+ sodipodi:role="line"
+ x="830.84515"
+ y="160.28874"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3385">terminal</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="345.9798"
+ y="205.08424"
+ id="text3022-4"><tspan
+ sodipodi:role="line"
+ x="345.9798"
+ y="205.08424"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3026-5">split</tspan><tspan
+ sodipodi:role="line"
+ x="345.9798"
+ y="221.33424"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3397-1">vert.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="194.07654"
+ y="146.9129"
+ id="text2986-0"><tspan
+ sodipodi:role="line"
+ id="tspan2988-3"
+ x="194.07654"
+ y="146.9129"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">stacked</tspan><tspan
+ sodipodi:role="line"
+ x="194.07654"
+ y="163.1629"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3030-7">layout</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="135.30087"
+ y="145.95485"
+ id="text2986-0-8"><tspan
+ sodipodi:role="line"
+ x="135.30087"
+ y="145.95485"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3030-7-6">focus</tspan><tspan
+ sodipodi:role="line"
+ x="135.30087"
+ y="162.20485"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3477">parent</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="278.85074"
+ y="86.411041"
+ id="text2994-0"><tspan
+ sodipodi:role="line"
+ id="tspan2996-4"
+ x="278.85074"
+ y="86.411041"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">resize</tspan><tspan
+ sodipodi:role="line"
+ x="278.85074"
+ y="102.66104"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold"
+ id="tspan3500">mode</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Sans Bold"
+ x="340.89798"
+ y="83.480705"
+ id="text3755"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3757"
+ x="340.89798"
+ y="83.480705"
+ style="font-size:22px">T</tspan></text>
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="900"
+ height="300"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.47 r22583"
+ version="1.0"
+ sodipodi:docname="keyboard-layer2.svg">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 150 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="900 : 150 : 1"
+ inkscape:persp3d-origin="450 : 100 : 1"
+ id="perspective3385" />
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lend"
+ style="overflow:visible;">
+ <path
+ id="path5387"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.8) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Lstart"
+ style="overflow:visible">
+ <path
+ id="path5390"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+ transform="scale(0.8)" />
+ </marker>
+ <marker
+ inkscape:stockid="Tail"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Tail"
+ style="overflow:visible">
+ <g
+ id="g5342"
+ transform="scale(-1.2)">
+ <path
+ id="path5344"
+ d="M -3.8048674,-3.9585227 L 0.54352094,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5346"
+ d="M -1.2866832,-3.9585227 L 3.0617053,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5348"
+ d="M 1.3053582,-3.9585227 L 5.6537466,-0.00068114835"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5350"
+ d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5352"
+ d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ <path
+ id="path5354"
+ d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;marker-start:none;marker-end:none;stroke-linecap:round" />
+ </g>
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mend"
+ style="overflow:visible;">
+ <path
+ id="path5363"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.6) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lend"
+ style="overflow:visible;">
+ <path
+ id="path5369"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Send"
+ style="overflow:visible;">
+ <path
+ id="path5375"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.2) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Send"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Send"
+ style="overflow:visible;">
+ <path
+ id="path5357"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(0.3) rotate(180) translate(-5,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow1Mend"
+ style="overflow:visible;">
+ <path
+ id="path5381"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
+ transform="scale(0.4) rotate(180)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Lstart"
+ style="overflow:visible">
+ <path
+ id="path5372"
+ style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ transform="scale(1.1) translate(-5,0)" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0437869"
+ inkscape:cx="412.7029"
+ inkscape:cy="149.32256"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:grid-points="true"
+ showgrid="true"
+ gridtolerance="15px"
+ showborder="false"
+ inkscape:window-width="956"
+ inkscape:window-height="958"
+ inkscape:window-x="1600"
+ inkscape:window-y="221"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="7.5px"
+ spacingy="7.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.12156863"
+ empopacity="0.25098039"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,0 L 60,0 L 60,60 L 0,60 L 0,0 z "
+ id="rect2186" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 60,0 L 120,0 L 120,60 L 60,60 L 60,0 z "
+ id="rect2218" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 120,0 L 180,0 L 180,60 L 120,60 L 120,0 z "
+ id="rect2222" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 180,0 L 240,0 L 240,60 L 180,60 L 180,0 z "
+ id="rect2228" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,0 L 300,0 L 300,60 L 240,60 L 240,0 z "
+ id="rect2230" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 300,0 L 360,0 L 360,60 L 300,60 L 300,0 z "
+ id="rect2232" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 360,0 L 420,0 L 420,60 L 360,60 L 360,0 z "
+ id="rect2234" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 420,0 L 480,0 L 480,60 L 420,60 L 420,0 z "
+ id="rect2236" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 480,0 L 540,0 L 540,60 L 480,60 L 480,0 z "
+ id="rect2238" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 540,0 L 600,0 L 600,60 L 540,60 L 540,0 z "
+ id="rect2240" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,0 L 660,0 L 660,60 L 600,60 L 600,0 z "
+ id="rect2242" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 660,0 L 720,0 L 720,60 L 660,60 L 660,0 z "
+ id="rect2244" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 720,0 L 780,0 L 780,60 L 720,60 L 720,0 z "
+ id="rect2246" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 780,0 L 900,0 L 900,60 L 780,60 L 780,0 z "
+ id="rect2248" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,60 L 90,60 L 90,120 L 0,120 L 0,60 z "
+ id="rect2250" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,60 L 150,60 L 150,120 L 90,120 L 90,60 z "
+ id="rect2252" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,60 L 210,60 L 210,120 L 150,120 L 150,60 z "
+ id="rect2254" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 210,60 L 270,60 L 270,120 L 210,120 L 210,60 z "
+ id="rect2256" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 270,60 L 330,60 L 330,120 L 270,120 L 270,60 z "
+ id="rect2258" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 330,60 L 390,60 L 390,120 L 330,120 L 330,60 z "
+ id="rect2262" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 390,60 L 450,60 L 450,120 L 390,120 L 390,60 z "
+ id="rect2264" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 450,60 L 510,60 L 510,120 L 450,120 L 450,60 z "
+ id="rect2266" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 510,60 L 570,60 L 570,120 L 510,120 L 510,60 z "
+ id="rect2270" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 570,60 L 630,60 L 630,120 L 570,120 L 570,60 z "
+ id="rect2272" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 630,60 L 690,60 L 690,120 L 630,120 L 630,60 z "
+ id="rect2274" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,60 L 750,60 L 750,120 L 690,120 L 690,60 z "
+ id="rect2278" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,60 L 810,60 L 810,120 L 750,120 L 750,60 z "
+ id="rect2280" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,60 L 900,60 L 900,120 L 810,120 L 810,60 z "
+ id="rect2284" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,120 L 105,120 L 105,180 L 0,180 L 0,120 z "
+ id="rect2286" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 105,120 L 165,120 L 165,180 L 105,180 L 105,120 z "
+ id="rect2292" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 165,120 L 225,120 L 225,180 L 165,180 L 165,120 z "
+ id="rect2296" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 225,120 L 285,120 L 285,180 L 225,180 L 225,120 z "
+ id="rect2298" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 285,120 L 345,120 L 345,180 L 285,180 L 285,120 z "
+ id="rect2300" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 345,120 L 405,120 L 405,180 L 345,180 L 345,120 z "
+ id="rect2302" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 405,120 L 465,120 L 465,180 L 405,180 L 405,120 z "
+ id="rect2306" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 465,120 L 525,120 L 525,180 L 465,180 L 465,120 z "
+ id="rect2308" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 525,120 L 585,120 L 585,180 L 525,180 L 525,120 z "
+ id="rect2312" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 585,120 L 645,120 L 645,180 L 585,180 L 585,120 z "
+ id="rect2314" />
+ <path
+ style="fill:#00adff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 645,120 L 705,120 L 705,180 L 645,180 L 645,120 z "
+ id="rect2316" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 705,120 L 765,120 L 765,180 L 705,180 L 705,120 z "
+ id="rect2318" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 765,120 L 900,120 L 900,180 L 765,180 L 765,120 z "
+ id="rect2320" />
+ <path
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,180 L 135,180 L 135,240 L 0,240 L 0,180 z "
+ id="rect2322" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 135,180 L 195,180 L 195,240 L 135,240 L 135,180 z "
+ id="rect2324" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 195,180 L 255,180 L 255,240 L 195,240 L 195,180 z "
+ id="rect2326" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 255,180 L 315,180 L 315,240 L 255,240 L 255,180 z "
+ id="rect2330" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 315,180 L 375,180 L 375,240 L 315,240 L 315,180 z "
+ id="rect2334" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 375,180 L 435,180 L 435,240 L 375,240 L 375,180 z "
+ id="rect2336" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 435,180 L 495,180 L 495,240 L 435,240 L 435,180 z "
+ id="rect2338" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 495,180 L 555,180 L 555,240 L 495,240 L 495,180 z "
+ id="rect2340" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 555,180 L 615,180 L 615,240 L 555,240 L 555,180 z "
+ id="rect2342" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 615,180 L 675,180 L 675,240 L 615,240 L 615,180 z "
+ id="rect2344" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 675,180 L 735,180 L 735,240 L 675,240 L 675,180 z "
+ id="rect2346" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 735,180 L 900,180 L 900,240 L 735,240 L 735,180 z "
+ id="rect2348" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0,240 L 90,240 L 90,300 L 0,300 L 0,240 z "
+ id="rect2350" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 810,240 L 900,240 L 900,300 L 810,300 L 810,240 z "
+ id="rect2352" />
+ <path
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 150,240 L 240,240 L 240,300 L 150,300 L 150,240 z "
+ id="rect2354" />
+ <path
+ style="fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 600,240 L 690,240 L 690,300 L 600,300 L 600,240 z "
+ id="rect2360" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 240,240 L 600,240 L 600,300 L 240,300 L 240,240 z "
+ id="rect2362" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 90,240 L 150,240 L 150,300 L 90,300 L 90,240 z "
+ id="rect2364" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 690,240 L 750,240 L 750,300 L 690,300 L 690,240 z "
+ id="rect2366" />
+ <path
+ style="fill:#efefef;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 750,240 L 810,240 L 810,300 L 750,300 L 750,240 z "
+ id="rect2368" />
+ <path
+ style=""
+ d=""
+ id="flowRoot4146" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 75.351563,18.826172 L 74.4375,11.056641 L 74.4375,6.3691406 L 78.046875,6.3691406 L 78.046875,11.056641 L 77.132813,18.826172 L 75.351563,18.826172 M 74.484375,23.630859 L 74.484375,20.173828 L 77.964844,20.173828 L 77.964844,23.630859 L 74.484375,23.630859 M 75.351563,53.630859 L 75.351563,42.158203 L 71.34375,42.158203 L 71.34375,39.802734 L 71.601563,39.802734 C 73.062496,39.802748 74.124995,39.576186 74.789063,39.123047 C 75.460931,38.669937 75.855462,37.912125 75.972656,36.849609 L 78.65625,36.849609 L 78.65625,53.630859 L 75.351563,53.630859"
+ id="text5091" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 23.34375,14.220703 L 23.34375,16.810547 C 22.531233,17.365241 21.761702,17.775396 21.035156,18.041016 C 20.316391,18.298833 19.605455,18.42774 18.902344,18.427734 C 18.542956,18.42774 18.183581,18.39649 17.824219,18.333984 C 17.464832,18.27149 17.105457,18.181646 16.746094,18.064453 C 16.558583,18.001959 16.281239,17.904303 15.914063,17.771484 C 14.203116,17.185553 12.902336,16.892585 12.011719,16.892578 C 11.34765,16.892585 10.652339,17.041022 9.9257813,17.337891 C 9.2070275,17.626959 8.3984345,18.091802 7.5,18.732422 L 7.5,16.142578 C 8.3359346,15.580086 9.1328088,15.162118 9.890625,14.888672 C 10.648432,14.607431 11.363275,14.466806 12.035156,14.466797 C 12.949211,14.466806 14.085929,14.693368 15.445313,15.146484 C 15.46874,15.154305 15.484365,15.158212 15.492188,15.158203 C 15.632802,15.205087 15.847646,15.279305 16.136719,15.380859 C 17.347644,15.810555 18.285143,16.025398 18.949219,16.025391 C 19.613267,16.025398 20.29686,15.880867 21,15.591797 C 21.703109,15.302743 22.484358,14.845712 23.34375,14.220703 M 11.988281,35.033203 L 15.011719,35.033203 L 17.320313,39.369141 L 15.65625,39.369141 L 11.988281,35.033203"
+ id="text5103" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 136.47578,20.443359 C 136.04608,21.099612 135.54999,21.583986 134.9875,21.896484 C 134.42499,22.201173 133.76093,22.353517 132.99532,22.353516 C 131.76093,22.353517 130.81953,22.01758 130.1711,21.345703 C 129.53047,20.673831 129.21015,19.681645 129.21016,18.369141 C 129.21015,16.50196 129.75312,14.935556 130.83907,13.669922 C 131.93281,12.404308 133.27656,11.771496 134.87032,11.771484 C 135.4953,11.771496 136.03827,11.900402 136.49922,12.158203 C 136.96015,12.416027 137.33905,12.798839 137.63594,13.306641 L 138.25703,12.158203 L 140.34297,12.158203 L 138.62032,19.166016 C 138.59686,19.251958 138.57733,19.341801 138.56172,19.435547 C 138.54608,19.521488 138.53827,19.591801 138.53828,19.646484 C 138.53827,19.919926 138.63202,20.126957 138.81953,20.267578 C 139.00702,20.400394 139.28436,20.4668 139.65157,20.466797 C 139.95624,20.4668 140.27264,20.388675 140.60078,20.232422 C 140.9367,20.076175 141.2492,19.857426 141.53828,19.576172 C 142.21014,18.951177 142.71795,18.220709 143.06172,17.384766 C 143.41326,16.548835 143.58904,15.630867 143.58907,14.630859 C 143.58904,12.75587 142.86248,11.216809 141.40938,10.013672 C 139.96405,8.8027492 138.09686,8.1972811 135.80782,8.1972656 C 134.70624,8.1972811 133.6789,8.3300934 132.72578,8.5957031 C 131.78046,8.8613429 130.92109,9.2558737 130.14766,9.7792969 C 128.81953,10.669935 127.79609,11.783215 127.07735,13.119141 C 126.36641,14.455087 126.01094,15.91993 126.01094,17.513672 C 126.01094,19.912113 126.81953,21.83008 128.43672,23.267578 C 130.0539,24.697265 132.21406,25.412108 134.91719,25.412109 C 136.1828,25.412108 137.41718,25.220702 138.62032,24.837891 C 139.83124,24.455077 140.95623,23.90039 141.99532,23.173828 L 142.95625,24.544922 C 141.76092,25.443358 140.49139,26.119138 139.14766,26.572266 C 137.81171,27.025387 136.41718,27.25195 134.96407,27.251953 C 133.46405,27.25195 132.08515,27.060543 130.82735,26.677734 C 129.56953,26.302732 128.45234,25.744139 127.47578,25.001953 C 126.26484,24.05664 125.35859,22.966798 124.75703,21.732422 C 124.15547,20.49805 123.85469,19.099614 123.85469,17.537109 C 123.85469,16.232429 124.05781,14.990243 124.46407,13.810547 C 124.87813,12.623058 125.48359,11.544934 126.28047,10.576172 C 127.43672,9.1621238 128.82734,8.0918124 130.45235,7.3652344 C 132.07734,6.6386889 133.88593,6.275408 135.87813,6.2753906 C 137.19843,6.275408 138.43671,6.4550953 139.59297,6.8144531 C 140.75702,7.1660321 141.76873,7.6660316 142.62813,8.3144531 C 143.68279,9.1347801 144.46795,10.072279 144.9836,11.126953 C 145.50701,12.17384 145.76873,13.357432 145.76875,14.677734 C 145.76873,15.966805 145.51092,17.15821 144.99532,18.251953 C 144.48748,19.337895 143.75311,20.267581 142.79219,21.041016 C 142.2453,21.478518 141.64764,21.814455 140.99922,22.048828 C 140.35858,22.275392 139.69061,22.388673 138.99532,22.388672 C 138.16718,22.388673 137.54218,22.224611 137.12032,21.896484 C 136.70624,21.568361 136.4914,21.083987 136.47578,20.443359 M 137.06172,15.427734 C 136.96015,14.794931 136.73358,14.314462 136.38203,13.986328 C 136.03827,13.650401 135.58124,13.482432 135.01094,13.482422 C 134.1203,13.482432 133.34687,13.966807 132.69063,14.935547 C 132.03437,15.904305 131.70624,17.068366 131.70625,18.427734 C 131.70624,19.146489 131.86249,19.693363 132.175,20.068359 C 132.49531,20.443363 132.95624,20.630862 133.55782,20.630859 C 134.20624,20.630862 134.79608,20.384769 135.32735,19.892578 C 135.8664,19.400395 136.23358,18.75977 136.42891,17.970703 L 137.06172,15.427734 M 128.56563,53.630859 C 128.58125,52.130861 128.90156,50.861331 129.52657,49.822266 C 130.15156,48.775395 131.26094,47.716803 132.85469,46.646484 C 133.09687,46.482429 133.44844,46.255867 133.90938,45.966797 C 136.01875,44.615243 137.07343,43.314463 137.07344,42.064453 C 137.07343,41.322278 136.85078,40.736341 136.40547,40.306641 C 135.96015,39.876967 135.35078,39.662123 134.57735,39.662109 C 133.73359,39.662123 133.08125,39.927748 132.62032,40.458984 C 132.16719,40.982435 131.94062,41.732434 131.94063,42.708984 L 131.94063,42.849609 L 128.84688,42.849609 C 128.84688,40.927747 129.3625,39.44728 130.39375,38.408203 C 131.425,37.369157 132.89375,36.849626 134.8,36.849609 C 136.52656,36.849626 137.90546,37.322282 138.93672,38.267578 C 139.96796,39.205093 140.48358,40.455091 140.4836,42.017578 C 140.48358,43.134776 140.21405,44.103525 139.675,44.923828 C 139.13593,45.744149 138.09296,46.677741 136.5461,47.724609 C 136.21796,47.951178 135.76484,48.248052 135.18672,48.615234 C 133.71797,49.560551 132.88984,50.2793 132.70235,50.771484 L 140.31953,50.771484 L 140.31953,53.630859 L 128.56563,53.630859"
+ id="text5127" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 195.28125,13.693359 L 194.25,16.552734 L 197.19141,16.552734 L 198.19922,13.693359 L 195.28125,13.693359 M 195.28125,6.4746094 L 197.87109,6.4746094 L 196.16016,11.337891 L 198.99609,11.337891 L 200.73047,6.4746094 L 203.32031,6.4746094 L 201.58594,11.337891 L 204.90234,11.337891 L 204.03516,13.693359 L 200.75391,13.693359 L 199.76953,16.529297 L 203.16797,16.529297 L 202.33594,18.873047 L 198.92578,18.873047 L 197.19141,23.748047 L 194.60156,23.748047 L 196.33594,18.873047 L 193.47656,18.873047 L 191.73047,23.748047 L 189.15234,23.748047 L 190.86328,18.873047 L 187.5,18.873047 L 188.39063,16.529297 L 191.69531,16.529297 L 192.70313,13.693359 L 189.19922,13.693359 L 190.06641,11.337891 L 193.54688,11.337891 L 195.28125,6.4746094 M 190.07813,48.521484 L 193.30078,48.521484 C 193.30859,49.458989 193.53515,50.166019 193.98047,50.642578 C 194.42578,51.111331 195.08593,51.345705 195.96094,51.345703 C 196.80468,51.345705 197.45312,51.126956 197.90625,50.689453 C 198.36718,50.244144 198.59765,49.607426 198.59766,48.779297 C 198.59765,47.951178 198.32812,47.326178 197.78906,46.904297 C 197.2578,46.474617 196.46484,46.259773 195.41016,46.259766 C 195.35546,46.259773 195.26953,46.263679 195.15234,46.271484 C 195.04296,46.279304 194.96093,46.28321 194.90625,46.283203 L 194.90625,43.962891 L 195.26953,43.962891 C 196.23827,43.9629 196.95312,43.7754 197.41406,43.400391 C 197.8828,43.017589 198.11718,42.435558 198.11719,41.654297 C 198.11718,41.005872 197.91796,40.494154 197.51953,40.119141 C 197.1289,39.736342 196.59374,39.544936 195.91406,39.544922 C 195.17187,39.544936 194.59765,39.763686 194.19141,40.201172 C 193.78515,40.638685 193.58203,41.259778 193.58203,42.064453 L 193.58203,42.205078 L 190.41797,42.205078 C 190.45703,40.486341 190.96094,39.169936 191.92969,38.255859 C 192.90625,37.334001 194.28125,36.873064 196.05469,36.873047 C 197.73437,36.873064 199.0664,37.283219 200.05078,38.103516 C 201.03514,38.923843 201.52733,40.02931 201.52734,41.419922 C 201.52733,42.154308 201.35936,42.798839 201.02344,43.353516 C 200.68749,43.908213 200.18358,44.365244 199.51172,44.724609 C 200.37108,45.099618 201.01952,45.619149 201.45703,46.283203 C 201.90233,46.93946 202.12499,47.724615 202.125,48.638672 C 202.12499,50.318363 201.57421,51.650393 200.47266,52.634766 C 199.37108,53.619141 197.86718,54.111328 195.96094,54.111328 C 194.07812,54.111328 192.625,53.634766 191.60156,52.681641 C 190.58594,51.720705 190.07812,50.357425 190.07813,48.591797 L 190.07813,48.521484"
+ id="text5139" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 254.46094,21.451172 C 255.10155,21.365237 255.58984,21.134768 255.92578,20.759766 C 256.26171,20.384769 256.42968,19.884769 256.42969,19.259766 C 256.42968,18.705083 256.26952,18.248052 255.94922,17.888672 C 255.63671,17.52149 255.14062,17.236335 254.46094,17.033203 L 254.46094,21.451172 M 253.06641,13.435547 L 253.06641,9.4511719 C 252.45703,9.529311 251.99218,9.7402483 251.67188,10.083984 C 251.35156,10.419935 251.1914,10.87306 251.19141,11.443359 C 251.1914,11.919934 251.33984,12.318371 251.63672,12.638672 C 251.9414,12.958995 252.41796,13.22462 253.06641,13.435547 M 253.06641,26.267578 L 253.06641,24.017578 C 251.30078,23.908203 249.98047,23.396485 249.10547,22.482422 C 248.23047,21.568361 247.79297,20.24805 247.79297,18.521484 L 250.93359,18.521484 C 250.97265,19.365239 251.16796,20.033207 251.51953,20.525391 C 251.8789,21.009768 252.39453,21.318362 253.06641,21.451172 L 253.06641,16.599609 C 251.2539,16.138679 249.96484,15.537117 249.19922,14.794922 C 248.43359,14.052744 248.05078,13.03712 248.05078,11.748047 C 248.05078,10.318373 248.5039,9.1660301 249.41016,8.2910156 C 250.32422,7.4160318 251.54296,6.959001 253.06641,6.9199219 L 253.06641,5.4199219 L 254.46094,5.4199219 L 254.46094,6.9199219 C 255.98437,6.9980635 257.17186,7.4590005 258.02344,8.3027344 C 258.87499,9.1386864 259.34374,10.318373 259.42969,11.841797 L 256.24219,11.841797 C 256.18749,11.115247 256.01171,10.56056 255.71484,10.177734 C 255.42577,9.7871232 255.0078,9.5683734 254.46094,9.5214844 L 254.46094,13.787109 C 256.39062,14.388681 257.74999,15.07618 258.53906,15.849609 C 259.32811,16.623054 259.72264,17.642584 259.72266,18.908203 C 259.72264,20.400394 259.26171,21.591799 258.33984,22.482422 C 257.42577,23.373047 256.1328,23.892578 254.46094,24.041016 L 254.46094,26.267578 L 253.06641,26.267578 M 254.64844,47.419922 L 254.64844,40.236328 L 250.08984,47.419922 L 254.64844,47.419922 M 254.57813,53.630859 L 254.57813,50.009766 L 247.5,50.009766 L 247.5,47.056641 L 253.6875,37.330078 L 257.84766,37.330078 L 257.84766,47.337891 L 259.79297,47.337891 L 259.79297,50.009766 L 257.84766,50.009766 L 257.84766,53.630859 L 254.57813,53.630859"
+ id="text5145" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 320.42578,19.740234 C 320.42577,20.263675 320.60155,20.705081 320.95313,21.064453 C 321.30467,21.416018 321.73827,21.591799 322.25391,21.591797 C 322.75389,21.591799 323.18358,21.412112 323.54297,21.052734 C 323.90233,20.68555 324.08201,20.24805 324.08203,19.740234 C 324.08201,19.240239 323.90233,18.814458 323.54297,18.462891 C 323.19139,18.103521 322.7617,17.923834 322.25391,17.923828 C 321.73827,17.923834 321.30467,18.099615 320.95313,18.451172 C 320.60155,18.794927 320.42577,19.224614 320.42578,19.740234 M 317.88281,19.740234 C 317.8828,18.521489 318.30468,17.494147 319.14844,16.658203 C 319.99217,15.822273 321.02733,15.404305 322.25391,15.404297 C 323.45701,15.404305 324.48045,15.830086 325.32422,16.681641 C 326.17576,17.525397 326.60154,18.544927 326.60156,19.740234 C 326.60154,20.943362 326.17576,21.974611 325.32422,22.833984 C 324.47264,23.685547 323.4492,24.111328 322.25391,24.111328 C 321.02733,24.111328 319.99217,23.689453 319.14844,22.845703 C 318.30468,22.001955 317.8828,20.9668 317.88281,19.740234 M 311.07422,24.111328 L 321.08203,6.8496094 L 322.96875,6.8496094 L 312.96094,24.111328 L 311.07422,24.111328 M 310.04297,11.220703 C 310.04297,11.73634 310.21484,12.169933 310.55859,12.521484 C 310.91015,12.873058 311.34375,13.048839 311.85938,13.048828 C 312.36718,13.048839 312.79687,12.873058 313.14844,12.521484 C 313.50781,12.162121 313.68749,11.728528 313.6875,11.220703 C 313.68749,10.720716 313.50781,10.294935 313.14844,9.9433594 C 312.79687,9.5839984 312.36718,9.4043111 311.85938,9.4042969 C 311.34375,9.4043111 310.91015,9.5800922 310.55859,9.9316406 C 310.21484,10.275404 310.04297,10.705091 310.04297,11.220703 M 307.5,11.220703 C 307.5,10.001967 307.92187,8.9707178 308.76563,8.1269531 C 309.60937,7.275407 310.64062,6.8496262 311.85938,6.8496094 C 313.06249,6.8496262 314.08593,7.2793132 314.92969,8.1386719 C 315.78124,8.990249 316.20702,10.017592 316.20703,11.220703 C 316.20702,12.423839 315.78124,13.451182 314.92969,14.302734 C 314.08593,15.146493 313.06249,15.568367 311.85938,15.568359 C 310.63281,15.568367 309.59765,15.150399 308.75391,14.314453 C 307.91797,13.478526 307.5,12.447277 307.5,11.220703 M 310.85156,49.119141 L 314.13281,49.119141 C 314.1875,49.853519 314.43359,50.423831 314.87109,50.830078 C 315.30859,51.228518 315.89453,51.427737 316.62891,51.427734 C 317.53515,51.427737 318.22655,51.162112 318.70313,50.630859 C 319.18749,50.099613 319.42968,49.337895 319.42969,48.345703 C 319.42968,47.416022 319.18358,46.685554 318.69141,46.154297 C 318.19921,45.615242 317.51952,45.345711 316.65234,45.345703 C 316.16796,45.345711 315.74218,45.443368 315.375,45.638672 C 315.00781,45.833992 314.69531,46.123054 314.4375,46.505859 L 311.41406,46.330078 L 312.50391,37.330078 L 322.14844,37.330078 L 322.14844,40.166016 L 314.87109,40.166016 L 314.4375,43.529297 C 314.80468,43.240245 315.22656,43.025401 315.70313,42.884766 C 316.17968,42.736339 316.71093,42.66212 317.29688,42.662109 C 318.96874,42.66212 320.3164,43.169932 321.33984,44.185547 C 322.37108,45.20118 322.88671,46.53321 322.88672,48.181641 C 322.88671,49.986332 322.3203,51.427737 321.1875,52.505859 C 320.05468,53.576172 318.53515,54.111328 316.62891,54.111328 C 314.89453,54.111328 313.51172,53.669922 312.48047,52.787109 C 311.45703,51.896486 310.91406,50.673831 310.85156,49.119141"
+ id="text5151" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 373.13672,6.5214844 L 376.08984,6.5214844 L 381.72656,13.095703 L 378.97266,13.095703 L 374.625,8.7480469 L 370.25391,13.095703 L 367.5,13.095703 L 373.13672,6.5214844 M 372.15234,48.298828 C 372.15234,49.25977 372.39062,50.021488 372.86719,50.583984 C 373.35156,51.146487 374.00781,51.427737 374.83594,51.427734 C 375.60937,51.427737 376.21484,51.154299 376.65234,50.607422 C 377.08983,50.06055 377.30858,49.298832 377.30859,48.322266 C 377.30858,47.423834 377.08202,46.724616 376.62891,46.224609 C 376.17577,45.724617 375.53905,45.474618 374.71875,45.474609 C 373.91406,45.474618 373.28515,45.724617 372.83203,46.224609 C 372.3789,46.724616 372.15234,47.416022 372.15234,48.298828 M 372.10547,43.916016 C 372.48828,43.525401 372.94921,43.232432 373.48828,43.037109 C 374.02734,42.833995 374.6289,42.732433 375.29297,42.732422 C 376.93358,42.732433 378.24608,43.232432 379.23047,44.232422 C 380.22264,45.23243 380.71874,46.56446 380.71875,48.228516 C 380.71874,49.994144 380.17968,51.419924 379.10156,52.505859 C 378.02343,53.591797 376.60155,54.134765 374.83594,54.134766 C 372.79687,54.134765 371.24609,53.431641 370.18359,52.025391 C 369.1289,50.619144 368.60156,48.560552 368.60156,45.849609 C 368.60156,42.935558 369.16797,40.708997 370.30078,39.169922 C 371.43359,37.623063 373.0664,36.849626 375.19922,36.849609 C 376.68358,36.849626 377.8789,37.236345 378.78516,38.009766 C 379.69921,38.783218 380.19921,39.830092 380.28516,41.150391 L 376.88672,41.150391 C 376.80858,40.611341 376.59765,40.205092 376.25391,39.931641 C 375.91015,39.658217 375.42968,39.521498 374.8125,39.521484 C 373.96874,39.521498 373.32031,39.888686 372.86719,40.623047 C 372.41406,41.349622 372.16015,42.447277 372.10547,43.916016"
+ id="text5157" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 432.85547,16.095703 L 431.96484,16.740234 C 431.60546,16.990241 431.33593,17.291022 431.15625,17.642578 C 430.97656,17.994146 430.88671,18.388677 430.88672,18.826172 C 430.88671,19.490239 431.11328,20.048832 431.56641,20.501953 C 432.01953,20.955081 432.58593,21.181643 433.26563,21.181641 C 433.76562,21.181643 434.24218,21.080081 434.69531,20.876953 C 435.15624,20.666019 435.58202,20.361331 435.97266,19.962891 L 432.85547,16.095703 M 433.79297,12.404297 L 434.20313,12.111328 C 434.57812,11.853527 434.85546,11.564465 435.03516,11.244141 C 435.21483,10.923841 435.30468,10.556654 435.30469,10.142578 C 435.30468,9.7441545 435.17968,9.4277486 434.92969,9.1933594 C 434.68749,8.958999 434.35546,8.8418117 433.93359,8.8417969 C 433.5039,8.8418117 433.16406,8.9629053 432.91406,9.2050781 C 432.66406,9.4394673 432.53906,9.7597795 432.53906,10.166016 C 432.53906,10.384779 432.59765,10.62306 432.71484,10.880859 C 432.83984,11.138684 433.01562,11.412122 433.24219,11.701172 L 433.79297,12.404297 M 431.15625,13.962891 L 430.47656,13.072266 C 430.125,12.603527 429.87109,12.166027 429.71484,11.759766 C 429.5664,11.345715 429.49218,10.912122 429.49219,10.458984 C 429.49218,9.2089988 429.89062,8.2168123 430.6875,7.4824219 C 431.49218,6.7402513 432.58203,6.3691579 433.95703,6.3691406 C 435.27733,6.3691579 436.3203,6.7090013 437.08594,7.3886719 C 437.85155,8.0683749 438.23436,8.9863428 438.23438,10.142578 C 438.23436,11.017591 438.0078,11.802746 437.55469,12.498047 C 437.10936,13.185557 436.40624,13.833994 435.44531,14.443359 L 437.91797,17.490234 C 438.15233,17.107428 438.33593,16.677741 438.46875,16.201172 C 438.60936,15.724617 438.70702,15.193368 438.76172,14.607422 L 441.80859,14.607422 C 441.72264,15.623055 441.5117,16.56446 441.17578,17.431641 C 440.83983,18.298833 440.37889,19.091801 439.79297,19.810547 L 442.93359,23.630859 L 438.94922,23.630859 L 437.77734,22.189453 C 437.08983,22.822266 436.33202,23.302735 435.50391,23.630859 C 434.68359,23.951172 433.82421,24.111328 432.92578,24.111328 C 431.33203,24.111328 430.02734,23.638672 429.01172,22.693359 C 428.0039,21.748049 427.5,20.541019 427.5,19.072266 C 427.5,17.978521 427.78125,17.037116 428.34375,16.248047 C 428.90625,15.458993 429.84375,14.697275 431.15625,13.962891 M 434.66016,53.630859 L 431.15625,53.630859 C 431.28125,51.341799 431.83203,49.07227 432.80859,46.822266 C 433.79296,44.572275 435.19531,42.361339 437.01563,40.189453 L 428.76563,40.189453 L 428.76563,37.330078 L 440.66016,37.330078 L 440.66016,39.849609 C 438.8164,41.880871 437.39843,44.029306 436.40625,46.294922 C 435.42187,48.560552 434.83984,51.005862 434.66016,53.630859"
+ id="text5163" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 493.5,13.212891 L 491.4375,16.119141 L 489.44531,14.724609 L 491.69531,11.900391 L 488.41406,10.986328 L 489.17578,8.6074219 L 492.32813,9.7324219 L 492.32813,6.3691406 L 494.64844,6.3691406 L 494.64844,9.7324219 L 497.80078,8.6308594 L 498.58594,11.009766 L 495.30469,11.900391 L 497.53125,14.701172 L 495.49219,16.166016 L 493.5,13.212891 M 490.875,48.755859 C 490.875,49.576176 491.10156,50.208988 491.55469,50.654297 C 492.01562,51.099612 492.67187,51.322268 493.52344,51.322266 C 494.33593,51.322268 494.97265,51.095706 495.43359,50.642578 C 495.90233,50.189457 496.13671,49.560551 496.13672,48.755859 C 496.13671,47.982428 495.89843,47.361334 495.42188,46.892578 C 494.9453,46.423835 494.31249,46.189461 493.52344,46.189453 C 492.73437,46.189461 492.09374,46.427742 491.60156,46.904297 C 491.11718,47.380866 490.875,47.998053 490.875,48.755859 M 491.14453,41.560547 C 491.14453,42.208996 491.34765,42.708995 491.75391,43.060547 C 492.16015,43.404307 492.74218,43.576182 493.5,43.576172 C 494.2578,43.576182 494.83984,43.400401 495.24609,43.048828 C 495.66015,42.697277 495.86718,42.201183 495.86719,41.560547 C 495.86718,40.93556 495.65624,40.443373 495.23438,40.083984 C 494.81249,39.724623 494.23437,39.544936 493.5,39.544922 C 492.78124,39.544936 492.20703,39.72853 491.77734,40.095703 C 491.35546,40.462904 491.14453,40.951185 491.14453,41.560547 M 489.9375,44.818359 C 489.23437,44.427744 488.72656,43.970713 488.41406,43.447266 C 488.10156,42.923839 487.94531,42.255871 487.94531,41.443359 C 487.94531,40.005873 488.4375,38.876968 489.42188,38.056641 C 490.40625,37.236345 491.76562,36.826189 493.5,36.826172 C 495.24999,36.826189 496.61718,37.236345 497.60156,38.056641 C 498.59374,38.869155 499.08983,39.998061 499.08984,41.443359 C 499.08983,42.216808 498.92186,42.888683 498.58594,43.458984 C 498.24999,44.021494 497.74608,44.474619 497.07422,44.818359 C 497.89452,45.20118 498.51171,45.73243 498.92578,46.412109 C 499.33983,47.083991 499.54686,47.904303 499.54688,48.873047 C 499.54686,50.505862 499.0078,51.787111 497.92969,52.716797 C 496.85936,53.646484 495.3828,54.111328 493.5,54.111328 C 491.59375,54.111328 490.11328,53.650391 489.05859,52.728516 C 488.0039,51.806642 487.47656,50.521487 487.47656,48.873047 C 487.47656,47.912115 487.67187,47.107428 488.0625,46.458984 C 488.46094,45.802742 489.08594,45.255868 489.9375,44.818359"
+ id="text5169" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 557.85938,6.3691406 C 556.78124,8.1347811 555.98046,9.9316543 555.45703,11.759766 C 554.93359,13.587901 554.67187,15.505868 554.67188,17.513672 C 554.67187,19.513676 554.93359,21.427737 555.45703,23.255859 C 555.98046,25.083983 556.78124,26.880856 557.85938,28.646484 L 555.38672,28.646484 C 554.01953,26.779294 552.98046,24.904296 552.26953,23.021484 C 551.5664,21.130862 551.21484,19.294926 551.21484,17.513672 C 551.21484,15.73243 551.5664,13.896494 552.26953,12.005859 C 552.98046,10.115248 554.01953,8.2363435 555.38672,6.3691406 L 557.85938,6.3691406 M 556.06641,42.685547 C 556.0664,41.724621 555.82421,40.96681 555.33984,40.412109 C 554.86327,39.849623 554.21093,39.568373 553.38281,39.568359 C 552.60156,39.568373 551.99218,39.837904 551.55469,40.376953 C 551.125,40.916028 550.91015,41.669934 550.91016,42.638672 C 550.91015,43.544932 551.13671,44.251963 551.58984,44.759766 C 552.04296,45.267586 552.67968,45.521492 553.5,45.521484 C 554.30468,45.521492 554.93359,45.271493 555.38672,44.771484 C 555.83983,44.271494 556.0664,43.576182 556.06641,42.685547 M 556.125,47.056641 C 555.73437,47.447272 555.27343,47.74024 554.74219,47.935547 C 554.21093,48.130865 553.61327,48.228521 552.94922,48.228516 C 551.30078,48.228521 549.98047,47.732428 548.98828,46.740234 C 547.99609,45.748055 547.5,44.419931 547.5,42.755859 C 547.5,40.990247 548.03906,39.564467 549.11719,38.478516 C 550.19531,37.392594 551.61718,36.849626 553.38281,36.849609 C 555.42968,36.849626 556.98436,37.556657 558.04688,38.970703 C 559.11718,40.376966 559.65233,42.431652 559.65234,45.134766 C 559.65233,48.041021 559.08202,50.267581 557.94141,51.814453 C 556.80077,53.361328 555.16015,54.134765 553.01953,54.134766 C 551.54296,54.134765 550.35156,53.751953 549.44531,52.986328 C 548.53906,52.212892 548.04297,51.162112 547.95703,49.833984 L 551.34375,49.845703 C 551.42187,50.384769 551.63281,50.787112 551.97656,51.052734 C 552.32031,51.318362 552.80468,51.451174 553.42969,51.451172 C 554.27343,51.451174 554.91796,51.083987 555.36328,50.349609 C 555.80858,49.615238 556.06249,48.517583 556.125,47.056641"
+ id="text5175" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 609.375,6.3691406 L 611.87109,6.3691406 C 613.23046,8.228531 614.26171,10.103529 614.96484,11.994141 C 615.66796,13.876963 616.01952,15.716805 616.01953,17.513672 C 616.01952,19.302739 615.66796,21.142581 614.96484,23.033203 C 614.26171,24.923827 613.23046,26.794919 611.87109,28.646484 L 609.375,28.646484 C 610.46094,26.873044 611.26562,25.072264 611.78906,23.244141 C 612.32031,21.408205 612.58593,19.498051 612.58594,17.513672 C 612.58593,15.521492 612.32031,13.611338 611.78906,11.783203 C 611.26562,9.9550918 610.46094,8.1504061 609.375,6.3691406 M 610.98047,45.474609 C 610.98046,47.513678 611.18359,48.994145 611.58984,49.916016 C 612.0039,50.837893 612.66015,51.29883 613.55859,51.298828 C 614.45702,51.29883 615.11327,50.833987 615.52734,49.904297 C 615.9414,48.974614 616.14843,47.498053 616.14844,45.474609 C 616.14843,43.44337 615.9414,41.966809 615.52734,41.044922 C 615.11327,40.12306 614.45702,39.662123 613.55859,39.662109 C 612.66015,39.662123 612.0039,40.12306 611.58984,41.044922 C 611.18359,41.958996 610.98046,43.435557 610.98047,45.474609 M 607.5,45.474609 C 607.5,42.591808 608,40.43556 609,39.005859 C 610.00781,37.568375 611.52734,36.849626 613.55859,36.849609 C 615.58202,36.849626 617.09765,37.572282 618.10547,39.017578 C 619.12108,40.455091 619.62889,42.615245 619.62891,45.498047 C 619.62889,48.380865 619.12499,50.533206 618.11719,51.955078 C 617.11718,53.376953 615.59765,54.08789 613.55859,54.087891 C 611.52734,54.08789 610.00781,53.373047 609,51.943359 C 608,50.513675 607.5,48.357427 607.5,45.474609"
+ id="text5181" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 667.5,26.900391 L 679.5,26.900391 L 679.5,29.291016 L 667.5,29.291016 L 667.5,26.900391 M 670.20703,48.849609 L 670.20703,45.638672 L 676.79297,45.638672 L 676.79297,48.849609 L 670.20703,48.849609"
+ id="text5187" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 733.33594,9.3222656 L 735.70313,9.3222656 L 735.70313,15.298828 L 741.53906,15.298828 L 741.53906,17.630859 L 735.70313,17.630859 L 735.70313,23.630859 L 733.33594,23.630859 L 733.33594,17.630859 L 727.5,17.630859 L 727.5,15.298828 L 733.33594,15.298828 L 733.33594,9.3222656 M 727.5,47.818359 L 741.53906,47.818359 L 741.53906,50.150391 L 727.5,50.150391 L 727.5,47.818359 M 727.5,42.779297 L 741.53906,42.779297 L 741.53906,45.111328 L 727.5,45.111328 L 727.5,42.779297"
+ id="text5201" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 11.070313,95.601563 L 11.070313,86.148438 L 7.65625,86.148438 L 7.65625,84.09375 L 16.828125,84.09375 L 16.828125,86.148438 L 13.4375,86.148438 L 13.4375,95.601563 L 11.070313,95.601563 M 22.859375,94.546875 C 22.572911,94.989584 22.197911,95.328125 21.734375,95.5625 C 21.270829,95.791666 20.731767,95.90625 20.117188,95.90625 C 19.294269,95.90625 18.658853,95.671875 18.210938,95.203125 C 17.768228,94.734376 17.546874,94.06771 17.546875,93.203125 C 17.546874,92.401045 17.768228,91.789066 18.210938,91.367188 C 18.658853,90.945317 19.395831,90.656255 20.421875,90.5 C 20.656246,90.463547 20.963538,90.42188 21.34375,90.375 C 22.307286,90.250005 22.789057,89.97136 22.789063,89.539063 C 22.789057,89.195319 22.682286,88.950527 22.46875,88.804688 C 22.255203,88.653653 21.898433,88.578132 21.398438,88.578125 C 20.9401,88.578132 20.588538,88.669278 20.34375,88.851563 C 20.098955,89.033861 19.97656,89.294277 19.976563,89.632813 L 19.976563,89.757813 L 17.851563,89.757813 L 17.851563,89.601563 C 17.851562,88.731778 18.158853,88.049487 18.773438,87.554688 C 19.388018,87.054696 20.236976,86.804696 21.320313,86.804688 C 22.507807,86.804696 23.41666,87.010425 24.046875,87.421875 C 24.682284,87.833341 24.999992,88.427091 25,89.203125 L 25,94.03125 C 24.999992,94.385418 25.03645,94.651043 25.109375,94.828125 C 25.182283,95.000001 25.304679,95.130209 25.476563,95.21875 L 25.476563,95.601563 L 23.109375,95.601563 C 23.031244,95.455729 22.971348,95.294271 22.929688,95.117188 C 22.888015,94.940105 22.864577,94.750001 22.859375,94.546875 M 22.820313,91.421875 C 22.450515,91.593754 22.023432,91.731775 21.539063,91.835938 C 21.059892,91.940108 20.812496,91.994795 20.796875,92 C 20.39583,92.114587 20.11458,92.257816 19.953125,92.429688 C 19.796872,92.601566 19.718747,92.838544 19.71875,93.140625 C 19.718747,93.453127 19.82031,93.703127 20.023438,93.890625 C 20.226559,94.072918 20.499997,94.164064 20.84375,94.164063 C 21.458329,94.164064 21.940099,93.992189 22.289063,93.648438 C 22.643224,93.299481 22.820307,92.825524 22.820313,92.226563 L 22.820313,91.421875 M 27.039063,84.09375 L 29.25,84.09375 L 29.25,88.164063 C 29.531246,87.721362 29.882809,87.388029 30.304688,87.164063 C 30.731766,86.934905 31.216141,86.820321 31.757813,86.820313 C 32.783847,86.820321 33.622388,87.2448 34.273438,88.09375 C 34.92447,88.937507 35.249991,90.036464 35.25,91.390625 C 35.249991,92.734378 34.92447,93.820314 34.273438,94.648438 C 33.622388,95.476563 32.773431,95.890625 31.726563,95.890625 C 31.179682,95.890625 30.70312,95.776041 30.296875,95.546875 C 29.895829,95.317709 29.531246,94.953126 29.203125,94.453125 L 29.203125,95.601563 L 27.039063,95.601563 L 27.039063,84.09375 M 32.992188,91.296875 C 32.992181,90.51563 32.828118,89.903652 32.5,89.460938 C 32.171869,89.013027 31.721348,88.789069 31.148438,88.789063 C 30.544266,88.789069 30.075517,89.007819 29.742188,89.445313 C 29.414059,89.87761 29.249997,90.494797 29.25,91.296875 C 29.249997,92.161462 29.406247,92.817711 29.71875,93.265625 C 30.036454,93.713544 30.497391,93.937502 31.101563,93.9375 C 31.71614,93.937502 32.18489,93.713544 32.507813,93.265625 C 32.830722,92.812503 32.992181,92.156253 32.992188,91.296875"
+ id="text5427" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 789.76563,44.369141 L 792.57031,44.369141 C 793.23176,44.369143 793.71353,44.249351 794.01563,44.009766 C 794.3177,43.770185 794.46874,43.392581 794.46875,42.876953 C 794.46874,42.340499 794.3203,41.955083 794.02344,41.720703 C 793.72656,41.481125 793.23697,41.361333 792.55469,41.361328 L 789.76563,41.361328 L 789.76563,44.369141 M 789.76563,39.392578 L 792.46875,39.392578 C 793.05208,39.392585 793.47916,39.293627 793.75,39.095703 C 794.02083,38.892586 794.15624,38.574878 794.15625,38.142578 C 794.15624,37.720712 794.02343,37.416025 793.75781,37.228516 C 793.49739,37.035817 793.06249,36.939463 792.45313,36.939453 L 789.76563,36.939453 L 789.76563,39.392578 M 787.5,46.447266 L 787.5,34.939453 L 792.92188,34.939453 C 794.09895,34.939465 794.99478,35.189464 795.60938,35.689453 C 796.22916,36.184255 796.53905,36.905609 796.53906,37.853516 C 796.53905,38.436857 796.42447,38.923836 796.19531,39.314453 C 795.96614,39.705085 795.62239,40.007168 795.16406,40.220703 C 795.7578,40.460292 796.20051,40.806646 796.49219,41.259766 C 796.78905,41.707687 796.93749,42.267582 796.9375,42.939453 C 796.93749,44.059247 796.57291,44.92383 795.84375,45.533203 C 795.11457,46.142578 794.08072,46.447266 792.74219,46.447266 L 787.5,46.447266 M 803.45313,45.392578 C 803.16666,45.835287 802.79166,46.173828 802.32813,46.408203 C 801.86458,46.63737 801.32552,46.751953 800.71094,46.751953 C 799.88802,46.751953 799.2526,46.517578 798.80469,46.048828 C 798.36198,45.580079 798.14062,44.913413 798.14063,44.048828 C 798.14062,43.246748 798.36198,42.634769 798.80469,42.212891 C 799.2526,41.79102 799.98958,41.501958 801.01563,41.345703 C 801.25,41.30925 801.55729,41.267583 801.9375,41.220703 C 802.90104,41.095708 803.38281,40.817063 803.38281,40.384766 C 803.38281,40.041022 803.27604,39.796231 803.0625,39.650391 C 802.84895,39.499356 802.49218,39.423835 801.99219,39.423828 C 801.53385,39.423835 801.18229,39.514981 800.9375,39.697266 C 800.69271,39.879564 800.57031,40.13998 800.57031,40.478516 L 800.57031,40.603516 L 798.44531,40.603516 L 798.44531,40.447266 C 798.44531,39.577481 798.7526,38.89519 799.36719,38.400391 C 799.98177,37.900399 800.83073,37.650399 801.91406,37.650391 C 803.10156,37.650399 804.01041,37.856128 804.64063,38.267578 C 805.27603,38.679044 805.59374,39.272794 805.59375,40.048828 L 805.59375,44.876953 C 805.59374,45.231121 805.6302,45.496746 805.70313,45.673828 C 805.77603,45.845704 805.89843,45.975912 806.07031,46.064453 L 806.07031,46.447266 L 803.70313,46.447266 C 803.62499,46.301432 803.5651,46.139974 803.52344,45.962891 C 803.48176,45.785808 803.45833,45.595704 803.45313,45.392578 M 803.41406,42.267578 C 803.04427,42.439457 802.61718,42.577478 802.13281,42.681641 C 801.65364,42.785811 801.40625,42.840498 801.39063,42.845703 C 800.98958,42.96029 800.70833,43.103519 800.54688,43.275391 C 800.39062,43.447269 800.3125,43.684248 800.3125,43.986328 C 800.3125,44.29883 800.41406,44.54883 800.61719,44.736328 C 800.82031,44.918621 801.09375,45.009767 801.4375,45.009766 C 802.05208,45.009767 802.53385,44.837892 802.88281,44.494141 C 803.23697,44.145185 803.41406,43.671227 803.41406,43.072266 L 803.41406,42.267578 M 812.71875,43.244141 L 814.96094,43.244141 C 814.86718,44.322268 814.47395,45.173829 813.78125,45.798828 C 813.08854,46.423828 812.19791,46.736328 811.10938,46.736328 C 809.875,46.736328 808.90625,46.335287 808.20313,45.533203 C 807.50521,44.725913 807.15625,43.611331 807.15625,42.189453 C 807.15625,40.772792 807.51302,39.663418 808.22656,38.861328 C 808.94531,38.054045 809.93229,37.650399 811.1875,37.650391 C 812.28645,37.650399 813.16666,37.942066 813.82813,38.525391 C 814.49478,39.108731 814.86718,39.92123 814.94531,40.962891 L 812.6875,40.962891 C 812.62499,40.509772 812.46614,40.163418 812.21094,39.923828 C 811.95572,39.684252 811.61979,39.56446 811.20313,39.564453 C 810.64062,39.56446 810.21875,39.785814 809.9375,40.228516 C 809.66146,40.67123 809.52343,41.335292 809.52344,42.220703 C 809.52343,43.038415 809.66666,43.668623 809.95313,44.111328 C 810.24479,44.54883 810.66145,44.76758 811.20313,44.767578 C 811.62499,44.76758 811.96354,44.639976 812.21875,44.384766 C 812.47395,44.12956 812.64062,43.749352 812.71875,43.244141 M 816.44531,46.447266 L 816.44531,34.939453 L 818.65625,34.939453 L 818.65625,40.978516 L 821.35938,37.955078 L 824.09375,37.955078 L 821.13281,41.103516 L 824.27344,46.447266 L 821.54688,46.447266 L 819.51563,42.830078 L 818.65625,43.759766 L 818.65625,46.447266 L 816.44531,46.447266 M 824.79688,43.681641 L 827.0625,43.681641 C 827.08333,44.113935 827.23958,44.436851 827.53125,44.650391 C 827.82291,44.858726 828.26041,44.962892 828.84375,44.962891 C 829.28645,44.962892 829.6276,44.889976 829.86719,44.744141 C 830.11197,44.593101 830.23437,44.382164 830.23438,44.111328 C 830.23437,43.725914 829.78124,43.436852 828.875,43.244141 C 828.5052,43.166019 828.21093,43.098311 827.99219,43.041016 C 826.88802,42.759769 826.11979,42.426436 825.6875,42.041016 C 825.26042,41.655604 825.04687,41.134771 825.04688,40.478516 C 825.04687,39.608731 825.35937,38.921231 825.98438,38.416016 C 826.61458,37.905608 827.46614,37.650399 828.53906,37.650391 C 829.67447,37.650399 830.5651,37.903003 831.21094,38.408203 C 831.86197,38.913419 832.20833,39.624356 832.25,40.541016 L 830.03906,40.541016 C 830.02343,40.181647 829.88541,39.903001 829.625,39.705078 C 829.36979,39.507168 829.01302,39.40821 828.55469,39.408203 C 828.12239,39.40821 827.79948,39.473314 827.58594,39.603516 C 827.3776,39.733731 827.27343,39.929043 827.27344,40.189453 C 827.27343,40.528001 827.83854,40.82748 828.96875,41.087891 C 829.22916,41.145188 829.43489,41.192063 829.58594,41.228516 C 830.71614,41.494146 831.48697,41.814458 831.89844,42.189453 C 832.3151,42.564457 832.52343,43.093102 832.52344,43.775391 C 832.52343,44.738934 832.18228,45.473308 831.5,45.978516 C 830.82291,46.483724 829.83593,46.736328 828.53906,46.736328 C 827.36718,46.736328 826.45052,46.473307 825.78906,45.947266 C 825.1276,45.421225 824.79687,44.697267 824.79688,43.775391 L 824.79688,43.681641 M 840.02344,42.251953 C 840.02343,41.397792 839.86197,40.74675 839.53906,40.298828 C 839.21614,39.84571 838.74739,39.619147 838.13281,39.619141 C 837.52864,39.619147 837.0677,39.843106 836.75,40.291016 C 836.4375,40.738938 836.28125,41.392583 836.28125,42.251953 C 836.28125,43.05404 836.44531,43.673831 836.77344,44.111328 C 837.10677,44.54883 837.57552,44.76758 838.17969,44.767578 C 838.7526,44.76758 839.20312,44.543622 839.53125,44.095703 C 839.85937,43.647789 840.02343,43.033207 840.02344,42.251953 M 834.07031,49.853516 L 834.07031,37.955078 L 836.23438,37.955078 L 836.23438,39.103516 C 836.5625,38.603523 836.92708,38.23894 837.32813,38.009766 C 837.73437,37.780608 838.21093,37.666024 838.75781,37.666016 C 839.80468,37.666024 840.65364,38.080086 841.30469,38.908203 C 841.95572,39.731127 842.28124,40.814459 842.28125,42.158203 C 842.28124,43.517581 841.95572,44.621747 841.30469,45.470703 C 840.65364,46.314453 839.8151,46.736328 838.78906,46.736328 C 838.24739,46.736328 837.76302,46.621745 837.33594,46.392578 C 836.91406,46.163412 836.5625,45.830079 836.28125,45.392578 L 836.28125,49.853516 L 834.07031,49.853516 M 848.70313,45.392578 C 848.41666,45.835287 848.04166,46.173828 847.57813,46.408203 C 847.11458,46.63737 846.57552,46.751953 845.96094,46.751953 C 845.13802,46.751953 844.5026,46.517578 844.05469,46.048828 C 843.61198,45.580079 843.39062,44.913413 843.39063,44.048828 C 843.39062,43.246748 843.61198,42.634769 844.05469,42.212891 C 844.5026,41.79102 845.23958,41.501958 846.26563,41.345703 C 846.5,41.30925 846.80729,41.267583 847.1875,41.220703 C 848.15104,41.095708 848.63281,40.817063 848.63281,40.384766 C 848.63281,40.041022 848.52604,39.796231 848.3125,39.650391 C 848.09895,39.499356 847.74218,39.423835 847.24219,39.423828 C 846.78385,39.423835 846.43229,39.514981 846.1875,39.697266 C 845.94271,39.879564 845.82031,40.13998 845.82031,40.478516 L 845.82031,40.603516 L 843.69531,40.603516 L 843.69531,40.447266 C 843.69531,39.577481 844.0026,38.89519 844.61719,38.400391 C 845.23177,37.900399 846.08073,37.650399 847.16406,37.650391 C 848.35156,37.650399 849.26041,37.856128 849.89063,38.267578 C 850.52603,38.679044 850.84374,39.272794 850.84375,40.048828 L 850.84375,44.876953 C 850.84374,45.231121 850.8802,45.496746 850.95313,45.673828 C 851.02603,45.845704 851.14843,45.975912 851.32031,46.064453 L 851.32031,46.447266 L 848.95313,46.447266 C 848.87499,46.301432 848.8151,46.139974 848.77344,45.962891 C 848.73176,45.785808 848.70833,45.595704 848.70313,45.392578 M 848.66406,42.267578 C 848.29427,42.439457 847.86718,42.577478 847.38281,42.681641 C 846.90364,42.785811 846.65625,42.840498 846.64063,42.845703 C 846.23958,42.96029 845.95833,43.103519 845.79688,43.275391 C 845.64062,43.447269 845.5625,43.684248 845.5625,43.986328 C 845.5625,44.29883 845.66406,44.54883 845.86719,44.736328 C 846.07031,44.918621 846.34375,45.009767 846.6875,45.009766 C 847.30208,45.009767 847.78385,44.837892 848.13281,44.494141 C 848.48697,44.145185 848.66406,43.671227 848.66406,43.072266 L 848.66406,42.267578 M 857.96875,43.244141 L 860.21094,43.244141 C 860.11718,44.322268 859.72395,45.173829 859.03125,45.798828 C 858.33854,46.423828 857.44791,46.736328 856.35938,46.736328 C 855.125,46.736328 854.15625,46.335287 853.45313,45.533203 C 852.75521,44.725913 852.40625,43.611331 852.40625,42.189453 C 852.40625,40.772792 852.76302,39.663418 853.47656,38.861328 C 854.19531,38.054045 855.18229,37.650399 856.4375,37.650391 C 857.53645,37.650399 858.41666,37.942066 859.07813,38.525391 C 859.74478,39.108731 860.11718,39.92123 860.19531,40.962891 L 857.9375,40.962891 C 857.87499,40.509772 857.71614,40.163418 857.46094,39.923828 C 857.20572,39.684252 856.86979,39.56446 856.45313,39.564453 C 855.89062,39.56446 855.46875,39.785814 855.1875,40.228516 C 854.91146,40.67123 854.77343,41.335292 854.77344,42.220703 C 854.77343,43.038415 854.91666,43.668623 855.20313,44.111328 C 855.49479,44.54883 855.91145,44.76758 856.45313,44.767578 C 856.87499,44.76758 857.21354,44.639976 857.46875,44.384766 C 857.72395,44.12956 857.89062,43.749352 857.96875,43.244141 M 866.88281,43.869141 L 869.14844,43.869141 C 868.91926,44.764976 868.45572,45.4681 867.75781,45.978516 C 867.0651,46.483724 866.21874,46.736328 865.21875,46.736328 C 863.98958,46.736328 863.01562,46.32487 862.29688,45.501953 C 861.57812,44.67383 861.21875,43.554039 861.21875,42.142578 C 861.21875,40.751959 861.57292,39.655606 862.28125,38.853516 C 862.98958,38.051441 863.95833,37.650399 865.1875,37.650391 C 866.48958,37.650399 867.49478,38.046232 868.20313,38.837891 C 868.91145,39.624356 869.26562,40.74675 869.26563,42.205078 C 869.26562,42.366541 869.26301,42.488936 869.25781,42.572266 C 869.2578,42.650394 869.2526,42.725915 869.24219,42.798828 L 863.57031,42.798828 C 863.60156,43.465498 863.76302,43.968101 864.05469,44.306641 C 864.35156,44.645184 864.77604,44.814455 865.32813,44.814453 C 865.71874,44.814455 866.03906,44.738934 866.28906,44.587891 C 866.53906,44.431643 866.73697,44.19206 866.88281,43.869141 M 863.57031,41.306641 L 866.91406,41.306641 C 866.89322,40.73373 866.73958,40.298834 866.45313,40.001953 C 866.17187,39.699877 865.76562,39.548835 865.23438,39.548828 C 864.73958,39.548835 864.34895,39.699877 864.0625,40.001953 C 863.78125,40.304043 863.61718,40.738938 863.57031,41.306641"
+ id="text5207" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 840,17.646484 L 797.02608,17.646484"
+ id="path5439" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 802.5,25.146484 L 802.5,10.146484 L 787.5,17.646484 L 802.5,25.146484 z "
+ id="path5441" />
+ <g
+ id="g5459"
+ transform="translate(0,7.5)">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 82.50003,75 L 54.020182,75"
+ id="path5453" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ id="path5455" />
+ <path
+ id="path5457"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g5464"
+ transform="matrix(-1,9.581637e-17,-9.581637e-17,-1,127.5,172.5)">
+ <path
+ id="path5466"
+ d="M 82.50003,75 L 54.020182,75"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path5468"
+ d="M 60,82.5 L 60,67.5 L 45,75 L 60,82.5 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 45,67.5 C 45,82.5 45,82.5 45,82.5"
+ id="path5470" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 158.94141,83.630859 L 153.99609,66.369141 L 157.67578,66.369141 L 160.62891,78.544922 L 163.125,66.369141 L 166.91016,66.369141 L 169.40625,78.544922 L 172.35938,66.369141 L 176.00391,66.369141 L 171.07031,83.630859 L 167.68359,83.630859 L 165.01172,70.412109 L 162.32813,83.630859 L 158.94141,83.630859"
+ id="text5482" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 343.24219,83.630859 L 343.24219,69.451172 L 338.12109,69.451172 L 338.12109,66.369141 L 351.87891,66.369141 L 351.87891,69.451172 L 346.79297,69.451172 L 346.79297,83.630859 L 343.24219,83.630859"
+ id="text5504" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 407.06836,83.630859 L 403.51758,83.630859 L 403.51758,77.197266 L 397.24805,66.369141 L 401.5957,66.369141 L 405.28711,73.810547 L 408.69727,66.369141 L 412.75195,66.369141 L 407.06836,77.197266 L 407.06836,83.630859"
+ id="text5518" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 458.08594,66.105469 L 461.67188,66.105469 L 461.67188,76.933594 C 461.67187,78.269536 461.93749,79.246098 462.46875,79.863281 C 462.99999,80.472659 463.84374,80.777346 465,80.777344 C 466.17187,80.777346 467.02343,80.472659 467.55469,79.863281 C 468.09374,79.25391 468.36327,78.277349 468.36328,76.933594 L 468.36328,66.105469 L 471.91406,66.105469 L 471.91406,77.320313 C 471.91405,79.437504 471.3203,81.062502 470.13281,82.195313 C 468.95311,83.328125 467.24999,83.894531 465.02344,83.894531 C 462.78124,83.894531 461.0625,83.332031 459.86719,82.207031 C 458.67969,81.074221 458.08594,79.445316 458.08594,77.320313 L 458.08594,66.105469"
+ id="text5522" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 523.22461,83.630859 L 523.22461,66.369141 L 526.77539,66.369141 L 526.77539,83.630859 L 523.22461,83.630859"
+ id="text5526" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 580.18359,75 C 580.18359,76.898444 580.60546,78.375005 581.44922,79.429688 C 582.29296,80.476566 583.47265,81.000003 584.98828,81 C 586.51952,81.000003 587.71093,80.476566 588.5625,79.429688 C 589.41405,78.375005 589.83983,76.898444 589.83984,75 C 589.83983,73.101573 589.41405,71.628918 588.5625,70.582031 C 587.71093,69.527358 586.51952,69.000015 584.98828,69 C 583.47265,69.000015 582.29296,69.523452 581.44922,70.570313 C 580.60546,71.617199 580.18359,73.093761 580.18359,75 M 576.5625,75 C 576.5625,72.210949 577.32031,70.000014 578.83594,68.367188 C 580.35937,66.726579 582.41015,65.906268 584.98828,65.90625 C 587.56639,65.906268 589.61717,66.726579 591.14063,68.367188 C 592.67186,70.007826 593.43748,72.218761 593.4375,75 C 593.43748,77.781256 592.67186,79.992191 591.14063,81.632813 C 589.61717,83.273438 587.56639,84.09375 584.98828,84.09375 C 582.41015,84.09375 580.35937,83.273438 578.83594,81.632813 C 577.32031,79.992191 576.5625,77.781256 576.5625,75"
+ id="text5530" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 641.97656,74.361328 L 645.41016,74.361328 C 646.33983,74.361337 647.01561,74.166025 647.4375,73.775391 C 647.85936,73.376963 648.0703,72.740245 648.07031,71.865234 C 648.0703,71.044934 647.86327,70.423841 647.44922,70.001953 C 647.03515,69.580092 646.41796,69.369155 645.59766,69.369141 L 641.97656,69.369141 L 641.97656,74.361328 M 641.95313,77.490234 L 641.95313,83.630859 L 638.40234,83.630859 L 638.40234,66.369141 L 646.07813,66.369141 C 647.89061,66.369158 649.26171,66.841814 650.19141,67.787109 C 651.12889,68.724624 651.59764,70.103529 651.59766,71.923828 C 651.59764,73.705088 651.14061,75.080087 650.22656,76.048828 C 649.31249,77.009772 648.0078,77.490241 646.3125,77.490234 L 641.95313,77.490234"
+ id="text5534" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 709.24805,63.919922 L 709.24805,66.369141 C 709.17772,66.369155 709.08007,66.365249 708.95508,66.357422 C 708.83007,66.349624 708.74413,66.345718 708.69727,66.345703 C 707.90819,66.345718 707.37304,66.498062 707.0918,66.802734 C 706.81835,67.099624 706.68163,67.732435 706.68164,68.701172 L 706.68164,71.513672 C 706.68163,72.66993 706.50585,73.490242 706.1543,73.974609 C 705.80273,74.458991 705.16992,74.806647 704.25586,75.017578 C 705.16992,75.228522 705.80273,75.572271 706.1543,76.048828 C 706.50585,76.525395 706.68163,77.341801 706.68164,78.498047 L 706.68164,81.322266 C 706.68163,82.283202 706.81835,82.912108 707.0918,83.208984 C 707.36523,83.505857 707.90038,83.654294 708.69727,83.654297 C 708.74413,83.654294 708.83007,83.650388 708.95508,83.642578 C 709.08007,83.634763 709.17772,83.630857 709.24805,83.630859 L 709.24805,86.080078 C 709.13866,86.080073 708.98632,86.08398 708.79102,86.091797 C 708.59569,86.099605 708.45116,86.103511 708.35742,86.103516 C 707.57616,86.103511 706.92382,86.056636 706.40039,85.962891 C 705.87695,85.869136 705.43163,85.724605 705.06445,85.529297 C 704.61913,85.263668 704.30273,84.904293 704.11523,84.451172 C 703.93554,84.005857 703.8457,83.228514 703.8457,82.119141 L 703.8457,79.166016 C 703.8457,78.095706 703.64648,77.337895 703.24805,76.892578 C 702.84961,76.439458 702.17773,76.212896 701.23242,76.212891 C 701.18554,76.212896 701.10742,76.216802 700.99805,76.224609 C 700.88867,76.232427 700.80664,76.236333 700.75195,76.236328 L 700.75195,73.787109 C 700.80664,73.787117 700.88867,73.791023 700.99805,73.798828 C 701.10742,73.806648 701.18554,73.810554 701.23242,73.810547 C 702.16992,73.810554 702.83789,73.583992 703.23633,73.130859 C 703.64257,72.677743 703.8457,71.912119 703.8457,70.833984 L 703.8457,67.904297 C 703.8457,66.787124 703.93554,66.001968 704.11523,65.548828 C 704.30273,65.095719 704.61913,64.736345 705.06445,64.470703 C 705.43163,64.275408 705.87695,64.130876 706.40039,64.037109 C 706.92382,63.943377 707.57616,63.896502 708.35742,63.896484 C 708.45116,63.896502 708.59569,63.900408 708.79102,63.908203 C 708.98632,63.916033 709.13866,63.919939 709.24805,63.919922 M 703.0957,93.966797 L 709.01367,93.966797 L 709.01367,96.462891 L 706.25977,96.462891 L 706.25977,113.8418 L 709.01367,113.8418 L 709.01367,116.33789 L 703.0957,116.33789 L 703.0957,93.966797"
+ id="text5546" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 760.75195,63.908203 L 761.54883,63.908203 C 762.4082,63.90822 763.09961,63.955095 763.62305,64.048828 C 764.14648,64.142595 764.58398,64.291033 764.93555,64.494141 C 765.38085,64.744157 765.69335,65.103532 765.87305,65.572266 C 766.06054,66.033218 766.15429,66.806655 766.1543,67.892578 L 766.1543,70.845703 C 766.15429,71.916025 766.35351,72.677743 766.75195,73.130859 C 767.15038,73.57618 767.82226,73.798836 768.76758,73.798828 C 768.81444,73.798836 768.89257,73.794929 769.00195,73.787109 C 769.11132,73.779304 769.19335,73.775398 769.24805,73.775391 L 769.24805,76.224609 L 768.81445,76.224609 C 767.83788,76.224614 767.15038,76.443364 766.75195,76.880859 C 766.35351,77.318363 766.15429,78.076175 766.1543,79.154297 L 766.1543,82.107422 C 766.15429,83.224607 766.06054,84.009763 765.87305,84.462891 C 765.69335,84.916012 765.38085,85.267574 764.93555,85.517578 C 764.56835,85.712886 764.12304,85.857417 763.59961,85.951172 C 763.07617,86.044917 762.42382,86.091792 761.64258,86.091797 C 761.54883,86.091792 761.40429,86.087886 761.20898,86.080078 C 761.01367,86.072261 760.86133,86.068355 760.75195,86.068359 L 760.75195,83.619141 C 760.82226,83.619138 760.91992,83.623044 761.04492,83.630859 C 761.16992,83.638669 761.25586,83.642576 761.30273,83.642578 C 762.09179,83.642576 762.62304,83.490232 762.89648,83.185547 C 763.17773,82.88867 763.31836,82.263671 763.31836,81.310547 L 763.31836,78.509766 C 763.31836,77.337895 763.49414,76.513677 763.8457,76.037109 C 764.19726,75.55274 764.83007,75.20899 765.74414,75.005859 C 764.83007,74.794928 764.19726,74.447272 763.8457,73.962891 C 763.49414,73.478523 763.31836,72.658212 763.31836,71.501953 L 763.31836,68.666016 C 763.31836,67.712904 763.17773,67.087905 762.89648,66.791016 C 762.62304,66.486343 762.09179,66.333999 761.30273,66.333984 C 761.25586,66.333999 761.16992,66.337906 761.04492,66.345703 C 760.91992,66.35353 760.82226,66.357437 760.75195,66.357422 L 760.75195,63.908203 M 767.00977,93.955078 L 767.00977,116.32617 L 761.08008,116.32617 L 761.08008,113.83008 L 763.8457,113.83008 L 763.8457,96.451172 L 761.08008,96.451172 L 761.08008,93.955078 L 767.00977,93.955078"
+ id="text5554" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 823.79883,62.876953 L 826.21289,62.876953 L 826.21289,86.876953 L 823.79883,86.876953 L 823.79883,62.876953 M 827.10352,113.44336 L 821.29102,93.509766 L 822.87305,93.509766 L 828.70898,113.44336 L 827.10352,113.44336"
+ id="text5564" />
+ <g
+ id="g5770"
+ transform="translate(0,3.75)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5570"
+ y="139.30469"
+ x="52.152344"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="139.30469"
+ x="52.152344"
+ id="tspan5572"
+ sodipodi:role="line">Caps Lock</tspan></text>
+ <path
+ id="path5584"
+ d="M 26.25,142.5 L 15,157.5 L 22.5,157.5 L 22.5,165 L 30,165 L 30,157.5 L 37.5,157.5 L 26.25,142.5 z M 25.21875,146.71875 L 27.25,146.71875 L 30.375,155.34375 L 28.5,155.34375 L 27.90625,153.5625 L 24.5625,153.5625 L 24,155.34375 L 22.125,155.34375 L 25.21875,146.71875 z M 26.25,148.4375 L 25.03125,152.09375 L 27.4375,152.09375 L 26.25,148.4375 z "
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 119.9707,129.82617 L 117.58008,137.17383 L 122.37305,137.17383 L 119.9707,129.82617 M 117.9082,126.36914 L 122.00977,126.36914 L 128.23242,143.63086 L 124.50586,143.63086 L 123.33398,140.08008 L 116.64258,140.08008 L 115.50586,143.63086 L 111.76758,143.63086 L 117.9082,126.36914"
+ id="text5641" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 172.98047,138.29297 L 176.48438,138.29297 C 176.61718,139.23829 177.0039,139.94141 177.64453,140.40234 C 178.28515,140.85547 179.21093,141.08203 180.42188,141.08203 C 181.45312,141.08203 182.23046,140.89844 182.75391,140.53125 C 183.27733,140.16407 183.53905,139.6211 183.53906,138.90234 C 183.53905,137.85547 182.03515,136.98829 179.02734,136.30078 C 178.98827,136.29298 178.95312,136.28516 178.92188,136.27734 C 178.84374,136.26173 178.72265,136.23438 178.55859,136.19531 C 176.94921,135.84376 175.80078,135.44923 175.11328,135.01172 C 174.5039,134.6211 174.03906,134.09767 173.71875,133.44141 C 173.39844,132.77735 173.23828,131.99611 173.23828,131.09766 C 173.23828,129.41798 173.80859,128.13283 174.94922,127.24219 C 176.08984,126.34377 177.73828,125.89455 179.89453,125.89453 C 181.91015,125.89455 183.48436,126.37111 184.61719,127.32422 C 185.7578,128.27736 186.35936,129.62111 186.42188,131.35547 L 183.01172,131.35547 C 182.94921,130.51954 182.6289,129.88283 182.05078,129.44531 C 181.47265,129.00783 180.64843,128.78908 179.57813,128.78906 C 178.64843,128.78908 177.92968,128.97267 177.42188,129.33984 C 176.92187,129.69923 176.67187,130.21486 176.67188,130.88672 C 176.67187,131.80079 177.65234,132.48439 179.61328,132.9375 C 180.14452,133.06251 180.55859,133.16017 180.85547,133.23047 C 182.11327,133.55079 183.0039,133.80079 183.52734,133.98047 C 184.05858,134.16017 184.51952,134.35938 184.91016,134.57813 C 185.61327,134.96876 186.14061,135.48829 186.49219,136.13672 C 186.84374,136.77735 187.01952,137.54688 187.01953,138.44531 C 187.01952,140.24219 186.41405,141.63672 185.20313,142.62891 C 183.99218,143.61328 182.28515,144.10547 180.08203,144.10547 C 177.91015,144.10547 176.20703,143.60156 174.97266,142.59375 C 173.73828,141.58594 173.07422,140.15235 172.98047,138.29297"
+ id="text5645" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 236.16211,140.51367 L 239.00977,140.51367 C 240.65819,140.51367 241.8496,140.08399 242.58398,139.22461 C 243.32616,138.35743 243.69725,136.95508 243.69727,135.01758 C 243.69725,133.0879 243.3535,131.66993 242.66602,130.76367 C 241.9785,129.85744 240.90429,129.40431 239.44336,129.4043 L 236.16211,129.4043 L 236.16211,140.51367 M 232.68164,143.63086 L 232.68164,126.36914 L 239.44336,126.36914 C 242.09179,126.36916 244.06444,127.084 245.36133,128.51367 C 246.666,129.94337 247.31834,132.11134 247.31836,135.01758 C 247.31834,136.59571 247.07616,137.98633 246.5918,139.18945 C 246.11522,140.39258 245.41991,141.36133 244.50586,142.0957 C 243.81835,142.64258 243.0371,143.03711 242.16211,143.2793 C 241.2871,143.51367 240.06054,143.63086 238.48242,143.63086 L 232.68164,143.63086"
+ id="text5649" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 293.97656,143.63086 L 293.97656,126.36914 L 306.02344,126.36914 L 306.02344,129.36914 L 297.48047,129.36914 L 297.48047,133.2832 L 304.96875,133.2832 L 304.96875,136.2832 L 297.48047,136.2832 L 297.48047,143.63086 L 293.97656,143.63086"
+ id="text5653" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 365.17969,141.57422 C 364.53905,142.44141 363.80858,143.07813 362.98828,143.48438 C 362.17577,143.89062 361.21874,144.09375 360.11719,144.09375 C 357.70312,144.09375 355.74609,143.25781 354.24609,141.58594 C 352.7539,139.90625 352.00781,137.70313 352.00781,134.97656 C 352.00781,132.22657 352.7539,130.02736 354.24609,128.37891 C 355.73828,126.73049 357.72656,125.90627 360.21094,125.90625 C 362.37499,125.90627 364.14061,126.4258 365.50781,127.46484 C 366.87498,128.49611 367.68748,129.91798 367.94531,131.73047 L 364.32422,131.73047 C 364.10546,130.83204 363.65624,130.14845 362.97656,129.67969 C 362.30468,129.21095 361.42577,128.97658 360.33984,128.97656 C 358.89452,128.97658 357.75781,129.50783 356.92969,130.57031 C 356.10937,131.62501 355.69921,133.08595 355.69922,134.95313 C 355.69921,136.82813 356.1289,138.29688 356.98828,139.35938 C 357.84765,140.42188 359.02734,140.95313 360.52734,140.95313 C 361.65233,140.95313 362.59374,140.6211 363.35156,139.95703 C 364.10936,139.29297 364.57811,138.38282 364.75781,137.22656 L 360.84375,137.22656 L 360.84375,134.27344 L 367.99219,134.27344 L 367.99219,143.61328 L 365.61328,143.61328 L 365.17969,141.57422"
+ id="text5657" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 412.86328,143.63086 L 412.86328,126.36914 L 416.4375,126.36914 L 416.4375,132.80273 L 423.5625,132.80273 L 423.5625,126.36914 L 427.13672,126.36914 L 427.13672,143.63086 L 423.5625,143.63086 L 423.5625,135.97852 L 416.4375,135.97852 L 416.4375,143.63086 L 412.86328,143.63086"
+ id="text5661" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 143.15039,203.63086 L 143.15039,200.63086 L 152.53711,189.49805 L 143.33789,189.49805 L 143.33789,186.36914 L 156.84961,186.36914 L 156.84961,189.36914 L 147.43945,200.51367 L 156.63867,200.51367 L 156.63867,203.63086 L 143.15039,203.63086"
+ id="text5679" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 202.37109,203.63086 L 207.79688,194.81836 L 202.37109,186.36914 L 206.47266,186.36914 L 210,192.4043 L 213.50391,186.36914 L 217.62891,186.36914 L 212.20313,194.79492 L 217.62891,203.63086 L 213.52734,203.63086 L 210,197.6543 L 206.47266,203.63086 L 202.37109,203.63086"
+ id="text5683" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 277.875,197.68359 C 277.74217,199.64454 276.98436,201.20313 275.60156,202.35938 C 274.22655,203.51563 272.42968,204.09375 270.21094,204.09375 C 267.65624,204.09375 265.66796,203.29688 264.24609,201.70313 C 262.83203,200.10938 262.125,197.87501 262.125,195 C 262.125,192.06251 262.84765,189.81251 264.29297,188.25 C 265.73828,186.68752 267.8164,185.90627 270.52734,185.90625 C 272.73046,185.90627 274.46874,186.44533 275.74219,187.52344 C 277.02342,188.59377 277.72655,190.10939 277.85156,192.07031 L 274.34766,192.07031 C 274.19921,191.09376 273.80077,190.35158 273.15234,189.84375 C 272.50389,189.32814 271.6289,189.07033 270.52734,189.07031 C 268.96484,189.07033 267.77734,189.57423 266.96484,190.58203 C 266.15234,191.58986 265.74609,193.06251 265.74609,195 C 265.74609,196.87501 266.14843,198.32422 266.95313,199.34766 C 267.76562,200.3711 268.91796,200.88282 270.41016,200.88281 C 271.48827,200.88282 272.37108,200.60938 273.05859,200.0625 C 273.74608,199.50782 274.19139,198.71485 274.39453,197.68359 L 277.875,197.68359"
+ id="text5687" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 328.33594,203.63086 L 322.38281,186.36914 L 326.32031,186.36914 L 329.98828,199.2832 L 333.72656,186.36914 L 337.61719,186.36914 L 331.73438,203.63086 L 328.33594,203.63086"
+ id="text5691" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 386.32031,200.51367 L 390.52734,200.51367 C 391.51952,200.51367 392.24218,200.33399 392.69531,199.97461 C 393.14843,199.61524 393.37499,199.04883 393.375,198.27539 C 393.37499,197.47071 393.15233,196.89258 392.70703,196.54102 C 392.26171,196.18165 391.52733,196.00196 390.50391,196.00195 L 386.32031,196.00195 L 386.32031,200.51367 M 386.32031,193.04883 L 390.375,193.04883 C 391.24999,193.04884 391.89061,192.9004 392.29688,192.60352 C 392.70311,192.29884 392.90624,191.82228 392.90625,191.17383 C 392.90624,190.54103 392.70702,190.084 392.30859,189.80273 C 391.91796,189.51369 391.26561,189.36915 390.35156,189.36914 L 386.32031,189.36914 L 386.32031,193.04883 M 382.92188,203.63086 L 382.92188,186.36914 L 391.05469,186.36914 C 392.8203,186.36916 394.16405,186.74416 395.08594,187.49414 C 396.01561,188.23634 396.48045,189.31837 396.48047,190.74023 C 396.48045,191.61525 396.30858,192.34571 395.96484,192.93164 C 395.62108,193.51759 395.10545,193.97071 394.41797,194.29102 C 395.30858,194.6504 395.97264,195.16993 396.41016,195.84961 C 396.85545,196.52149 397.07811,197.36133 397.07813,198.36914 C 397.07811,200.04883 396.53123,201.34571 395.4375,202.25977 C 394.34374,203.17383 392.79296,203.63086 390.78516,203.63086 L 382.92188,203.63086"
+ id="text5695" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 442.88672,203.63086 L 442.88672,186.36914 L 446.60156,186.36914 L 453.60938,198.22852 L 453.60938,186.36914 L 457.11328,186.36914 L 457.11328,203.63086 L 453.44531,203.63086 L 446.39063,191.77148 L 446.39063,203.63086 L 442.88672,203.63086"
+ id="text5699" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 501.32813,203.63086 L 501.32813,186.36914 L 506.57813,186.36914 L 510.01172,199.50586 L 513.39844,186.36914 L 518.67188,186.36914 L 518.67188,203.63086 L 515.34375,203.63086 L 515.34375,189.70898 L 511.83984,203.63086 L 508.20703,203.63086 L 504.65625,189.70898 L 504.65625,203.63086 L 501.32813,203.63086"
+ id="text5703" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 720.78516,126.7793 L 723.03516,126.7793 L 723.03516,133.33008 L 720.78516,133.33008 L 720.78516,126.7793 M 716.96484,126.7793 L 719.21484,126.7793 L 719.21484,133.33008 L 716.96484,133.33008 L 716.96484,126.7793 M 718.88672,156.7793 L 721.13672,156.7793 L 721.13672,163.33008 L 718.88672,163.33008 L 718.88672,156.7793"
+ id="text5731" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 772.5,140.60938 L 772.5,129.10156 L 780.85156,129.10156 L 780.85156,131.10156 L 774.83594,131.10156 L 774.83594,133.55469 L 780.33594,133.55469 L 780.33594,135.52344 L 774.83594,135.52344 L 774.83594,138.48438 L 781.13281,138.48438 L 781.13281,140.60938 L 772.5,140.60938 M 782.74219,140.60938 L 782.74219,132.11719 L 784.96875,132.11719 L 784.96875,133.125 C 785.28645,132.71355 785.66145,132.40626 786.09375,132.20313 C 786.52604,131.9948 787.00781,131.89063 787.53906,131.89063 C 788.47656,131.89063 789.17708,132.13543 789.64063,132.625 C 790.10937,133.10938 790.34374,133.84115 790.34375,134.82031 L 790.34375,140.60938 L 788.07031,140.60938 L 788.07031,135.47656 C 788.07031,134.86719 787.96614,134.4323 787.75781,134.17188 C 787.55468,133.91147 787.22135,133.78126 786.75781,133.78125 C 786.22135,133.78126 785.79687,133.94271 785.48438,134.26563 C 785.17187,134.58334 785.01562,135.01823 785.01563,135.57031 L 785.01563,140.60938 L 782.74219,140.60938 M 796.07813,140.67188 C 795.86979,140.67708 795.61979,140.6849 795.32813,140.69531 C 795.04166,140.71094 794.85937,140.71875 794.78125,140.71875 C 793.91146,140.71875 793.3151,140.55729 792.99219,140.23438 C 792.67448,139.90625 792.51562,139.26302 792.51563,138.30469 L 792.51563,133.71094 L 791.39063,133.71094 L 791.39063,132.11719 L 792.51563,132.11719 L 792.51563,129.79688 L 794.76563,129.79688 L 794.76563,132.11719 L 796.07813,132.11719 L 796.07813,133.71094 L 794.76563,133.71094 L 794.76563,138.41406 C 794.76562,138.63802 794.8151,138.78646 794.91406,138.85938 C 795.01302,138.92709 795.21614,138.96094 795.52344,138.96094 L 796.07813,138.96094 L 796.07813,140.67188 M 802.63281,138.03125 L 804.89844,138.03125 C 804.66926,138.92709 804.20572,139.63021 803.50781,140.14063 C 802.8151,140.64583 801.96874,140.89844 800.96875,140.89844 C 799.73958,140.89844 798.76562,140.48698 798.04688,139.66406 C 797.32812,138.83594 796.96875,137.71615 796.96875,136.30469 C 796.96875,134.91407 797.32292,133.81772 798.03125,133.01563 C 798.73958,132.21355 799.70833,131.81251 800.9375,131.8125 C 802.23958,131.81251 803.24478,132.20834 803.95313,133 C 804.66145,133.78647 805.01562,134.90886 805.01563,136.36719 C 805.01562,136.52865 805.01301,136.65105 805.00781,136.73438 C 805.0078,136.8125 805.0026,136.88802 804.99219,136.96094 L 799.32031,136.96094 C 799.35156,137.62761 799.51302,138.13021 799.80469,138.46875 C 800.10156,138.80729 800.52604,138.97656 801.07813,138.97656 C 801.46874,138.97656 801.78906,138.90104 802.03906,138.75 C 802.28906,138.59375 802.48697,138.35417 802.63281,138.03125 M 799.32031,135.46875 L 802.66406,135.46875 C 802.64322,134.89584 802.48958,134.46094 802.20313,134.16406 C 801.92187,133.86199 801.51562,133.71094 800.98438,133.71094 C 800.48958,133.71094 800.09895,133.86199 799.8125,134.16406 C 799.53125,134.46615 799.36718,134.90105 799.32031,135.46875 M 806.52344,140.60938 L 806.52344,132.11719 L 808.63281,132.11719 L 808.63281,133.57031 C 808.92968,132.98699 809.27604,132.5599 809.67188,132.28906 C 810.0677,132.01303 810.53906,131.87501 811.08594,131.875 C 811.17447,131.87501 811.24218,131.87761 811.28906,131.88281 C 811.34114,131.88282 811.38281,131.88543 811.41406,131.89063 L 811.42188,134.19531 L 810.66406,134.19531 C 810.04427,134.19532 809.57812,134.35678 809.26563,134.67969 C 808.95312,135.00261 808.79687,135.48178 808.79688,136.11719 L 808.79688,140.60938 L 806.52344,140.60938"
+ id="text5737" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 787.5,172.5 L 787.5,157.5 L 772.5,165 L 787.5,172.5 z "
+ id="path5745" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ d="M 810,150 L 810,165 L 780,165"
+ id="path5747" />
+ <g
+ id="g5790">
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ x="31.8125"
+ y="201.19531"
+ id="text5753"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5755"
+ x="31.8125"
+ y="201.19531">Shift</tspan></text>
+ <path
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ id="path5757" />
+ </g>
+ <g
+ id="g5795"
+ transform="translate(727.5,0)">
+ <text
+ sodipodi:linespacing="125%"
+ id="text5797"
+ y="201.19531"
+ x="31.8125"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ xml:space="preserve"><tspan
+ y="201.19531"
+ x="31.8125"
+ id="tspan5799"
+ sodipodi:role="line">Shift</tspan></text>
+ <path
+ id="path5801"
+ d="M 27.25,207.125 L 16,222.125 L 23.5,222.125 L 23.5,229.625 L 31,229.625 L 31,222.125 L 38.5,222.125 L 27.25,207.125 z "
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 576.90234,189.63867 L 576.90234,192.20508 L 566.4375,196.48242 L 576.90234,200.74805 L 576.90234,203.31445 L 563.09766,197.63086 L 563.09766,195.29883 L 576.90234,189.63867 M 568.21875,237.68555 L 568.21875,236.31445 C 568.875,236.12695 569.35937,235.83789 569.67188,235.44727 C 569.98437,235.05664 570.14062,234.54883 570.14063,233.92383 L 570.14063,233.63086 L 568.21875,233.63086 L 568.21875,230.10352 L 571.76953,230.10352 L 571.76953,233.49023 C 571.76953,234.6543 571.46875,235.59179 570.86719,236.30273 C 570.27343,237.01367 569.39062,237.47461 568.21875,237.68555"
+ id="text5803" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 623.09766,189.63867 L 636.90234,195.29883 L 636.90234,197.63086 L 623.09766,203.31445 L 623.09766,200.74805 L 633.58594,196.48242 L 623.09766,192.20508 L 623.09766,189.63867 M 628.21875,233.63086 L 628.21875,230.10352 L 631.74609,230.10352 L 631.74609,233.63086 L 628.21875,233.63086"
+ id="text5813" />
+ <path
+ style="font-size:24px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 688.44727,198.61523 C 688.44726,198.5293 688.44335,198.41602 688.43555,198.27539 C 688.42773,198.12696 688.42382,198.01758 688.42383,197.94727 C 688.42382,197.25977 688.49804,196.68946 688.64648,196.23633 C 688.79492,195.7754 689.0332,195.34571 689.36133,194.94727 C 689.61132,194.6504 689.98242,194.31056 690.47461,193.92773 C 690.9746,193.54493 691.29882,193.26759 691.44727,193.0957 C 691.75976,192.74415 691.9746,192.42775 692.0918,192.14648 C 692.20898,191.86525 692.26757,191.55665 692.26758,191.2207 C 692.26757,190.47853 692.06054,189.9004 691.64648,189.48633 C 691.23241,189.07228 690.65429,188.86525 689.91211,188.86523 C 689.16992,188.86525 688.58398,189.11525 688.1543,189.61523 C 687.73242,190.10744 687.50195,190.80275 687.46289,191.70117 L 684.1582,191.70117 L 684.1582,191.33789 C 684.1582,189.68947 684.67773,188.37697 685.7168,187.40039 C 686.76367,186.41603 688.16992,185.92385 689.93555,185.92383 C 691.74023,185.92385 693.17382,186.38869 694.23633,187.31836 C 695.30663,188.24025 695.84178,189.47853 695.8418,191.0332 C 695.84178,191.58009 695.77928,192.07228 695.6543,192.50977 C 695.5371,192.93946 695.3535,193.33399 695.10352,193.69336 C 694.78319,194.14649 694.2871,194.63868 693.61523,195.16992 C 692.95116,195.69337 692.54882,196.01759 692.4082,196.14258 C 692.11132,196.43165 691.89648,196.73634 691.76367,197.05664 C 691.63866,197.37696 691.57616,197.75977 691.57617,198.20508 C 691.57616,198.24415 691.58007,198.31055 691.58789,198.4043 C 691.59569,198.49805 691.5996,198.56836 691.59961,198.61523 L 688.44727,198.61523 M 688.2832,203.63086 L 688.2832,200.19727 L 691.74023,200.19727 L 691.74023,203.63086 L 688.2832,203.63086 M 686.31445,235.85742 L 692.12695,215.92383 L 693.73242,215.92383 L 687.89648,235.85742 L 686.31445,235.85742"
+ id="text5819" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 18,271.78906 C 17.911447,273.09636 17.406239,274.13542 16.484375,274.90625 C 15.5677,275.67708 14.369784,276.0625 12.890625,276.0625 C 11.187496,276.0625 9.8619761,275.53125 8.9140625,274.46875 C 7.971353,273.40625 7.4999993,271.91667 7.5,270 C 7.4999993,268.04167 7.9817696,266.54168 8.9453125,265.5 C 9.9088511,264.45834 11.294266,263.93751 13.101563,263.9375 C 14.570305,263.93751 15.729158,264.29689 16.578125,265.01563 C 17.432281,265.72918 17.901031,266.73959 17.984375,268.04688 L 15.648438,268.04688 C 15.54947,267.39584 15.283846,266.90105 14.851563,266.5625 C 14.419263,266.21876 13.83593,266.04688 13.101563,266.04688 C 12.059891,266.04688 11.268225,266.38282 10.726563,267.05469 C 10.184892,267.72657 9.9140594,268.70834 9.9140625,270 C 9.9140594,271.25 10.182288,272.21615 10.71875,272.89844 C 11.260412,273.58073 12.028641,273.92188 13.023438,273.92188 C 13.742181,273.92188 14.330722,273.73959 14.789063,273.375 C 15.247387,273.00521 15.544262,272.47657 15.679688,271.78906 L 18,271.78906 M 23.46875,275.80469 C 23.260412,275.8099 23.010412,275.81771 22.71875,275.82813 C 22.432288,275.84375 22.249996,275.85156 22.171875,275.85156 C 21.302081,275.85156 20.705727,275.6901 20.382813,275.36719 C 20.065103,275.03906 19.906249,274.39583 19.90625,273.4375 L 19.90625,268.84375 L 18.78125,268.84375 L 18.78125,267.25 L 19.90625,267.25 L 19.90625,264.92969 L 22.15625,264.92969 L 22.15625,267.25 L 23.46875,267.25 L 23.46875,268.84375 L 22.15625,268.84375 L 22.15625,273.54688 C 22.156247,273.77084 22.205726,273.91927 22.304688,273.99219 C 22.403642,274.0599 22.606767,274.09375 22.914063,274.09375 L 23.46875,274.09375 L 23.46875,275.80469 M 24.789063,275.74219 L 24.789063,267.25 L 26.898438,267.25 L 26.898438,268.70313 C 27.195309,268.1198 27.541663,267.69272 27.9375,267.42188 C 28.333329,267.14584 28.804682,267.00782 29.351563,267.00781 C 29.440099,267.00782 29.507807,267.01043 29.554688,267.01563 C 29.606765,267.01563 29.648432,267.01824 29.679688,267.02344 L 29.6875,269.32813 L 28.929688,269.32813 C 28.309891,269.32813 27.843746,269.48959 27.53125,269.8125 C 27.218747,270.13542 27.062497,270.61459 27.0625,271.25 L 27.0625,275.74219 L 24.789063,275.74219 M 31.023438,275.74219 L 31.023438,264.23438 L 33.296875,264.23438 L 33.296875,275.74219 L 31.023438,275.74219"
+ id="text5827" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 612.96875,266.53906 L 611.375,271.4375 L 614.57031,271.4375 L 612.96875,266.53906 M 611.59375,264.23438 L 614.32813,264.23438 L 618.47656,275.74219 L 615.99219,275.74219 L 615.21094,273.375 L 610.75,273.375 L 609.99219,275.74219 L 607.5,275.74219 L 611.59375,264.23438 M 619.53906,275.74219 L 619.53906,264.23438 L 621.8125,264.23438 L 621.8125,275.74219 L 619.53906,275.74219 M 627.64063,275.80469 C 627.43229,275.8099 627.18229,275.81771 626.89063,275.82813 C 626.60416,275.84375 626.42187,275.85156 626.34375,275.85156 C 625.47396,275.85156 624.8776,275.6901 624.55469,275.36719 C 624.23698,275.03906 624.07812,274.39583 624.07813,273.4375 L 624.07813,268.84375 L 622.95313,268.84375 L 622.95313,267.25 L 624.07813,267.25 L 624.07813,264.92969 L 626.32813,264.92969 L 626.32813,267.25 L 627.64063,267.25 L 627.64063,268.84375 L 626.32813,268.84375 L 626.32813,273.54688 C 626.32812,273.77084 626.3776,273.91927 626.47656,273.99219 C 626.57552,274.0599 626.77864,274.09375 627.08594,274.09375 L 627.64063,274.09375 L 627.64063,275.80469"
+ id="text5835"
+ sodipodi:nodetypes="cccccccccccccccccccsssccccccccccccsccc" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 828,271.78906 C 827.91145,273.09636 827.40624,274.13542 826.48438,274.90625 C 825.5677,275.67708 824.36978,276.0625 822.89063,276.0625 C 821.1875,276.0625 819.86198,275.53125 818.91406,274.46875 C 817.97135,273.40625 817.5,271.91667 817.5,270 C 817.5,268.04167 817.98177,266.54168 818.94531,265.5 C 819.90885,264.45834 821.29427,263.93751 823.10156,263.9375 C 824.5703,263.93751 825.72916,264.29689 826.57813,265.01563 C 827.43228,265.72918 827.90103,266.73959 827.98438,268.04688 L 825.64844,268.04688 C 825.54947,267.39584 825.28385,266.90105 824.85156,266.5625 C 824.41926,266.21876 823.83593,266.04688 823.10156,266.04688 C 822.05989,266.04688 821.26822,266.38282 820.72656,267.05469 C 820.18489,267.72657 819.91406,268.70834 819.91406,270 C 819.91406,271.25 820.18229,272.21615 820.71875,272.89844 C 821.26041,273.58073 822.02864,273.92188 823.02344,273.92188 C 823.74218,273.92188 824.33072,273.73959 824.78906,273.375 C 825.24739,273.00521 825.54426,272.47657 825.67969,271.78906 L 828,271.78906 M 833.46875,275.80469 C 833.26041,275.8099 833.01041,275.81771 832.71875,275.82813 C 832.43229,275.84375 832.25,275.85156 832.17188,275.85156 C 831.30208,275.85156 830.70573,275.6901 830.38281,275.36719 C 830.0651,275.03906 829.90625,274.39583 829.90625,273.4375 L 829.90625,268.84375 L 828.78125,268.84375 L 828.78125,267.25 L 829.90625,267.25 L 829.90625,264.92969 L 832.15625,264.92969 L 832.15625,267.25 L 833.46875,267.25 L 833.46875,268.84375 L 832.15625,268.84375 L 832.15625,273.54688 C 832.15625,273.77084 832.20573,273.91927 832.30469,273.99219 C 832.40364,274.0599 832.60677,274.09375 832.91406,274.09375 L 833.46875,274.09375 L 833.46875,275.80469 M 834.78906,275.74219 L 834.78906,267.25 L 836.89844,267.25 L 836.89844,268.70313 C 837.19531,268.1198 837.54166,267.69272 837.9375,267.42188 C 838.33333,267.14584 838.80468,267.00782 839.35156,267.00781 C 839.4401,267.00782 839.50781,267.01043 839.55469,267.01563 C 839.60677,267.01563 839.64843,267.01824 839.67969,267.02344 L 839.6875,269.32813 L 838.92969,269.32813 C 838.30989,269.32813 837.84375,269.48959 837.53125,269.8125 C 837.21875,270.13542 837.0625,270.61459 837.0625,271.25 L 837.0625,275.74219 L 834.78906,275.74219 M 841.02344,275.74219 L 841.02344,264.23438 L 843.29688,264.23438 L 843.29688,275.74219 L 841.02344,275.74219"
+ id="text5839" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 108.94531,264.01953 L 105.64844,252.51172 L 108.10156,252.51172 L 110.07031,260.62891 L 111.73438,252.51172 L 114.25781,252.51172 L 115.92188,260.62891 L 117.89063,252.51172 L 120.32031,252.51172 L 117.03125,264.01953 L 114.77344,264.01953 L 112.99219,255.20703 L 111.20313,264.01953 L 108.94531,264.01953 M 121.5,254.58203 L 121.5,252.51172 L 123.77344,252.51172 L 123.77344,254.58203 L 121.5,254.58203 M 121.5,264.01953 L 121.5,255.52734 L 123.77344,255.52734 L 123.77344,264.01953 L 121.5,264.01953 M 125.79688,264.01953 L 125.79688,255.52734 L 128.02344,255.52734 L 128.02344,256.53516 C 128.34114,256.12371 128.71614,255.81641 129.14844,255.61328 C 129.58072,255.40496 130.06249,255.30079 130.59375,255.30078 C 131.53124,255.30079 132.23176,255.54558 132.69531,256.03516 C 133.16405,256.51954 133.39843,257.25131 133.39844,258.23047 L 133.39844,264.01953 L 131.125,264.01953 L 131.125,258.88672 C 131.12499,258.27735 131.02083,257.84245 130.8125,257.58203 C 130.60937,257.32162 130.27604,257.19141 129.8125,257.19141 C 129.27604,257.19141 128.85156,257.35287 128.53906,257.67578 C 128.22656,257.9935 128.07031,258.42839 128.07031,258.98047 L 128.07031,264.01953 L 125.79688,264.01953 M 106.64844,284.01953 L 106.64844,272.51172 L 109.01563,272.51172 L 109.01563,277.23828 L 113.50781,272.51172 L 116.46875,272.51172 L 111.875,277.16797 L 116.88281,284.01953 L 113.99219,284.01953 L 110.24219,278.75391 L 109.01563,279.97266 L 109.01563,284.01953 L 106.64844,284.01953 M 122.9375,281.44141 L 125.20313,281.44141 C 124.97395,282.33724 124.51041,283.04037 123.8125,283.55078 C 123.11979,284.05599 122.27343,284.30859 121.27344,284.30859 C 120.04427,284.30859 119.07031,283.89714 118.35156,283.07422 C 117.63281,282.2461 117.27344,281.1263 117.27344,279.71484 C 117.27344,278.32422 117.6276,277.22787 118.33594,276.42578 C 119.04427,275.62371 120.01302,275.22267 121.24219,275.22266 C 122.54427,275.22267 123.54947,275.6185 124.25781,276.41016 C 124.96614,277.19662 125.3203,278.31902 125.32031,279.77734 C 125.3203,279.93881 125.3177,280.0612 125.3125,280.14453 C 125.31249,280.22266 125.30728,280.29818 125.29688,280.37109 L 119.625,280.37109 C 119.65625,281.03776 119.81771,281.54037 120.10938,281.87891 C 120.40625,282.21745 120.83073,282.38672 121.38281,282.38672 C 121.77343,282.38672 122.09374,282.3112 122.34375,282.16016 C 122.59374,282.00391 122.79166,281.76433 122.9375,281.44141 M 119.625,278.87891 L 122.96875,278.87891 C 122.94791,278.306 122.79426,277.8711 122.50781,277.57422 C 122.22656,277.27214 121.82031,277.1211 121.28906,277.12109 C 120.79427,277.1211 120.40364,277.27214 120.11719,277.57422 C 119.83593,277.87631 119.67187,278.3112 119.625,278.87891 M 127.16406,287.42578 L 127.16406,285.58984 C 127.23698,285.60026 127.3125,285.60807 127.39063,285.61328 C 127.46875,285.61849 127.57031,285.62109 127.69531,285.62109 C 128.14323,285.62109 128.47916,285.51432 128.70313,285.30078 C 128.92708,285.09245 129.03906,284.77734 129.03906,284.35547 C 129.03906,284.32422 129.03385,284.28516 129.02344,284.23828 C 129.01302,284.19141 129.0026,284.15234 128.99219,284.12109 L 125.92969,275.52734 L 128.42969,275.52734 L 130.21875,281.65234 L 131.96094,275.52734 L 134.35156,275.52734 L 130.85938,285.54297 C 130.59895,286.29297 130.27343,286.80338 129.88281,287.07422 C 129.49218,287.35026 128.90625,287.48828 128.125,287.48828 C 127.98437,287.48828 127.83333,287.48307 127.67188,287.47266 C 127.51041,287.46224 127.34114,287.44661 127.16406,287.42578"
+ id="text5872" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 708.94531,264.01953 L 705.64844,252.51172 L 708.10156,252.51172 L 710.07031,260.62891 L 711.73438,252.51172 L 714.25781,252.51172 L 715.92188,260.62891 L 717.89063,252.51172 L 720.32031,252.51172 L 717.03125,264.01953 L 714.77344,264.01953 L 712.99219,255.20703 L 711.20313,264.01953 L 708.94531,264.01953 M 721.5,254.58203 L 721.5,252.51172 L 723.77344,252.51172 L 723.77344,254.58203 L 721.5,254.58203 M 721.5,264.01953 L 721.5,255.52734 L 723.77344,255.52734 L 723.77344,264.01953 L 721.5,264.01953 M 725.79688,264.01953 L 725.79688,255.52734 L 728.02344,255.52734 L 728.02344,256.53516 C 728.34114,256.12371 728.71614,255.81641 729.14844,255.61328 C 729.58072,255.40496 730.06249,255.30079 730.59375,255.30078 C 731.53124,255.30079 732.23176,255.54558 732.69531,256.03516 C 733.16405,256.51954 733.39843,257.25131 733.39844,258.23047 L 733.39844,264.01953 L 731.125,264.01953 L 731.125,258.88672 C 731.12499,258.27735 731.02083,257.84245 730.8125,257.58203 C 730.60937,257.32162 730.27604,257.19141 729.8125,257.19141 C 729.27604,257.19141 728.85156,257.35287 728.53906,257.67578 C 728.22656,257.9935 728.07031,258.42839 728.07031,258.98047 L 728.07031,264.01953 L 725.79688,264.01953 M 706.64844,284.01953 L 706.64844,272.51172 L 709.01563,272.51172 L 709.01563,277.23828 L 713.50781,272.51172 L 716.46875,272.51172 L 711.875,277.16797 L 716.88281,284.01953 L 713.99219,284.01953 L 710.24219,278.75391 L 709.01563,279.97266 L 709.01563,284.01953 L 706.64844,284.01953 M 722.9375,281.44141 L 725.20313,281.44141 C 724.97395,282.33724 724.51041,283.04037 723.8125,283.55078 C 723.11979,284.05599 722.27343,284.30859 721.27344,284.30859 C 720.04427,284.30859 719.07031,283.89714 718.35156,283.07422 C 717.63281,282.2461 717.27344,281.1263 717.27344,279.71484 C 717.27344,278.32422 717.6276,277.22787 718.33594,276.42578 C 719.04427,275.62371 720.01302,275.22267 721.24219,275.22266 C 722.54427,275.22267 723.54947,275.6185 724.25781,276.41016 C 724.96614,277.19662 725.3203,278.31902 725.32031,279.77734 C 725.3203,279.93881 725.3177,280.0612 725.3125,280.14453 C 725.31249,280.22266 725.30728,280.29818 725.29688,280.37109 L 719.625,280.37109 C 719.65625,281.03776 719.81771,281.54037 720.10938,281.87891 C 720.40625,282.21745 720.83073,282.38672 721.38281,282.38672 C 721.77343,282.38672 722.09374,282.3112 722.34375,282.16016 C 722.59374,282.00391 722.79166,281.76433 722.9375,281.44141 M 719.625,278.87891 L 722.96875,278.87891 C 722.94791,278.306 722.79426,277.8711 722.50781,277.57422 C 722.22656,277.27214 721.82031,277.1211 721.28906,277.12109 C 720.79427,277.1211 720.40364,277.27214 720.11719,277.57422 C 719.83593,277.87631 719.67187,278.3112 719.625,278.87891 M 727.16406,287.42578 L 727.16406,285.58984 C 727.23698,285.60026 727.3125,285.60807 727.39063,285.61328 C 727.46875,285.61849 727.57031,285.62109 727.69531,285.62109 C 728.14323,285.62109 728.47916,285.51432 728.70313,285.30078 C 728.92708,285.09245 729.03906,284.77734 729.03906,284.35547 C 729.03906,284.32422 729.03385,284.28516 729.02344,284.23828 C 729.01302,284.19141 729.0026,284.15234 728.99219,284.12109 L 725.92969,275.52734 L 728.42969,275.52734 L 730.21875,281.65234 L 731.96094,275.52734 L 734.35156,275.52734 L 730.85938,285.54297 C 730.59895,286.29297 730.27343,286.80338 729.88281,287.07422 C 729.49218,287.35026 728.90625,287.48828 728.125,287.48828 C 727.98437,287.48828 727.83333,287.48307 727.67188,287.47266 C 727.51041,287.46224 727.34114,287.44661 727.16406,287.42578"
+ id="text5878" />
+ <path
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Swis721 BT"
+ d="M 759.98438,275.60938 L 759.98438,264.10156 L 763.48438,264.10156 L 765.77344,272.85938 L 768.03125,264.10156 L 771.54688,264.10156 L 771.54688,275.60938 L 769.32813,275.60938 L 769.32813,266.32813 L 766.99219,275.60938 L 764.57031,275.60938 L 762.20313,266.32813 L 762.20313,275.60938 L 759.98438,275.60938 M 778.99219,273.03125 L 781.25781,273.03125 C 781.02864,273.92709 780.5651,274.63021 779.86719,275.14063 C 779.17447,275.64583 778.32812,275.89844 777.32813,275.89844 C 776.09896,275.89844 775.125,275.48698 774.40625,274.66406 C 773.6875,273.83594 773.32812,272.71615 773.32813,271.30469 C 773.32812,269.91407 773.68229,268.81772 774.39063,268.01563 C 775.09896,267.21355 776.06771,266.81251 777.29688,266.8125 C 778.59895,266.81251 779.60416,267.20834 780.3125,268 C 781.02083,268.78647 781.37499,269.90886 781.375,271.36719 C 781.37499,271.52865 781.37239,271.65105 781.36719,271.73438 C 781.36718,271.8125 781.36197,271.88802 781.35156,271.96094 L 775.67969,271.96094 C 775.71093,272.62761 775.87239,273.13021 776.16406,273.46875 C 776.46093,273.80729 776.88541,273.97656 777.4375,273.97656 C 777.82812,273.97656 778.14843,273.90104 778.39844,273.75 C 778.64843,273.59375 778.84635,273.35417 778.99219,273.03125 M 775.67969,270.46875 L 779.02344,270.46875 C 779.0026,269.89584 778.84895,269.46094 778.5625,269.16406 C 778.28124,268.86199 777.87499,268.71094 777.34375,268.71094 C 776.84895,268.71094 776.45833,268.86199 776.17188,269.16406 C 775.89062,269.46615 775.72656,269.90105 775.67969,270.46875 M 782.88281,275.60938 L 782.88281,267.11719 L 785.10938,267.11719 L 785.10938,268.125 C 785.42708,267.71355 785.80208,267.40626 786.23438,267.20313 C 786.66666,266.9948 787.14843,266.89063 787.67969,266.89063 C 788.61718,266.89063 789.3177,267.13543 789.78125,267.625 C 790.24999,268.10938 790.48437,268.84115 790.48438,269.82031 L 790.48438,275.60938 L 788.21094,275.60938 L 788.21094,270.47656 C 788.21093,269.86719 788.10676,269.4323 787.89844,269.17188 C 787.69531,268.91147 787.36197,268.78126 786.89844,268.78125 C 786.36197,268.78126 785.9375,268.94272 785.625,269.26563 C 785.3125,269.58334 785.15625,270.01823 785.15625,270.57031 L 785.15625,275.60938 L 782.88281,275.60938 M 800.01563,267.11719 L 800.01563,275.60938 L 797.78906,275.60938 L 797.78906,274.60156 C 797.46614,275.01302 797.08854,275.32292 796.65625,275.53125 C 796.22916,275.73437 795.74739,275.83594 795.21094,275.83594 C 794.27864,275.83594 793.57812,275.59115 793.10938,275.10156 C 792.64583,274.61198 792.41406,273.88021 792.41406,272.90625 L 792.41406,267.11719 L 794.6875,267.11719 L 794.6875,272.25 C 794.6875,272.85417 794.78906,273.28646 794.99219,273.54688 C 795.19531,273.80209 795.53125,273.92969 796,273.92969 C 796.53124,273.92969 796.95312,273.77084 797.26563,273.45313 C 797.58333,273.13021 797.74218,272.69271 797.74219,272.14063 L 797.74219,267.11719 L 800.01563,267.11719"
+ id="text5884" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="362"
+ y="272"
+ id="text3387"><tspan
+ sodipodi:role="line"
+ id="tspan3389"
+ x="362"
+ y="272"
+ style="font-size:13px;font-weight:bold;-inkscape-font-specification:Bitstream Vera Sans Bold">toggle tiling/floating</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="119.03223"
+ y="86"
+ id="text3391"><tspan
+ sodipodi:role="line"
+ id="tspan3393"
+ x="119.03223"
+ y="86"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">kill</tspan><tspan
+ sodipodi:role="line"
+ x="119.03223"
+ y="102.25"
+ id="tspan3395"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">window</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="239.79933"
+ y="86.438766"
+ id="text3397"><tspan
+ sodipodi:role="line"
+ id="tspan3399"
+ x="239.79933"
+ y="86.438766"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">exit</tspan><tspan
+ sodipodi:role="line"
+ x="239.79933"
+ y="102.68877"
+ id="tspan3401"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">i3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="299.31445"
+ y="86"
+ id="text3403"><tspan
+ sodipodi:role="line"
+ id="tspan3405"
+ x="299.31445"
+ y="86"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">restart</tspan><tspan
+ sodipodi:role="line"
+ x="299.31445"
+ y="102.25"
+ id="tspan3407"
+ style="font-size:13px;font-weight:bold;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Vera Sans Bold">i3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:normal;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ x="491.81522"
+ y="146.5442"
+ id="text3430"><tspan
+ sodipodi:role="line"
+ id="tspan3432"
+ x="491.81522"
+ y="146.5442">move</tspan><tspan
+ sodipodi:role="line"
+ x="491.81522"
+ y="162.7942"
+ id="tspan3448">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:normal;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ x="552.34015"
+ y="146.5442"
+ id="text3434"><tspan
+ sodipodi:role="line"
+ id="tspan3436"
+ x="552.34015"
+ y="146.5442">move</tspan><tspan
+ sodipodi:role="line"
+ x="552.34015"
+ y="162.7942"
+ id="tspan3450">down</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:normal;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ x="611.90704"
+ y="145.83786"
+ id="text3438"><tspan
+ sodipodi:role="line"
+ id="tspan3440"
+ x="611.90704"
+ y="145.83786">move</tspan><tspan
+ sodipodi:role="line"
+ x="611.90704"
+ y="162.08786"
+ id="tspan3452">up</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:normal;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ x="672.34808"
+ y="146.5442"
+ id="text3442"><tspan
+ sodipodi:role="line"
+ id="tspan3444"
+ x="672.34808"
+ y="146.5442">move</tspan><tspan
+ sodipodi:role="line"
+ x="672.34808"
+ y="162.7942"
+ id="tspan3446">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13px;font-style:normal;font-weight:bold;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+ x="194.95703"
+ y="276"
+ id="text4572"><tspan
+ sodipodi:role="line"
+ id="tspan4574"
+ x="194.95703"
+ y="276"
+ style="font-size:18">Mod1</tspan></text>
+ </g>
+</svg>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: Layout saving in i3</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Layout saving in i3</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">April 2014</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Layout saving/restoring is a feature that was introduced in i3 v4.8.</p></div>\r
+<div class="paragraph"><p>Layout saving/restoring allows you to load a JSON layout file so that you can\r
+have a base layout to start working with after powering on your computer.\r
+Dynamic use-cases also come to mind: if you frequently (but not always!) need a\r
+grid layout of terminals with ping/traceroute commands to diagnose network\r
+issues, you can easily automate opening these windows in just the right layout.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_saving_the_layout">1. Saving the layout</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>You can save the layout of either a single workspace or an entire output (e.g.\r
+LVDS1). Of course, you can repeat this step multiple times if you want to\r
+save/restore multiple workspaces/outputs.</p></div>\r
+<div class="paragraph"><p><tt>i3-save-tree(1)</tt> is a tool to save the layout. It will print a JSON\r
+representation of i3’s internal layout data structures to stdout. Typically,\r
+you may want to take a quick look at the output, then save it to a file and\r
+tweak it a little bit:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3-save-tree --workspace 1 > ~/.i3/workspace-1.json</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Please note that the output of <tt>i3-save-tree(1)</tt> is <strong>NOT useful</strong> until you\r
+manually modify it — you need to tell i3 how to match/distinguish windows (for\r
+example based on their WM_CLASS, title, etc.). By default, all the different\r
+window properties are included in the output, but commented out. This is partly\r
+to avoid relying on heuristics and partly to make you aware how i3 works so\r
+that you can easily solve layout restoring problems.</p></div>\r
+<div class="paragraph"><p>How to modify the file manually is described in <a href="#EditingLayoutFiles">[EditingLayoutFiles]</a>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_restoring_the_layout">2. Restoring the layout</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>After restoring the example layout from <a href="#EditingLayoutFiles">[EditingLayoutFiles]</a>, i3 will open\r
+placeholder windows for all the windows that were specified in the layout file.\r
+You can recognize the placeholder windows by the watch symbol\r
+<span class="footnote"><br />[Depending on the font you are using, a placeholder symbol may show up\r
+instead of the watch symbol.]<br /></span> in the center of the window, and by the swallow\r
+criteria specification at the top of the window:</p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<a class="image" href="layout-saving-1.png">\r
+<img src="layout-saving-1.png" alt="Restored layout" width="400" />\r
+</a>\r
+</span></p></div>\r
+<div class="paragraph"><p>When an application opens a window that matches the specified swallow criteria,\r
+it will be placed in the corresponding placeholder window. We say it gets\r
+<strong>swallowed</strong> by the placeholder container, hence the term.</p></div>\r
+<div class="paragraph"><p>Note: Swallowing windows into unsatisfied placeholder windows takes precedence\r
+over\r
+<a href="http://i3wm.org/docs/userguide.html#_automatically_putting_clients_on_specific_workspaces">assignment\r
+rules</a>. For example, if you assign all Emacs windows to workspace 1 in your i3\r
+configuration file, but there is a placeholder window on workspace 2 which\r
+matches Emacs as well, your newly started Emacs window will end up in the\r
+placeholder window on workspace 2.</p></div>\r
+<div class="paragraph"><p>The placeholder windows are just regular windows, so feel free to move them\r
+around or close them, for example.</p></div>\r
+<div class="sect2">\r
+<h3 id="_append_layout_command">2.1. append_layout command</h3>\r
+<div class="paragraph"><p>The <tt>append_layout</tt> command is used to load a layout file into i3. It accepts a\r
+path (relative to i3’s current working directory or absolute) to a JSON file.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>append_layout <path></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># From a terminal or script:\r
+i3-msg "workspace 1; append_layout /home/michael/.i3/workspace-1.json"\r
+\r
+# In your i3 configuration file, you can autostart i3-msg like this:\r
+# (Note that those lines will quickly become long, so typically you would store\r
+# them in a script with proper indentation.)\r
+exec --no-startup-id "i3-msg 'workspace 1; append_layout /home/michael/.i3/workspace-1.json'"</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_editing_layout_files">3. Editing layout files</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="EditingLayoutFiles">3.1. Anatomy of a layout file</h3>\r
+<div class="paragraph"><p>Here is an example layout file that we’ll discuss:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>{\r
+ // splitv split container with 2 children\r
+ "layout": "splitv",\r
+ "percent": 0.4,\r
+ "type": "con",\r
+ "nodes": [\r
+ {\r
+ "border": "none",\r
+ "name": "irssi",\r
+ "percent": 0.5,\r
+ "type": "con",\r
+ "swallows": [\r
+ {\r
+ "class": "^URxvt$",\r
+ "instance": "^irssi$"\r
+ }\r
+ ]\r
+ },\r
+ {\r
+ // stacked split container with 2 children\r
+ "layout": "stacked",\r
+ "percent": 0.5,\r
+ "type": "con",\r
+ "nodes": [\r
+ {\r
+ "name": "notmuch",\r
+ "percent": 0.5,\r
+ "type": "con",\r
+ "swallows": [\r
+ {\r
+ "class": "^Emacs$",\r
+ "instance": "^notmuch$"\r
+ }\r
+ ]\r
+ },\r
+ {\r
+ "name": "midna: ~",\r
+ "percent": 0.5,\r
+ "type": "con"\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+}\r
+\r
+{\r
+ // stacked split container with 1 children\r
+ "layout": "stacked",\r
+ "percent": 0.6,\r
+ "type": "con",\r
+ "nodes": [\r
+ {\r
+ "name": "chrome",\r
+ "type": "con",\r
+ "swallows": [\r
+ {\r
+ "class": "^Google-chrome$"\r
+ }\r
+ ]\r
+ }\r
+ ]\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>In this layout, the screen is divided into two columns. In the left column,\r
+which covers 40% of the screen, there is a terminal emulator running irssi on\r
+the top, and a stacked split container with an Emacs window and a terminal\r
+emulator on the bottom. In the right column, there is a stacked container with\r
+a Chrome window:</p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<a class="image" href="layout-saving-1.png">\r
+<img src="layout-saving-1.png" alt="Restored layout" width="400" />\r
+</a>\r
+</span></p></div>\r
+<div class="paragraph"><p>The structure of this JSON file looks a lot like the <tt>TREE</tt> reply, see\r
+<a href="http://build.i3wm.org/docs/ipc.html#_tree_reply">http://build.i3wm.org/docs/ipc.html#_tree_reply</a> for documentation on that. Some\r
+properties are excluded because they are not relevant when restoring a layout.</p></div>\r
+<div class="paragraph"><p>Most importantly, look at the "swallows" section of each window. This is where\r
+you need to be more or less specific. As an example, remember the section about\r
+the Emacs window:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>"swallows": [\r
+ {\r
+ "class": "^Emacs$",\r
+ "instance": "^notmuch$"\r
+ }\r
+]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Here you can see that i3 will require both the class and the instance to match.\r
+Therefore, if you just start Emacs via dmenu, it will not get swallowed by that\r
+container. Only if you start Emacs with the proper instance name (<tt>emacs24\r
+--name notmuch</tt>), it will get swallowed.</p></div>\r
+<div class="paragraph"><p>You can match on "class", "instance", "window_role" and "title". All values are\r
+case-sensitive regular expressions (PCRE). Use <tt>xprop(1)</tt> and click into a\r
+window to see its properties:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ xprop\r
+WM_WINDOW_ROLE(STRING) = "gimp-toolbox-color-dialog"\r
+WM_CLASS(STRING) = "gimp-2.8", "Gimp-2.8"\r
+_NET_WM_NAME(UTF8_STRING) = "Change Foreground Color"</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The first part of <tt>WM_CLASS</tt> is the "instance" (gimp-2.8 in this case), the\r
+second part is the "class" (Gimp-2.8 in this case). "title" matches against\r
+<tt>_NET_WM_NAME</tt> and "window_role" matches against <tt>WM_WINDOW_ROLE</tt>.</p></div>\r
+<div class="paragraph"><p>In general, you should try to be as specific as possible in your swallow\r
+criteria. Try to use criteria that match one window and only one window, to\r
+have a reliable startup procedure.</p></div>\r
+<div class="paragraph"><p>If you specify multiple swallow criteria, the placeholder will be replaced by\r
+the window which matches any of the criteria. As an example:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>// Matches either Emacs or Gvim, whichever one is started first.\r
+"swallows": [\r
+ {"class": "^Emacs$"},\r
+ {"class": "^Gvim$"}\r
+]</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_json_standard_non_compliance">3.2. JSON standard non-compliance</h3>\r
+<div class="paragraph"><p>A layout file as generated by <tt>i3-save-tree(1)</tt> is not strictly valid JSON:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Layout files contain multiple “JSON documents” on the top level, whereas the\r
+ JSON standard only allows precisely one “document” (array or hash).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Layout files contain comments which are not standardized, but understood by\r
+ many parsers.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>Both deviations from the JSON standard are to make manual editing by humans\r
+easier. In case you are writing a more elaborate tool for manipulating these\r
+layouts, you can either use a JSON parser that supports these deviations (for\r
+example libyajl), transform the layout file to a JSON-conforming file, or\r
+<a href="http://cr.i3wm.org/">submit a patch</a> to make <tt>i3-save-tree(1)</tt> optionally\r
+output standard-conforming JSON.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_troubleshooting">4. Troubleshooting</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_restoring_a_vertically_split_workspace">4.1. Restoring a vertically split workspace</h3>\r
+<div class="paragraph"><p>When using <tt>i3-save-tree</tt> with the <tt>--workspace</tt> switch, only the <strong>contents</strong> of\r
+the workspace will be dumped. This means that properties of the workspace\r
+itself will be lost.</p></div>\r
+<div class="paragraph"><p>This is relevant for, e.g., a vertically split container as the base container of\r
+a workspace. Since the split mode is a property of the workspace, it will not be\r
+stored. In this case, you will have to manually wrap your layout in such a\r
+container:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>// vim:ts=4:sw=4:et\r
+{\r
+ // this is a manually added container to restore the vertical split\r
+ "layout": "splitv",\r
+ "percent": 0.5,\r
+ "type": "con",\r
+ "nodes": [\r
+\r
+ // the dumped workspace layout goes here\r
+\r
+ ]\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.4" />\r
+<title>i3: i3(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="http://bugs.i3wm.org/">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revnumber">version 3.epsilon,</span>\r
+<span id="revdate">March 2010</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 - an improved dynamic, tiling window manager</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 [-a] [-c configfile] [-C] [-d <loglevel>] [-v] [-V]</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_options">3. OPTIONS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+-a\r
+</dt>\r
+<dd>\r
+<p>\r
+Disables autostart.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-c\r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies an alternate configuration file path.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-C\r
+</dt>\r
+<dd>\r
+<p>\r
+Check the configuration file for validity and exit.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-d\r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies the debug loglevel. To see the most output, use -d all.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-v\r
+</dt>\r
+<dd>\r
+<p>\r
+Display version number (and date of the last commit).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+-V\r
+</dt>\r
+<dd>\r
+<p>\r
+Be verbose.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">4. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_introduction">4.1. INTRODUCTION</h3>\r
+<div class="paragraph"><p>i3 was created because wmii, our favorite window manager at the time, didn’t\r
+provide some features we wanted (multi-monitor done right, for example), had\r
+some bugs, didn’t progress since quite some time and wasn’t easy to hack at all\r
+(source code comments/documentation completely lacking). Still, we think the\r
+wmii developers and contributors did a great job. Thank you for inspiring us to\r
+create i3.</p></div>\r
+<div class="paragraph"><p>Please be aware that i3 is primarily targeted at advanced users and developers.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_important_note_to_nvidia_binary_driver_users">4.2. IMPORTANT NOTE TO nVidia BINARY DRIVER USERS</h3>\r
+<div class="paragraph"><p>If you are using the nVidia binary graphics driver (also known as <em>blob</em>)\r
+you need to use the <tt>--force-xinerama</tt> flag (in your .xsession) when starting\r
+i3, like so:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>See also docs/multi-monitor for the full explanation.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_terminology">4.3. TERMINOLOGY</h3>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+Client\r
+</dt>\r
+<dd>\r
+<p>\r
+A client is X11-speak for a window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Table\r
+</dt>\r
+<dd>\r
+<p>\r
+Your workspace is managed using a table. You can move windows around and create\r
+new columns (move a client to the right) or rows (move it to the bottom)\r
+implicitly.\r
+</p>\r
+<div class="paragraph"><p>By "snapping" a client in a specific direction, you increase its colspan/rowspan.</p></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Container\r
+</dt>\r
+<dd>\r
+<p>\r
+A container contains a variable number of clients. Each cell of the table is a\r
+container.\r
+</p>\r
+<div class="paragraph"><p>Containers can be used in various modes. The default mode is called "default"\r
+and just resizes each client equally so that it fits.</p></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+A workspace is a set of clients (technically speaking, it’s just a table).\r
+Other window managers call this "Virtual Desktops".\r
+</p>\r
+<div class="paragraph"><p>In i3, each workspace is assigned to a specific virtual screen. By default,\r
+screen 1 has workspace 1, screen 2 has workspace 2 and so on… However, when you\r
+create a new workspace (by simply switching to it), it’ll be assigned the\r
+screen you are currently on.</p></div>\r
+</dd>\r
+<dt class="hdlist1">\r
+Output\r
+</dt>\r
+<dd>\r
+<p>\r
+Using XRandR, you can have an X11 screen spanning multiple real monitors.\r
+Furthermore, you can set them up in cloning mode or with positions (monitor 1\r
+is left of monitor 2).\r
+</p>\r
+<div class="paragraph"><p>i3 uses the RandR API to query which outputs are available and which screens\r
+are connected to these outputs.</p></div>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_keybindings">5. KEYBINDINGS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Here is a short overview of the default keybindings:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+j/k/l/;\r
+</dt>\r
+<dd>\r
+<p>\r
+Direction keys (left, down, up, right). They are on your homerow (see the mark\r
+on your "j" key). Alternatively, you can use the cursor keys.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Focus window in <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod3+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Focus container in <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Move window to <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod3+Shift+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Move container to <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Control+<direction>\r
+</dt>\r
+<dd>\r
+<p>\r
+Snap container to <direction>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+<number>\r
+</dt>\r
+<dd>\r
+<p>\r
+Switch to workspace <number>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+<number>\r
+</dt>\r
+<dd>\r
+<p>\r
+Move window to workspace <number>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+f\r
+</dt>\r
+<dd>\r
+<p>\r
+Toggle fullscreen mode.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+h\r
+</dt>\r
+<dd>\r
+<p>\r
+Enable stacking layout for the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+e\r
+</dt>\r
+<dd>\r
+<p>\r
+Enable default layout for the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+Space\r
+</dt>\r
+<dd>\r
+<p>\r
+Toggle tiling/floating for the current window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+t\r
+</dt>\r
+<dd>\r
+<p>\r
+Select the first tiling window if the current window is floating and vice-versa.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+q\r
+</dt>\r
+<dd>\r
+<p>\r
+Kills the current window. This is equivalent to "clicking on the close button",\r
+meaning a polite request to the application to close this window. For example,\r
+Firefox will save its session upon such a request. If the application does not\r
+support that, the window will be killed and it depends on the application what\r
+happens.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+r\r
+</dt>\r
+<dd>\r
+<p>\r
+Restarts i3 in place (without losing any windows, but at this time, the layout\r
+and placement of windows is not retained).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Mod1+Shift+e\r
+</dt>\r
+<dd>\r
+<p>\r
+Exits i3.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_files">6. FILES</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_i3_config_or_config_i3_config">6.1. ~/.i3/config (or ~/.config/i3/config)</h3>\r
+<div class="paragraph"><p>When starting, i3 looks for configuration files in the following order:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/xdg/i3/config (or $XDG_CONFIG_DIRS/i3/config if set)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+~/.i3/config\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/i3/config\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>You can specify a custom path using the -c option.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Sample configuration</div>\r
+<div class="content">\r
+<pre><tt>font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
+\r
+# Start terminal (Mod1+Enter)\r
+bind Mod1+36 exec /usr/bin/urxvt\r
+\r
+# Start dmenu (Mod1+v)\r
+bind Mod1+55 exec /usr/bin/dmenu_run\r
+\r
+# Kill current client (Mod1+Shift+q)\r
+bind Mod1+Shift+24 kill\r
+\r
+# Beamer on/off\r
+bind Mod1+73 exec /home/michael/toggle_beamer.sh\r
+\r
+# Screen locking\r
+bind Mod1+68 exec /usr/bin/i3lock\r
+\r
+# Restart i3 inplace (Mod1+Shift+r)\r
+bind Mod1+Shift+27 restart\r
+\r
+# Exit i3 (Mod1+Shift+e)\r
+bind Mod1+Shift+26 exit\r
+\r
+# Brightness\r
+bind Mod1+97 exec sudo sh -c "echo up > /proc/acpi/ibm/brightness"\r
+bind Mod1+103 exec sudo sh -c "echo down > /proc/acpi/ibm/brightness"\r
+\r
+# Fullscreen (Mod1+f)\r
+bind Mod1+41 f\r
+\r
+# Stacking (Mod1+h)\r
+bind Mod1+43 s\r
+\r
+# Default (Mod1+e)\r
+bind Mod1+26 d\r
+\r
+# Toggle tiling/floating of the current window (Mod1+Shift+Space)\r
+bind Mod1+Shift+65 t\r
+\r
+# Go into the tiling layer / floating layer, depending on whether\r
+# the current window is tiling / floating (Mod1+t)\r
+bind Mod1+28 focus ft\r
+\r
+# Focus (Mod1+j/k/l/;)\r
+bind Mod1+44 h\r
+bind Mod1+45 j\r
+bind Mod1+46 k\r
+bind Mod1+47 l\r
+\r
+# Focus Container (Mod3+j/k/l/;)\r
+bind Mod3+44 wch\r
+bind Mod3+45 wcj\r
+bind Mod3+46 wck\r
+bind Mod3+47 wcl\r
+\r
+# Snap (Mod1+Control+j/k/l/;)\r
+bind Mod1+Control+44 sh\r
+bind Mod1+Control+45 sj\r
+bind Mod1+Control+46 sk\r
+bind Mod1+Control+47 sl\r
+\r
+# Move (Mod1+Shift+j/k/l/;)\r
+bind Mod1+Shift+44 mh\r
+bind Mod1+Shift+45 mj\r
+bind Mod1+Shift+46 mk\r
+bind Mod1+Shift+47 ml\r
+\r
+# Move Container (Mod3+Shift+j/k/l/;)\r
+bind Mod3+Shift+44 wcmh\r
+bind Mod3+Shift+45 wcmj\r
+bind Mod3+Shift+46 wcmk\r
+bind Mod3+Shift+47 wcml\r
+\r
+# Workspaces\r
+bind Mod1+10 1\r
+bind Mod1+11 2\r
+...\r
+\r
+# Move to Workspace\r
+bind Mod1+Shift+10 1\r
+bind Mod1+Shift+11 2\r
+...</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_xsession">6.2. ~/.xsession</h3>\r
+<div class="paragraph"><p>This file is where you should configure your locales and start i3. It is run by\r
+your login manager (xdm, slim, gdm, …) as soon as you login.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Sample xsession</div>\r
+<div class="content">\r
+<pre><tt># Disable DPMS turning off the screen\r
+xset dpms force on\r
+xset s off\r
+\r
+# Disable bell\r
+xset -b\r
+\r
+# Enable zapping (C-A-<Bksp> kills X)\r
+setxkbmap -option terminate:ctrl_alt_bksp\r
+\r
+# Enforce correct locales from the beginning\r
+unset LC_COLLATE\r
+export LC_CTYPE=de_DE.UTF-8\r
+export LC_TIME=de_DE.UTF-8\r
+export LC_NUMERIC=de_DE.UTF-8\r
+export LC_MONETARY=de_DE.UTF-8\r
+export LC_MESSAGES=C\r
+export LC_PAPER=de_DE.UTF-8\r
+export LC_NAME=de_DE.UTF-8\r
+export LC_ADDRESS=de_DE.UTF-8\r
+export LC_TELEPHONE=de_DE.UTF-8\r
+export LC_MEASUREMENT=de_DE.UTF-8\r
+export LC_IDENTIFICATION=de_DE.UTF-8\r
+\r
+# Use XToolkit in java applications\r
+export AWT_TOOLKIT=XToolkit\r
+\r
+# Set background color\r
+xsetroot -solid "#333333"\r
+\r
+# Enable core dumps in case something goes wrong\r
+ulimit -c unlimited\r
+\r
+# Start i3 and log to ~/.i3/logfile\r
+echo "Starting at $(date)" >> ~/.i3/logfile\r
+exec /usr/bin/i3 -V -d all >> ~/.i3/logfile</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_todo">7. TODO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>There is still lot of work to do. Please check our bugtracker for up-to-date\r
+information about tasks which are still not finished.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">8. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>You should have a copy of the userguide (featuring nice screenshots/graphics\r
+which is why this is not integrated into this manpage), the debugging guide,\r
+and the "how to hack" guide. If you are building from source, run:\r
+ <tt>make -C docs</tt></p></div>\r
+<div class="paragraph"><p>You can also access these documents online at <a href="http://i3.zekjur.net/">http://i3.zekjur.net/</a></p></div>\r
+<div class="paragraph"><p>i3-input(1), i3-msg(1), i3-wsbar(1)</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_author">9. AUTHOR</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: The multi-monitor situation</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>The multi-monitor situation</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">April 2013</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Please upgrade your nVidia driver to version 302.17 or newer and i3 will just\r
+work. This document is kept around for historic reasons only.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_the_quick_fix">1. The quick fix</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>If you are using the nVidia binary graphics driver (also known as <em>blob</em>)\r
+before version 302.17, you need to use the <tt>--force-xinerama</tt> flag (in your\r
+.xsession) when starting i3, like so:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Example:</div>\r
+<div class="content">\r
+<pre><tt>exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>…or use <tt>force_xinerama yes</tt> in your configuration file.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_the_explanation">2. The explanation</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Starting with version 3.ε, i3 uses the RandR (Rotate and Resize) API instead\r
+of Xinerama. The reason for this, is that RandR provides more information\r
+about your outputs and connected screens than Xinerama does. To be specific,\r
+the code which handled on-the-fly screen reconfiguration (meaning without\r
+restarting the X server) was a very messy heuristic and most of the time did\r
+not work correctly — that is just not possible with the little information\r
+Xinerama offers (just a list of screen resolutions, no identifiers for the\r
+screens or any additional information). Xinerama simply was not designed\r
+for dynamic configuration.</p></div>\r
+<div class="paragraph"><p>So RandR came along, as a more powerful alternative (RandR 1.2 to be specific).\r
+It offers all of Xinerama’s possibilities and lots more. Using the RandR API\r
+made our code much more robust and clean. Also, you can now reliably assign\r
+workspaces to output names instead of some rather unreliable screen identifier\r
+(position inside the list of screens, which could change, and so on…).</p></div>\r
+<div class="paragraph"><p>As RandR has been around for about three years as of this writing, it seemed\r
+like a very good idea to us, and it still is a very good one. What we did not\r
+expect, however, was the nVidia binary driver. It still does not support RandR\r
+(as of March 2010), even though nVidia has announced that it will support RandR\r
+eventually. What does this mean for you, if you are stuck with the binary\r
+driver for some reason (say the free drivers don’t work with your card)? First\r
+of all, you are stuck with TwinView and cannot use <tt>xrandr</tt>. While this ruins\r
+the user experience, the more grave problem is that the nVidia driver not only\r
+does not support dynamic configuration using RandR, it also does not expose\r
+correct multi-monitor information via the RandR API. So, in some setups, i3\r
+will not find any screens; in others, it will find one large screen which\r
+actually contains both of your physical screens (but it will not know that\r
+these are two screens).</p></div>\r
+<div class="paragraph"><p>For this very reason, we decided to implement the following workaround: As\r
+long as the nVidia driver does not support RandR, an option called\r
+<tt>--force-xinerama</tt> is available in i3 (alternatively, you can use the\r
+<tt>force_xinerama</tt> configuration file directive). This option gets the list of\r
+screens <strong>once</strong> when starting, and never updates it. As the nVidia driver cannot\r
+do dynamic configuration anyways, this is not a big deal.</p></div>\r
+<div class="paragraph"><p>Also note that your output names are not descriptive (like <tt>HDMI1</tt>) when using\r
+Xinerama, instead they are counted up, starting at 0: <tt>xinerama-0</tt>, <tt>xinerama-1</tt>, …</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">3. See also</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>For more information on how to use multi-monitor setups, see the i3 User’s\r
+Guide.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>i3 Reference Card</title>
+ <link rel="stylesheet" href="refcard_style.css" />
+ <style type="text/css">
+ * { margin: 0; padding: 0; vertical-align: middle; }
+ html { font-family: LinuxLibertine, Linux Libertine O, Linux Libertine, serif; font-size: 15px; /* column-count: 3; column-gap: 10px; -moz-column-count: 3; -moz-column-gap: 10px; -webkit-column-count: 3; -webkit-column-gap: 10px; */ }
+ body > div { display: inline-block; width: 33%; margin: 0.25%; vertical-align: top; }
+ body > div:first-child { margin-left: 0; }
+ body > div:last-child { margin-right: 0; }
+ #logo { float: left; width: 40px; margin: 7px; }
+ header { font-size: 1.1em; text-align: center; }
+ h1 { font-size: 1.1em; }
+ header a { font-size: 0.7em; }
+ header p { margin: 5px 0; font-size: 0.8em; text-align: left; }
+ kbd { font-family: LinuxBiolinumKeyboard, Linux Biolinum Keyboard O, Linux Biolinum Keyboard, DejaVu Sans Mono, monospace; font-size: 0.9em; }
+ code { font-family: DejaVu Sans Mono, monospace; font-size: 0.8em; }
+ section { break-inside: avoid-column; -moz-break-inside: -moz-avoid-column; -webkit-break-inside: avoid-column; }
+ h2 { margin: 7px 0 2px; padding: 2px 4px; font-size: 1.1em; font-family: LinuxBiolinum, Linux Biolinum O, Linux Biolinum, sans; background-color: #b3b3b3; }
+ table { width: 100%; }
+ .i3mod { width: 15px; }
+ td:last-child { text-align: right; }
+ .ref { font-size: 0.8em; }
+ #copyright { margin: 20px 0 15px; font-size: 0.7em; text-align: center; }
+ #licence { max-width: 70%; margin: 3px auto; font-size: 0.6em; text-align: right; }
+ </style>
+ <style type="text/css" media="print">
+ html { font-size: 13px; }
+ </style>
+</head>
+<body><div>
+ <header>
+ <img id="logo" src="logo-30.png" alt="" />
+ <h1>i3 Reference Card</h1>
+ <a href="http://i3wm.org/docs/userguide.html">http://i3wm.org/docs/userguide.html</a>
+ <p>
+ Throughout this guide, the i3 logo will be used to refer to the configured modifier.
+ This is the <kbd></kbd> key (<code>Mod1</code>) by default,
+ with super/<kbd></kbd> (<code>Mod4</code>) being a popular alternative.
+ </p>
+ </header>
+
+
+ <section>
+ <h2>Basics</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd>
+ <td>open new terminal
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>j</kbd>
+ <td>focus left
+
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>k</kbd>
+ <td>focus down
+
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>l</kbd>
+ <td>focus up
+
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>;</kbd>
+ <td>focus right
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd>
+ <td>toggle focus mode
+ </table>
+ </section>
+
+ <section>
+ <h2>Moving windows</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>j</kbd>
+ <td>move window left
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>k</kbd>
+ <td>move window down
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>l</kbd>
+ <td>move window up
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>;</kbd>
+ <td>move window right
+ </table>
+ </section>
+
+</div><div>
+
+ <section>
+ <h2>Modifying windows</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>f</kbd>
+ <td>toggle fullscreen
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>v</kbd>
+ <td>split a window vertically
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>h</kbd>
+ <td>split a window horizontally
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>r</kbd>
+ <td>resize mode
+ </table>
+ <p class="ref">Look at the “Resizing containers / windows” section of the user guide.</p>
+ </section>
+
+ <section>
+ <h2>Changing the container layout</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>e</kbd>
+ <td>default
+
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>s</kbd>
+ <td>stacking
+
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>w</kbd>
+ <td>tabbed
+ </table>
+ </section>
+
+ <section>
+ <h2>Floating</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd></kbd>
+ <td>toggle floating
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd>
+ <td>drag floating
+ </table>
+ </section>
+
+
+ <section>
+ <h2>Using workspaces</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>0</kbd>-<kbd>9</kbd>
+ <td>switch to another workspace
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>0</kbd>-<kbd>9</kbd>
+ <td>move a window to another workspace
+ </table>
+ </section>
+
+</div><div>
+
+ <section>
+ <h2>Opening applications / Closing windows</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd>d</kbd>
+ <td>open application launcher (dmenu)
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>q</kbd>
+ <td>kill a window
+ </table>
+ </section>
+
+ <section>
+ <h2>Restart / Exit</h2>
+ <table>
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>c</kbd>
+ <td>reload the configuration file
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>r</kbd>
+ <td>restart i3 inplace
+
+ <tr>
+ <td><img class="i3mod" src="logo-30.png" alt="" /> + <kbd></kbd> + <kbd>e</kbd>
+ <td>exit i3
+ </section>
+ </table>
+
+
+ <!-- footer -->
+ <p id="copyright">
+ Copyright © 2012, Michael Stapelberg
+ <br />
+ All rights reserved
+ <br />
+ Designed by Zeus Panchenko, updated by Moritz Bandemer
+ </p>
+ <p id="licence">
+ Permission is granted to copy, distribute and/or modify this document provided
+ the copyright notice and this permission notice are preserved on all copies.
+ </p>
+</div></body>
+</html>
--- /dev/null
+/* Generated by Font Squirrel (http://www.fontsquirrel.com) on April 12, 2012 */
+
+
+
+@font-face {
+ /* This declaration targets Internet Explorer */
+ font-family: 'LinuxLibertine';
+ src: url('linlibertine_r-webfont.eot');
+}
+
+@font-face {
+ /* This declaration targets everything else */
+ font-family: 'LinuxLibertine';
+ src: url(//:) format('no404'), url(data:font/woff;charset=utf-8;base64,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) format('woff'), url(data:font/truetype;charset=utf-8;base64,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AGUAcgAgAFQAZQByAG0AcwAgAG8AZgAgAGYAbwBsAGwAbwB3AGkAbgBnACAARgByAGUAZQAgAFMAbwBmAHQAdwBhAHIAZQAgAEwAaQBjAGUAbgBzAGUAcwA6AAoARwBQAEwAIAAoAEcAZQBuAGUAcgBhAGwAIABQAHUAYgBsAGkAYwAgAEwAaQBjAGUAbgBzAGUAKQAgAHcAaQB0AGgAIABmAG8AbgB0AC0AZQB4AGMAZQBwAHQAaQBvAG4AIABhAG4AZAAgAE8ARgBMACAAKABPAHAAZQBuACAARgBvAG4AdAAgAEwAaQBjAGUAbgBzAGUAKQAuAAoAQwByAGUAYQB0AGUAZAAgAHcAaQB0AGgAIABGAG8AbgB0AEYAbwByAGcAZQAgACgAaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGYAbwByAGcAZQAuAHMAZgAuAG4AZQB0ACkACgBTAGUAcAB0ACAAMgAwADAAMwAsACAAMgAwADAANAAsACAAMgAwADAANQAsACAAMgAwADAANgAsACAAMgAwADAANwAsACAAMgAwADAAOAAsACAAMgAwADAAOQAsACAAMgAwADEAMAAsACAAMgAwADEAMQBMAGkAbgB1AHgAIABMAGkAYgBlAHIAdABpAG4AZQBSAGUAZwB1AGwAYQByAHcAZQBiAGYAbwBuAHQATABpAG4AdQB4ACAATABpAGIAZQByAHQAaQBuAGUAIABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAA1AC4AMQAuADMAIABMAGkAbgBMAGkAYgBlAHIAdABpAG4AZQBUAGgAaQBzACAAZgBvAG4AdAAgAHcAYQBzACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAHEAdQBpAHIAcgBlAGwAIABHAGUAbgBlAHIAYQB0AG8AcgAuAAAAAgAAAAAAAP8PAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAB6AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERALIAswESARMBFAEVARYBFwd1bmkwMEEwB3VuaTAwQUQHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMTAHdW5pMjAxMQpmaWd1cmVkYXNoB3VuaTIwMkYHdW5pMjA1Rgd1bmlFMDAwB3VuaUUxMzgHdW5pRTE4OAd1bmlFMTg5AAAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALAEIEWwAytEsAUgRbIEZwIrsAMrRAGwBiBFsAMrRLAHIEWyBmQCK7EDRnYrRLAIIEW6AAZ//wACK7EDRnYrRFmwFCsAAA==) format('truetype'), url('linlibertine_r-webfont.svg#LinuxLibertineRegular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ /* This declaration targets Internet Explorer */
+ font-family: 'LinuxBiolinumKeyboard';
+ src: url('linbiolinum_k-webfont.eot');
+}
+
+@font-face {
+ /* This declaration targets everything else */
+ font-family: 'LinuxBiolinumKeyboard';
+ src: url(//:) format('no404'), url(data:font/woff;charset=utf-8;base64,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) format('woff'), url(data:font/truetype;charset=utf-8;base64,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AAEAAAC7BQEAEwAAAAAAAgABAAIAFgAAAQACEgAAAAAAAAAIAGYAAwABBAkAAAIuAAAAAwABBAkAAQAuAi4AAwABBAkAAgAOAlwAAwABBAkAAwAOAmoAAwABBAkABAA+AngAAwABBAkABQAcArYAAwABBAkABgAYAtIAAwABBAkAyABuAuoATABpAG4AdQB4ACAATABpAGIAZQByAHQAaQBuAGUAIABiAHkAIABQAGgAaQBsAGkAcABwACAASAAuACAAUABvAGwAbAAsAAoATwBwAGUAbgAgAEYAbwBuAHQAIAB1AG4AZABlAHIAIABUAGUAcgBtAHMAIABvAGYAIABmAG8AbABsAG8AdwBpAG4AZwAgAEYAcgBlAGUAIABTAG8AZgB0AHcAYQByAGUAIABMAGkAYwBlAG4AcwBlAHMAOgAKAEcAUABMACAAKABHAGUAbgBlAHIAYQBsACAAUAB1AGIAbABpAGMAIABMAGkAYwBlAG4AcwBlACkAIAB3AGkAdABoACAAZgBvAG4AdAAtAGUAeABjAGUAcAB0AGkAbwBuACAAYQBuAGQAIABPAEYATAAgACgATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACkALgAKAEMAcgBlAGEAdABlAGQAIAB3AGkAdABoACAARgBvAG4AdABGAG8AcgBnAGUAIAAoAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABmAG8AcgBnAGUALgBzAGYALgBuAGUAdAApAAoAUwBlAHAAdAAgADIAMAAwADMALAAgADIAMAAwADQALAAgADIAMAAwADUALAAgADIAMAAwADYALAAgADIAMAAwADcALAAgADIAMAAwADgALAAgADIAMAAwADkALAAgADIAMAAxADAALAAgADIAMAAxADEATABpAG4AdQB4ACAAQgBpAG8AbABpAG4AdQBtACAASwBlAHkAYgBvAGEAcgBkAFIAZQBnAHUAbABhAHIAdwBlAGIAZgBvAG4AdABMAGkAbgB1AHgAIABCAGkAbwBsAGkAbgB1AG0AIABLAGUAeQBiAG8AYQByAGQAIABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAwAC4ANgAuADEAIABMAGkAbgBCAGkAbwBsAGkAbgB1AG0ASwBUAGgAaQBzACAAZgBvAG4AdAAgAHcAYQBzACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAHEAdQBpAHIAcgBlAGwAIABHAGUAbgBlAHIAYQB0AG8AcgAuAAAAAgAAAAAAAP8PAFEAAAAAAAAAAAAAAAAAAAAAAAAAAAC7AAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERALIAswESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgHdW5pMDBBMAd1bmkwMEFEB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDEwB3VuaTIwMTEKZmlndXJlZGFzaAd1bmkyMDJGB3VuaTIwNUYHdW5pRTAwMAd1bmlFMTMxB3VuaUUxMzIHdW5pRTEzMwd1bmlFMTM0B3VuaUUxMzUHdW5pRTEzOAd1bmlFMTM5B3VuaUUxM0EHdW5pRTEzQwd1bmlFMTNEB3VuaUUxNjgHdW5pRTE2RQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxN0EHdW5pRTE3Qgd1bmlFMTdDB3VuaUUxN0QHdW5pRTE3RQd1bmlFMTdGB3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE4QQd1bmlFMThCB3VuaUUxOEMHdW5pRTE4RQd1bmlFMTkwB3VuaUUxOTEHdW5pRTE5Mgd1bmlFMTkzB3VuaUUxOTQHdW5pRTE5NQd1bmlFMTk2B3VuaUUxOTgHdW5pRTE5OQd1bmlFMTlBB3VuaUUxOUIHdW5pRTFBMAd1bmlFMUExB3VuaUUxQTIHdW5pRTFBMwd1bmlFMUE0B3VuaUUxQTUHdW5pRTFBNgd1bmlFMUE3B3VuaUUxQTgHdW5pRTFBOQd1bmlFMUFBB3VuaUUxQUIHdW5pRTFBQwd1bmlFMUFEB3VuaUUxQUUAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALABIEWwAytEsAIgRbIBFAIrsAMrRAGwAyBFsAMrRLAEIEWyAxACK7EDRnYrRLAFIEW6AAN//wACK7EDRnYrRFmwFCsAAA==) format('truetype'), url('linbiolinum_k-webfont.svg#LinuxBiolinumKeyboardRegular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ /* This declaration targets Internet Explorer */
+ font-family: 'LinuxBiolinum';
+ src: url('linbiolinum_r-webfont.eot');
+}
+
+@font-face {
+ /* This declaration targets everything else */
+ font-family: 'LinuxBiolinum';
+ src: url(//:) format('no404'), url(data:font/woff;charset=utf-8;base64,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) format('woff'), url(data:font/truetype;charset=utf-8;base64,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) format('truetype'), url('linbiolinum_r-webfont.svg#LinuxBiolinumRegular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: Debian and Ubuntu repositories</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes();}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Debian and Ubuntu repositories</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">November 2015</span>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_when_should_you_use_our_repositories">1. When should you use our repositories?</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In general, you should use the repositories of your distribution. Adding\r
+third-party repositories to your <tt>/etc/sources.list</tt> has security implications\r
+and makes your <tt>apt-get update</tt> take longer.</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+If you are using Debian stable\r
+</dt>\r
+<dd>\r
+<p>\r
+ The latest version of i3 will be in Debian testing quite soon. The version\r
+ in Debian stable can be old, however (we cannot update it after stable has\r
+ been released). The best way is to add Debian testing and tell <tt>apt</tt> to\r
+ prefer Debian stable. You should <strong>not</strong> use our repository.\r
+ Alternatively, you can also use\r
+ <a href="http://backports.debian.org/">stable-backports (e.g. wheezy-backports for\r
+ Debian wheezy)</a>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+If you are using Ubuntu\r
+</dt>\r
+<dd>\r
+<p>\r
+ Only a handful of packages are maintained by Ubuntu developers. The rest is\r
+ synchronized periodically from Debian, every 6 months. Therefore, Ubuntu\r
+ often includes old versions of i3. You should use our Ubuntu repository.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+If you want the latest i3 development version\r
+</dt>\r
+<dd>\r
+<p>\r
+ If you are using Debian (Debian-derived systems might work, too) or Ubuntu\r
+ and want the latest development version of i3, you should use our Debian\r
+ repository.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_ubuntu_repository">2. Ubuntu repository</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_stable_releases">2.1. Stable releases</h3>\r
+<div class="paragraph"><p>This Ubuntu repository is provided by sur5r and contains the latest stable\r
+release of i3. To use it, run the following commands:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># echo "deb http://debian.sur5r.net/i3/ $(lsb_release -c -s) universe" >> /etc/apt/sources.list\r
+# apt-get update\r
+# apt-get --allow-unauthenticated install sur5r-keyring\r
+# apt-get update\r
+# apt-get install i3</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>All Ubuntu versions which are currently supported by Ubuntu itself are also supported by\r
+this repository. See <a href="https://wiki.ubuntu.com/Releases">Ubuntu releases</a> for details.</p></div>\r
+<div class="paragraph"><p>Packages for unsupported Ubuntu versions might exist but may disappear any time.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_development_releases">2.2. Development releases</h3>\r
+<div class="paragraph"><p>This Ubuntu repository contains packages which are automatically built a few\r
+minutes after every commit. To use it, run the following commands:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># echo 'deb http://build.i3wm.org/ubuntu/trusty trusty main' >> /etc/apt/sources.list\r
+# apt-get update\r
+# apt-get --allow-unauthenticated install i3-autobuild-keyring\r
+# apt-get update\r
+# apt-get install i3</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Development versions are only available for the latest version of Ubuntu, which\r
+is trusty at the moment.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_debian_repository">3. Debian repository</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Our Debian repository contains packages which are automatically built a few\r
+minutes after every commit. To use it, run the following commands:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># echo 'deb http://build.i3wm.org/debian/sid sid main' > /etc/apt/sources.list.d/i3-autobuild.list\r
+# apt-get update\r
+# apt-get --allow-unauthenticated install i3-autobuild-keyring\r
+# apt-get update\r
+# apt-get install i3</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_preferring_the_autobuilder_version_of_i3">4. Preferring the autobuilder version of i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>On installations where you have multiple sources (stable and testing, or\r
+testing and unstable for example), <tt>apt-get install i3</tt> might not get you the\r
+autobuilder version.</p></div>\r
+<div class="paragraph"><p>To ensure that the autobuilt i3 packages will be preferred to the packages of\r
+your distribution, create the file\r
+<tt>/etc/apt/preferences.d/00-i3-autobuild.pref</tt> with the following contents:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>Package: i3*\r
+Pin: origin "build.i3wm.org"\r
+Pin-Priority: 1001</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Then, run <tt>apt-get update</tt> and install <tt>i3</tt>.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: i3 testsuite</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3 testsuite</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">September 2012</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document explains how the i3 testsuite works, how to use it and extend it.\r
+It is targeted at developers who not necessarily have been doing testing before\r
+or have not been testing in Perl before. In general, the testsuite is not of\r
+interest for end users.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_introduction">1. Introduction</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The i3 testsuite is a collection of files which contain testcases for various\r
+i3 features. Some of them test if a certain workflow works correctly (moving\r
+windows, focus behaviour, …). Others are regression tests and contain code\r
+which previously made i3 crash or lead to unexpected behaviour. They then check\r
+if i3 still runs (meaning it did not crash) and if it handled everything\r
+correctly.</p></div>\r
+<div class="paragraph"><p>The goal of having these tests is to automatically find problems and to\r
+automatically get a feel for whether a change in the source code breaks any\r
+existing feature. After every modification of the i3 sourcecode, the developer\r
+should run the full testsuite. If one of the tests fails, the corresponding\r
+problem should be fixed (or, in some cases, the testcase has to be modified).\r
+For every bugreport, a testcase should be written to test the correct\r
+behaviour. Initially, it will fail, but after fixing the bug, it will pass.\r
+This ensures (or increases the chance) that bugs which have been fixed once\r
+will never be found again.</p></div>\r
+<div class="paragraph"><p>Also, when implementing a new feature, a testcase might be a good way to be\r
+able to easily test if the feature is working correctly. Many developers will\r
+test manually if everything works. Having a testcase not only helps you with\r
+that, but it will also be useful for every future change.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_relevant_documentation">2. Relevant documentation</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Apart from this document, you should also have a look at:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+The "Modern Perl" book, which can be found at\r
+ <a href="http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf">http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The latest Perl documentation of the "i3test" (general testcase setup) and\r
+ "i3test::Test" (additional test instructions) modules:\r
+ <a href="http://build.i3wm.org/docs/lib-i3test.html">http://build.i3wm.org/docs/lib-i3test.html</a> respectively\r
+ <a href="http://build.i3wm.org/docs/lib-i3test-test.html">http://build.i3wm.org/docs/lib-i3test-test.html</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The latest documentation on i3’s IPC interface:\r
+ <a href="http://build.i3wm.org/docs/ipc.html">http://build.i3wm.org/docs/ipc.html</a>\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_implementation">3. Implementation</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>For several reasons, the i3 testsuite has been implemented in Perl:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Perl has a long tradition of testing. Every popular/bigger Perl module which\r
+ you can find on CPAN will not only come with documentation, but also with\r
+ tests. Therefore, the available infrastructure for tests is comprehensive.\r
+ See for example the excellent <a href="http://search.cpan.org/perldoc?Test::More">http://search.cpan.org/perldoc?Test::More</a>\r
+ and the referenced <a href="http://search.cpan.org/perldoc?Test::Tutorial">http://search.cpan.org/perldoc?Test::Tutorial</a>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Perl is widely available and has a well-working package infrastructure.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+The author is familiar with Perl :).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It is a good idea to use a different language for the tests than the\r
+ implementation itself.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>Please do not start programming language flamewars at this point.</p></div>\r
+<div class="sect2">\r
+<h3 id="_installing_the_dependencies">3.1. Installing the dependencies</h3>\r
+<div class="paragraph"><p>As usual with Perl programs, the testsuite ships with a <tt>Makefile.PL</tt>.\r
+This file specifies which Perl modules the testsuite depends on and can be used\r
+to install all of them.</p></div>\r
+<div class="paragraph"><p>Perl modules are distributed via CPAN, and there is the official, standard CPAN\r
+client, simply called <tt>cpan</tt>. It comes with every Perl installation and can be\r
+used to install the testsuite. Many users prefer to use the more modern\r
+<tt>cpanminus</tt> instead, though (because it asks no questions and just works):</p></div>\r
+<div class="paragraph"><p>The tests additionally require <tt>Xephyr(1)</tt> to run a nested X server. Install\r
+<tt>xserver-xephyr</tt> on Debian or <tt>xorg-xserver-xephyr</tt> on Arch Linux.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Installing testsuite dependencies using cpanminus (preferred)</div>\r
+<div class="content">\r
+<pre><tt>$ cd ~/i3/testcases\r
+$ sudo apt-get install cpanminus\r
+$ sudo cpanm .</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>If you don’t want to use cpanminus for some reason, the same works with cpan:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Installing testsuite dependencies using cpan</div>\r
+<div class="content">\r
+<pre><tt>$ cd ~/i3/testcases\r
+$ sudo cpan .</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>In case you don’t have root permissions, you can also install into your home\r
+directory, see <a href="http://michael.stapelberg.de/cpan/">http://michael.stapelberg.de/cpan/</a></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_mechanisms">3.2. Mechanisms</h3>\r
+<div class="sect3">\r
+<h4 id="_script_complete_run">3.2.1. Script: complete-run</h4>\r
+<div class="paragraph"><p>The testcases are run by a script called <tt>complete-run.pl</tt>. It runs all\r
+testcases by default, but you can be more specific and let it only run one or\r
+more testcases. Also, it takes care of starting up a separate instance of i3\r
+with an appropriate configuration file and creates a folder for each run\r
+containing the appropriate i3 logfile for each testcase. The latest folder can\r
+always be found under the symlink <tt>latest/</tt>. Unless told differently, it will\r
+run the tests on a separate X server instance (using Xephyr).</p></div>\r
+<div class="paragraph"><p>Xephyr will open a window where you can inspect the running test. You can run\r
+the tests without an X session with Xvfb, such as with <tt>xvfb-run\r
+./complete-run</tt>. This will also speed up the tests signficantly especially on\r
+machines without a powerful video card.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Example invocation of complete-run.pl+</div>\r
+<div class="content">\r
+<pre><tt>$ cd ~/i3/testcases\r
+\r
+$ ./complete-run.pl\r
+# output omitted because it is very long\r
+All tests successful.\r
+Files=78, Tests=734, 27 wallclock secs ( 0.38 usr 0.48 sys + 17.65 cusr 3.21 csys = 21.72 CPU)\r
+Result: PASS\r
+\r
+$ ./complete-run.pl t/04-floating.t\r
+[:3] i3 startup: took 0.07s, status = 1\r
+[:3] Running t/04-floating.t with logfile testsuite-2011-09-24-16-06-04-4.0.2-226-g1eb011a/i3-log-for-04-floating.t\r
+[:3] t/04-floating.t finished\r
+[:3] killing i3\r
+output for t/04-floating.t:\r
+ok 1 - use X11::XCB::Window;\r
+ok 2 - The object isa X11::XCB::Window\r
+ok 3 - Window is mapped\r
+ok 4 - i3 raised the width to 75\r
+ok 5 - i3 raised the height to 50\r
+ok 6 - i3 did not map it to (0x0)\r
+ok 7 - The object isa X11::XCB::Window\r
+ok 8 - i3 let the width at 80\r
+ok 9 - i3 let the height at 90\r
+ok 10 - i3 mapped it to x=1\r
+ok 11 - i3 mapped it to y=18\r
+ok 12 - The object isa X11::XCB::Window\r
+ok 13 - i3 let the width at 80\r
+ok 14 - i3 let the height at 90\r
+1..14\r
+\r
+All tests successful.\r
+Files=1, Tests=14, 0 wallclock secs ( 0.01 usr 0.00 sys + 0.19 cusr 0.03 csys = 0.23 CPU)\r
+Result: PASS\r
+\r
+$ less latest/i3-log-for-04-floating.t</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>If your attempt to run the tests with a bare call to ./complete-run.pl fails, try this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ ./complete-run.pl --parallel=1 --keep-xserver-output</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This will show the output of Xephyr, which is the X server implementation we\r
+use for testing.</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_coverage_testing">3.2.2. Coverage testing</h4>\r
+<div class="paragraph"><p>Coverage testing is possible with <tt>lcov</tt>, the front-end for GCC’s coverage\r
+testing tool <tt>gcov</tt>. The testcases can generate a nice html report that tells\r
+you which functions and lines were covered during a run of the tests. You can\r
+use this tool to judge how effective your tests are.</p></div>\r
+<div class="paragraph"><p>To use test coverage tools, first compile with coverage enabled.</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>COVERAGE=1 make</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Then run the tests with the <tt>--coverage-testing</tt> flag.</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>./complete-run.pl --coverage-testing</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Then open <tt>latest/i3-coverage/index.html</tt> in your web browser.</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_ipc_interface">3.2.3. IPC interface</h4>\r
+<div class="paragraph"><p>The testsuite makes extensive use of the IPC (Inter-Process Communication)\r
+interface which i3 provides. It is used for the startup process of i3, for\r
+terminating it cleanly and (most importantly) for modifying and getting the\r
+current state (layout tree).</p></div>\r
+<div class="paragraph"><p>See [<a href="http://i3wm.org/docs/ipc.html">http://i3wm.org/docs/ipc.html</a>] for documentation on the IPC interface.</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_x11_xcb">3.2.4. X11::XCB</h4>\r
+<div class="paragraph"><p>In order to open new windows, change attributes, get events, etc., the\r
+testsuite uses X11::XCB, a new (and quite specific to i3 at the moment) Perl\r
+module which uses the XCB protocol description to generate Perl bindings to\r
+X11. They work in a very similar way to libxcb (which i3 uses) and provide\r
+relatively high-level interfaces (objects such as <tt>X11::XCB::Window</tt>) aswell as\r
+access to the low-level interface, which is very useful when testing a window\r
+manager.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_filesystem_structure">3.3. Filesystem structure</h3>\r
+<div class="paragraph"><p>In the git root of i3, the testcases live in the folder <tt>testcases</tt>. This\r
+folder contains the <tt>complete-run.pl</tt> and a base configuration file which will\r
+be used for the tests. The different testcases (their file extension is .t, not\r
+.pl) themselves can be found in the conventionally named subfolder <tt>t</tt>:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Filesystem structure</div>\r
+<div class="content">\r
+<pre><tt>├── testcases\r
+│ ├── complete-run.pl\r
+│ ├── i3-test.config\r
+│ ├── lib\r
+│ │ ├── i3test.pm\r
+│ │ ├── SocketActivation.pm\r
+│ │ └── StartXDummy.pm\r
+│ ├── t\r
+│ │ ├── 00-load.t\r
+│ │ ├── 01-tile.t\r
+│ │ ├── 02-fullscreen.t\r
+│ │ ├── ...\r
+│ │ ├── omitted for brevity\r
+│ │ ├── ...\r
+│ │ └── 74-regress-focus-toggle.t</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_anatomy_of_a_testcase">4. Anatomy of a testcase</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Learning by example is definitely a good strategy when you are wondering how to\r
+write a testcase. Let’s take <tt>t/11-goto.t</tt> as an easy example and go through it\r
+step by step:</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Boilerplate</div>\r
+<div class="content">\r
+<pre><tt>#!perl\r
+# vim:ts=4:sw=4:expandtab\r
+\r
+use i3test;\r
+use File::Temp;\r
+\r
+my $x = X11::XCB::Connection->new;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This is what we call boilerplate. It exists at the top of every test file (to\r
+some extent). The first line is the shebang, which specifies that this file is\r
+a Perl script. The second line contains VIM specific settings on how to\r
+edit/format this file (use spaces instead of tabs, indent using 4 spaces).\r
+Afterwards, the <tt>i3test</tt> module is used. This module contains i3 testsuite\r
+specific functions which you are strongly encouraged to use. They make writing\r
+testcases a lot easier and will make it easier for other people to read your\r
+tests.</p></div>\r
+<div class="paragraph"><p>The next line uses the <tt>File::Temp</tt> module. This is specific to this testcase,\r
+because it needs to generate a temporary name during the test. Many testcases\r
+use only the <tt>i3test</tt> module.</p></div>\r
+<div class="paragraph"><p>The last line opens a connection to X11. You might or might not need this in\r
+your testcase, depending on whether you are going to open windows (etc.) or\r
+only use i3 commands.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Setup</div>\r
+<div class="content">\r
+<pre><tt>my $tmp = fresh_workspace;\r
+\r
+cmd 'split h';</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The first line calls i3test’s <tt>fresh_workspace</tt> function which looks for a\r
+currently unused workspace, switches to it, and returns its name. The variable\r
+<tt>$tmp</tt> will end up having a value such as <tt>"/tmp/87kBVcHbA9"</tt>. Note that this\r
+is not (necessarily) a valid path, it’s just a random workspace name.</p></div>\r
+<div class="paragraph"><p>So, now that we are on a new workspace, we ensure that the workspace uses\r
+horizontal orientation by issuing the <tt>split h</tt> command (see the i3 User’s\r
+Guide for a list of commands). This is not strictly necessary, but good style.\r
+In general, the <tt>cmd</tt> function executes the specified i3 command by using the\r
+IPC interface and returns once i3 acknowledged the command.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Setup</div>\r
+<div class="content">\r
+<pre><tt>#####################################################################\r
+# Create two windows and make sure focus switching works\r
+#####################################################################\r
+\r
+my $top = open_window($x);\r
+my $mid = open_window($x);\r
+my $bottom = open_window($x);</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>In every major section of a testcase, you should put a comment like the one\r
+above. This makes it immediately clear how the file is structured.</p></div>\r
+<div class="paragraph"><p>The <tt>open_window</tt> function opens a standard window, which will then be put into\r
+tiling mode by i3. If you want a floating window, use the\r
+<tt>open_floating_window</tt> function. These functions accept the same parameters as\r
+<tt>X11::XCB::Window→new</tt>, see the i3test documentation at TODO.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Helper function</div>\r
+<div class="content">\r
+<pre><tt>#\r
+# Returns the input focus after sending the given command to i3 via IPC\r
+# and syncing with i3\r
+#\r
+sub focus_after {\r
+ my $msg = shift;\r
+\r
+ cmd $msg;\r
+ sync_with_i3 $x;\r
+ return $x->input_focus;\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This section defines a helper function which will be used over and over in this\r
+testcase. If you have code which gets executed more than once or twice\r
+(depending on the length of your test, use your best judgement), please put it\r
+in a function. Tests should be short, concise and clear.</p></div>\r
+<div class="paragraph"><p>The <tt>focus_after</tt> function executes a command and returns the X11 focus after\r
+the command was executed. The <tt>sync_with_i3</tt> command makes sure that i3 could\r
+push its state to X11. See <a href="#i3_sync">[i3_sync]</a> to learn how this works exactly.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Test assumptions</div>\r
+<div class="content">\r
+<pre><tt>$focus = $x->input_focus;\r
+is($focus, $bottom->id, "Latest window focused");\r
+\r
+$focus = focus_after('focus left');\r
+is($focus, $mid->id, "Middle window focused");</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Now, we run the first two real tests. They use <tt>Test::More</tt>'s <tt>is</tt> function,\r
+which compares two values and prints the differences if they are not the same.\r
+After the arguments, we supply a short comment to indicate what we are testing\r
+here. This makes it vastly more easy for the developer to spot which testcase\r
+is the problem in case one fails.</p></div>\r
+<div class="paragraph"><p>The first test checks that the most recently opened window is focused.\r
+Afterwards, the command <tt>focus left</tt> is issued and it is verified that the\r
+middle window now has focus.</p></div>\r
+<div class="paragraph"><p>Note that this is not a comprehensive test of the <tt>focus</tt> command — we would\r
+have to test wrapping, focus when using a more complex layout, focusing the\r
+parent/child containers, etc. But that is not the point of this testcase.\r
+Instead, we just want to know if <tt>$x→input_focus</tt> corresponds with what we are\r
+expecting. If not, something is completely wrong with the test environment and\r
+this trivial test will fail.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Test that the feature does not work (yet)</div>\r
+<div class="content">\r
+<pre><tt>#####################################################################\r
+# Now goto a mark which does not exist\r
+#####################################################################\r
+\r
+my $random_mark = mktemp('mark.XXXXXX');\r
+\r
+$focus = focus_after(qq|[con_mark="$random_mark"] focus|);\r
+is($focus, $mid->id, "focus unchanged");</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Syntax hint: The qq keyword is the interpolating quote operator. It lets you\r
+chose a quote character (in this case the <tt>|</tt> character, a pipe). This makes\r
+having double quotes in our string easy.</p></div>\r
+<div class="paragraph"><p>In this new major section, a random mark (mark is an identifier for a window,\r
+see "VIM-like marks" in the i3 User’s Guide) will be generated. Afterwards, we\r
+test that trying to focus that mark will not do anything. This is important: Do\r
+not only test that using a feature has the expected outcome, but also test that\r
+using it without properly initializing it does no harm. This command could for\r
+example have changed focus anyways (a bug) or crash i3 (obviously a bug).</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Test that the feature does work</div>\r
+<div class="content">\r
+<pre><tt>cmd "mark $random_mark";\r
+\r
+$focus = focus_after('focus left');\r
+is($focus, $top->id, "Top window focused");\r
+\r
+$focus = focus_after(qq|[con_mark="$random_mark"] focus|);\r
+is($focus, $mid->id, "goto worked");</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Remember: Focus was on the middle window (we verified that earlier in "Test\r
+assumptions"). We now mark the middle window with our randomly generated mark.\r
+Afterwards, we switch focus away from the middle window to be able to tell if\r
+focusing it via its mark will work. If the test works, the goto command seems\r
+to be working.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Test corner case</div>\r
+<div class="content">\r
+<pre><tt># check that we can specify multiple criteria\r
+\r
+$focus = focus_after('focus left');\r
+is($focus, $top->id, "Top window focused");\r
+\r
+$focus = focus_after(qq|[con_mark="$random_mark" con_mark="$random_mark"] focus|);\r
+is($focus, $mid->id, "goto worked");</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Now we test the same feature, but specifying the mark twice in the command.\r
+This should have no effect, but let’s be sure: test it and see if things go\r
+wrong.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Test second code path</div>\r
+<div class="content">\r
+<pre><tt>#####################################################################\r
+# Check whether the focus command will switch to a different\r
+# workspace if necessary\r
+#####################################################################\r
+\r
+my $tmp2 = fresh_workspace;\r
+\r
+is(focused_ws(), $tmp2, 'tmp2 now focused');\r
+\r
+cmd qq|[con_mark="$random_mark"] focus|;\r
+\r
+is(focused_ws(), $tmp, 'tmp now focused');</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This part of the test checks that focusing windows by mark works across\r
+workspaces. It uses i3test’s <tt>focused_ws</tt> function to get the current\r
+workspace.</p></div>\r
+<div class="listingblock">\r
+<div class="title">t/11-goto.t: Test second code path</div>\r
+<div class="content">\r
+<pre><tt>done_testing;</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The end of every testcase has to contain the <tt>done_testing</tt> line. This tells\r
+<tt>complete-run.pl</tt> that the test was finished successfully. If it does not\r
+occur, the test might have crashed during execution — some of the reasons why\r
+that could happen are bugs in the used modules, bugs in the testcase itself or\r
+an i3 crash resulting in the testcase being unable to communicate with i3 via\r
+IPC anymore.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="i3_sync">5. Appendix A: The i3 sync protocol</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Consider the following situation: You open two windows in your testcase, then\r
+you use <tt>focus left</tt> and want to verify that the X11 focus has been updated\r
+properly. Sounds simple, right? Let’s assume you use this straight-forward\r
+implementation:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Racey focus testcase</div>\r
+<div class="content">\r
+<pre><tt>my $left = open_window($x);\r
+my $right = open_window($x);\r
+cmd 'focus left';\r
+is($x->input_focus, $left->id, 'left window focused');</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>However, the test fails. Sometimes. Apparantly, there is a race condition in\r
+your test. If you think about it, this is because you are using two different\r
+pieces of software: You tell i3 to update focus, i3 confirms that, and then you\r
+ask X11 to give you the current focus. There is a certain time i3 needs to\r
+update the X11 state. If the testcase gets CPU time before X11 processed i3’s\r
+requests, the test will fail.</p></div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="i3-sync.png" alt="Diagram of the race condition" />\r
+</div>\r
+<div class="title">Figure 1. Diagram of the race condition</div>\r
+</div>\r
+<div class="paragraph"><p>One way to "solve" this would be to add <tt>sleep 0.5;</tt> after the <tt>cmd</tt> call.\r
+After 0.5 seconds it should be safe to assume that focus has been updated,\r
+right?</p></div>\r
+<div class="paragraph"><p>In practice, this usually works. However, it has several problems:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+This is obviously not a clean solution, but a workaround. Ugly.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+On very slow machines, this might not work. Unlikely, but in different\r
+ situations (a delay to wait for i3 to startup) the necessary time is much\r
+ harder to guess, even for fast machines.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+This <strong>wastes a lot of time</strong>. Usually, your computer is much faster than 0.5s\r
+ to update the status. However, sometimes, it might take 0.4s, so we can’t\r
+ make it <tt>sleep 0.1</tt>.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>To illustrate how grave the problem with wasting time actually is: Before\r
+removing all sleeps from the testsuite, a typical run using 4 separate X\r
+servers took around 50 seconds on my machine. After removing all the sleeps,\r
+we achieved times of about 25 seconds. This is very significant and influences\r
+the way you think about tests — the faster they are, the more likely you are\r
+to check whether everything still works quite often (which you should).</p></div>\r
+<div class="paragraph"><p>What I am trying to say is: Delays adds up quickly and make the test suite\r
+less robust.</p></div>\r
+<div class="paragraph"><p>The real solution for this problem is a mechanism which I call "the i3 sync\r
+protocol". The idea is to send a request (which does not modify state) via X11\r
+to i3 which will then be answered. Due to the request’s position in the event\r
+queue (<strong>after</strong> all previous events), you can be sure that by the time you\r
+receive the reply, all other events have been dealt with by i3 (and, more\r
+importantly, X11).</p></div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="i3-sync-working.png" alt="Diagram of the i3 sync solution" />\r
+</div>\r
+<div class="title">Figure 2. Diagram of the i3 sync solution</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_implementation_details">5.1. Implementation details</h3>\r
+<div class="paragraph"><p>The client which wants to sync with i3 initiates the protocol by sending a\r
+ClientMessage to the X11 root window:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Send ClientMessage</div>\r
+<div class="content">\r
+<pre><tt># Generate a ClientMessage, see xcb_client_message_t\r
+my $msg = pack "CCSLLLLLLL",\r
+ CLIENT_MESSAGE, # response_type\r
+ 32, # format\r
+ 0, # sequence\r
+ $root, # destination window\r
+ $x->atom(name => 'I3_SYNC')->id,\r
+\r
+ $_sync_window->id, # data[0]: our own window id\r
+ $myrnd, # data[1]: a random value to identify the request\r
+ 0,\r
+ 0,\r
+ 0;\r
+\r
+# Send it to the root window -- since i3 uses the SubstructureRedirect\r
+# event mask, it will get the ClientMessage.\r
+$x->send_event(0, $root, EVENT_MASK_SUBSTRUCTURE_REDIRECT, $msg);</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>i3 will then reply with the same ClientMessage, sent to the window specified in\r
+<tt>data[0]</tt>. In the reply, <tt>data[0]</tt> and <tt>data[1]</tt> are exactly the same as in the\r
+request. You should use a random value in <tt>data[1]</tt> and check that you received\r
+the same one when getting the reply.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_appendix_b_socket_activation">6. Appendix B: Socket activation</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Socket activation is a mechanism which was made popular by systemd, an init\r
+replacement. It basically describes creating a listening socket before starting\r
+a program. systemd will invoke the program only when an actual connection to\r
+the socket is made, hence the term socket activation.</p></div>\r
+<div class="paragraph"><p>The interesting part of this (in the i3 context) is that you can very precisely\r
+detect when the program is ready (finished its initialization).</p></div>\r
+<div class="sect2">\r
+<h3 id="_preparing_the_listening_socket">6.1. Preparing the listening socket</h3>\r
+<div class="paragraph"><p><tt>complete-run.pl</tt> will create a listening UNIX socket which it will then pass\r
+to i3. This socket will be used by i3 as an additional IPC socket, just like\r
+the one it will create on its own. Passing the socket happens implicitly\r
+because children will inherit the parent’s sockets when fork()ing and sockets\r
+will continue to exist after an exec() call (unless CLOEXEC is set of course).</p></div>\r
+<div class="paragraph"><p>The only explicit things <tt>complete-run.pl</tt> has to do is setting the <tt>LISTEN_FDS</tt>\r
+environment variable to the number of sockets which exist (1 in our case) and\r
+setting the <tt>LISTEN_PID</tt> environment variable to the current process ID. Both\r
+variables are necessary so that the program (i3) knows how many sockets it\r
+should use and if the environment variable is actually intended for it. i3 will\r
+then start looking for sockets at file descriptor 3 (since 0, 1 and 2 are used\r
+for stdin, stdout and stderr, respectively).</p></div>\r
+<div class="paragraph"><p>The actual Perl code which sets up the socket, fork()s, makes sure the socket\r
+has file descriptor 3 and sets up the environment variables follows (shortened\r
+a bit):</p></div>\r
+<div class="listingblock">\r
+<div class="title">Setup socket and environment</div>\r
+<div class="content">\r
+<pre><tt>my $socket = IO::Socket::UNIX->new(\r
+ Listen => 1,\r
+ Local => $args{unix_socket_path},\r
+);\r
+\r
+my $pid = fork;\r
+if ($pid == 0) {\r
+ $ENV{LISTEN_PID} = $$;\r
+ $ENV{LISTEN_FDS} = 1;\r
+\r
+ # Only pass file descriptors 0 (stdin), 1 (stdout),\r
+ # 2 (stderr) and 3 (socket) to the child.\r
+ $^F = 3;\r
+\r
+ # If the socket does not use file descriptor 3 by chance\r
+ # already, we close fd 3 and dup2() the socket to 3.\r
+ if (fileno($socket) != 3) {\r
+ POSIX::close(3);\r
+ POSIX::dup2(fileno($socket), 3);\r
+ }\r
+\r
+ exec "/usr/bin/i3";\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_waiting_for_a_reply">6.2. Waiting for a reply</h3>\r
+<div class="paragraph"><p>In the parent process, we want to know when i3 is ready to answer our IPC\r
+requests and handle our windows. Therefore, after forking, we immediately close\r
+the listening socket (i3 will handle this side of the socket) and connect to it\r
+(remember, we are talking about a named UNIX socket) as a client. This connect\r
+call will immediately succeed because the kernel buffers it. Then, we send a\r
+request (of type GET_TREE, but that is not really relevant). Writing data to\r
+the socket will also succeed immediately because, again, the kernel buffers it\r
+(only up to a certain amount of data of course).</p></div>\r
+<div class="paragraph"><p>Afterwards, we just blockingly wait until we get an answer. In the child\r
+process, i3 will setup the listening socket in its event loop. Immediately\r
+after actually starting the event loop, it will notice a new client connecting\r
+(the parent process) and handle its request. Since all initialization has been\r
+completed successfully by the time the event loop is entered, we can now assume\r
+that i3 is ready.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_timing_and_conclusion">6.3. Timing and conclusion</h3>\r
+<div class="paragraph"><p>A beautiful feature of this mechanism is that it does not depend on timing. It\r
+does not matter when the child process gets CPU time or when the parent process\r
+gets CPU time. On heavily loaded machines (or machines with multiple CPUs,\r
+cores or unreliable schedulers), this makes waiting for i3 much more robust.</p></div>\r
+<div class="paragraph"><p>Before using socket activation, we typically used a <tt>sleep(1)</tt> and hoped that\r
+i3 was initialized by that time. Of course, this breaks on some (slow)\r
+computers and wastes a lot of time on faster computers. By using socket\r
+activation, we decreased the total amount of time necessary to run all tests\r
+(72 files at the time of writing) from > 100 seconds to 16 seconds. This makes\r
+it significantly more attractive to run the test suite more often (or at all)\r
+during development.</p></div>\r
+<div class="paragraph"><p>An alternative approach to using socket activation is polling for the existance\r
+of the IPC socket and connecting to it. While this might be slightly easier to\r
+implement, it wastes CPU time and is considerably uglier than this solution\r
+:). After all, <tt>lib/SocketActivation.pm</tt> contains only 54 SLOC.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/png" href="/favicon.png">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.4" />\r
+<title>i3: Tree branch: Migrating</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="http://bugs.i3wm.org/">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>Tree branch: Migrating</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael+i3@stapelberg.de">michael+i3@stapelberg.de</a>></tt></span><br />\r
+<span id="revdate">November 2010</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_introduction">1. Introduction</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The tree branch (referring to a branch of i3 in the git repository) is the new\r
+version of i3. Due to the very deep changes and heavy refactoring of the source\r
+source, we decided to develop it in a seperate branch (instead of using the\r
+next/master-branch system like before).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_current_status">2. Current status</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Currently, the code is mostly working. Some of the i3 core developers have been\r
+using the tree branch version for a few weeks now. So, if you are eager to try\r
+out the new features and help us find bugs, give it a try!</p></div>\r
+<div class="paragraph"><p>At the same time, a word of warning is appropriate: This version of i3 might\r
+crash unexpectedly, so please be careful with important data (do not work for\r
+two days without saving…).</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_getting_the_latest_tree_branch_version">3. Getting the latest tree branch version</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Check out the latest version:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ git clone -b tree git://code.stapelberg.de/i3</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Then build and install it (has the same dependencies as the latest stable i3\r
+version):</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ cd i3\r
+$ make\r
+$ sudo cp i3 /usr/bin/i3-tree</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>…and execute <tt>i3-tree</tt> instead of <tt>i3</tt> in your Xsession.</p></div>\r
+<div class="paragraph"><p><strong>IMPORTANT:</strong> Please note that configuration file compatibility is not yet done.\r
+So, make sure you use/customize the provided <tt>i3.config</tt> file.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_tree">4. Tree</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The most important change and reason for the name is that i3 stores all\r
+information about the X11 outputs, workspaces and layout of the windows on them\r
+in a tree. The root node is the X11 root window, followed by the X11 outputs,\r
+then workspaces and finally the windows themselve. In previous versions of i3\r
+we had multiple lists (of outputs, workspaces) and a table for each workspace.\r
+That approach turned out to be complicated to use (snapping), understand and\r
+implement.</p></div>\r
+<div class="sect2">\r
+<h3 id="_the_tree_consists_of_containers">4.1. The tree consists of Containers</h3>\r
+<div class="paragraph"><p>The building blocks of our tree are so called <tt>Containers</tt>. A <tt>Container</tt> can\r
+host a window (meaning an X11 window, one that you can actually see and use,\r
+like a browser). Alternatively, it could contain one or more <tt>Containers</tt>. A\r
+simple example is the workspace: When you start i3 with a single monitor, a\r
+single workspace and you open two terminal windows, you will end up with a tree\r
+like this:</p></div>\r
+<div class="imageblock" style="float:right;">\r
+<div class="content">\r
+<img src="tree-layout2.png" alt="layout2" />\r
+</div>\r
+</div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot4.png" alt="shot4" />\r
+</div>\r
+<div class="title">Figure 1. Two terminals on standard workspace</div>\r
+</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_orientation_and_split_containers">4.2. Orientation and Split Containers</h3>\r
+<div class="paragraph" id="OrientationSplit"><p>It is only natural to use so-called <tt>Split Containers</tt> in order to build a\r
+layout when using a tree as data structure. In i3, every <tt>Container</tt> has an\r
+orientation (horizontal, vertical or unspecified). So, in our example with the\r
+workspace, the default orientation of the workspace <tt>Container</tt> is horizontal\r
+(most monitors are widescreen nowadays). If you change the orientation to\r
+vertical (<tt>Alt+v</tt> in the default config) and <strong>then</strong> open two terminals, i3 will\r
+configure your windows like this:</p></div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot2.png" alt="shot2" />\r
+</div>\r
+<div class="title">Figure 2. Vertical Workspace Orientation</div>\r
+</div>\r
+<div class="paragraph"><p>An interesting new feature of the tree branch is the ability to split anything:\r
+Let’s assume you have two terminals on a workspace (with horizontal\r
+orientation), focus is on the right terminal. Now you want to open another\r
+terminal window below the current one. If you would just open a new terminal\r
+window, it would show up to the right due to the horizontal workspace\r
+orientation. Instead, press <tt>Alt+v</tt> to create a <tt>Vertical Split Container</tt> (to\r
+open a <tt>Horizontal Split Container</tt>, use <tt>Alt+h</tt>). Now you can open a new\r
+terminal and it will open below the current one:</p></div>\r
+<div class="imageblock" style="float:right;">\r
+<div class="content">\r
+<img src="tree-layout1.png" alt="Layout" />\r
+</div>\r
+</div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot1.png" alt="shot" />\r
+</div>\r
+<div class="title">Figure 3. Vertical Split Container</div>\r
+</div>\r
+<div style="clear:both;"></div>\r
+<div class="paragraph"><p>You probably guessed it already: There is no limit on how deep your hierarchy\r
+of splits can be.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_level_up">4.3. Level up</h3>\r
+<div class="paragraph"><p>Let’s stay with our example from above. We have a terminal on the left and two\r
+vertically split terminals on the right, focus is on the bottom right one. When\r
+you open a new terminal, it will open below the current one.</p></div>\r
+<div class="paragraph"><p>So, how can you open a new terminal window to the <strong>right</strong> of the current one?\r
+The solution is to use <tt>level up</tt>, which will focus the <tt>Parent Container</tt> of\r
+the current <tt>Container</tt>. In this case, you would focus the <tt>Vertical Split\r
+Container</tt> which is <strong>inside</strong> the horizontally oriented workspace. Thus, now new\r
+windows will be opened to the right of the <tt>Vertical Split Container</tt>:</p></div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot3.png" alt="shot3" />\r
+</div>\r
+<div class="title">Figure 4. Level Up, then open new terminal</div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_commands">5. Commands</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The authoritive reference for commands is <tt>src/cmdparse.y</tt>. You can also find\r
+most commands in <tt>i3.config</tt>. Here comes a short overview over the important\r
+commands:</p></div>\r
+<div class="sect2">\r
+<h3 id="_manipulating_layout">5.1. Manipulating layout</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>layout <default|stacked|tabbed></tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_focus">5.2. Changing Focus</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>next <horizontal|vertical>\r
+prev <horizontal|vertical></tt></pre>\r
+</div></div>\r
+<div class="listingblock">\r
+<div class="title">Examples:</div>\r
+<div class="content">\r
+<pre><tt>bindsym Mod1+Left prev h\r
+bindsym Mod1+Right next h\r
+bindsym Mod1+Down next v\r
+bindsym Mod1+Up prev v</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving">5.3. Moving</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>move <before|after> <horizontal|vertical></tt></pre>\r
+</div></div>\r
+<div class="listingblock">\r
+<div class="title">Examples:</div>\r
+<div class="content">\r
+<pre><tt>bindsym Mod1+Shift+Left move before h\r
+bindsym Mod1+Shift+Right move after h\r
+bindsym Mod1+Shift+Down move before v\r
+bindsym Mod1+Shift+Up move after v</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_workspace">5.4. Changing workspace</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace <name></tt></pre>\r
+</div></div>\r
+<div class="listingblock">\r
+<div class="title">Examples:</div>\r
+<div class="content">\r
+<pre><tt>bindsym Mod1+1 workspace 1\r
+bindsym Mod1+2 workspace 2\r
+…</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving_containers_to_workspaces">5.5. Moving Containers to workspaces</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>move workspace <name></tt></pre>\r
+</div></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym Mod1+Shift+1 move workspace 1\r
+bindsym Mod1+Shift+2 move workspace 2\r
+…</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_border_style">5.6. Changing border style</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>border <normal|none|1pixel></tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_container_mode">5.7. Changing container mode</h3>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mode <tiling|floating|toggle></tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_the_rest">6. The rest</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>What is not mentioned here explicitly is either unchanged and can be read in\r
+the <a href="http://i3.zekjur.net/docs/userguide.html">i3 User’s Guide</a> or it is not yet\r
+implemented.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: i3wm T-shirts</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3wm T-shirts</h1>\r
+<span id="author">Stefan Schroeder</span><br />\r
+<span id="email"><tt><<a href="mailto:ondekoza@gmail.com">ondekoza@gmail.com</a>></tt></span><br />\r
+<span id="revdate">December 2013</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_you_can_show_everybody_your_appreciation_for_i3wm_by_wearing_our_t_shirt">1. You can show everybody your appreciation for i3wm by wearing our t-shirt</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The i3wm team is collaborating with a shirt manufacturer in Germany\r
+that provides high quality t-shirts with a cool i3wm logo.</p></div>\r
+<div class="paragraph"><p>Since the website is in German only, we want to help with your order\r
+in case that German is not your primary language.</p></div>\r
+<div class="sect2">\r
+<h3 id="_the_shirt">1.1. The shirt</h3>\r
+<div class="paragraph"><p>The shirt is black, has white text and the light blue official i3wm logo. It is\r
+available in eight sizes (XS, S, M, L, XL, XXL, XXXL, XXXXL).</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_the_order_process_for_new_customers">1.2. The order process for new customers</h3>\r
+<div class="paragraph"><p>Open <a href="http://www.freddruck.de/">http://www.freddruck.de/</a> in your browser.</p></div>\r
+<div class="paragraph"><p>In the navigation bar on the left, select <em>i3-tiling window manager</em>.</p></div>\r
+<div class="paragraph"><p>Select the link below the shirt of your choice. (At the time of\r
+this writing only black was available.)</p></div>\r
+<div class="paragraph"><p>On the next page you can select the size (Größe) and\r
+the number of shirts (=Anzahl) of that size you want to order.</p></div>\r
+<div class="paragraph"><p>Add to cart by clicking <em>in den Korb</em>.</p></div>\r
+<div class="paragraph"><p>In the upper right corner click <em>Kasse</em> (checkout).</p></div>\r
+<div class="paragraph"><p>You now have to register with the freddruck-website. Click\r
+"Weiter" below the left white box titled "Neuer Kunde"\r
+(new customer).</p></div>\r
+<div class="paragraph"><p>On the next page you have to supply your personal information:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+Vorname\r
+</dt>\r
+<dd>\r
+<p>\r
+First name\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Nachname\r
+</dt>\r
+<dd>\r
+<p>\r
+Last name\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Geburtsdatum\r
+</dt>\r
+<dd>\r
+<p>\r
+Birth date, format DD.MM.YYYY\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Firmenname\r
+</dt>\r
+<dd>\r
+<p>\r
+Company name, if applicable\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Address\r
+</dt>\r
+<dt class="hdlist1">\r
+Strasse/Nr.\r
+</dt>\r
+<dd>\r
+<p>\r
+Street and number\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Postleitzahl\r
+</dt>\r
+<dd>\r
+<p>\r
+ZIP code\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Ort\r
+</dt>\r
+<dd>\r
+<p>\r
+City\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Land\r
+</dt>\r
+<dd>\r
+<p>\r
+Country (“Bitte wählen” means please choose)\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Telefonnummer\r
+</dt>\r
+<dd>\r
+<p>\r
+Phone number. Don’t forget your country code, e.g. +1-555-2368.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Telefaxnummer\r
+</dt>\r
+<dd>\r
+<p>\r
+Fax number\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Newsletter\r
+</dt>\r
+<dd>\r
+<p>\r
+A checkbox for whether you want to receive their newsletter.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Passwort\r
+</dt>\r
+<dd>\r
+<p>\r
+Password\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Bestätigung\r
+</dt>\r
+<dd>\r
+<p>\r
+Confirmation\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Then click “Weiter” (Continue).</p></div>\r
+<div class="paragraph"><p>On the next page you should get the confirmation\r
+that your account was successfully created. (“Ihr Konto wurde mit Erfolg eröffnet!”)</p></div>\r
+<div class="paragraph"><p>You will also get a confirmation email about the\r
+creation of the account (that’s not your order yet!).</p></div>\r
+<div class="paragraph"><p>Click “Weiter” (Next) to continue.</p></div>\r
+<div class="paragraph"><p>On the next page you can review your destination address.</p></div>\r
+<div class="paragraph"><p>The text field allows you to add a comment. Just leave it blank.</p></div>\r
+<div class="paragraph"><p>Click “Weiter” again, to choose the payment options.</p></div>\r
+<div class="paragraph"><p>On the payment page you can choose your method of payment:</p></div>\r
+<div class="paragraph"><p>Offered are</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+Check (to be sent in advance)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Paypal\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+on pickup\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>On the next page you can finally confirm your order.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+---
+layout: default
+title: Docs
+group: Docs
+---
+<div id="content" class="usergen">
+<h1>User-contributed article: Using conky with i3bar</h1>
+
+<p>
+As explained in the i3 documentation, it’s possible to <a
+href="http://i3wm.org/docs/userguide.html#_displaying_a_status_line">use an
+external program to build the status information displayed
+by i3bar</a>.
+One of those programs is <a href="http://conky.sourceforge.net/">conky, a free,
+light-weight system monitor</a>.
+</p>
+
+<p>
+Since conky does not support the i3bar protocol by default, we could use the
+plain text output format, but then we cannot have i3bar display colors. This
+article shows how to configure conky to have colors with i3bar.
+</p>
+
+<p>
+As explained in more detail in the <a
+href="http://i3wm.org/docs/i3bar-protocol.html">i3bar protocol description</a>,
+i3bar can receive input serialized as JSON, and this way has color support,
+among other things (urgency flag, shortening description if more space is needed).
+</p>
+
+<h2>Example of colored status with conky</h2>
+
+<p>
+First of all we have to understand how i3bar expects JSON input:
+We have to provide an "infinite array", each element on that array is a "status
+line" that is displayed at a certain moment by i3bar.
+</p>
+
+<p>
+Let's make a short example.
+We want to build a very simple status that displays the amunt of free space in
+home folder and the percentage of used RAM.
+Here's a sample JSON text for achieving our goal:
+</p>
+
+<pre><tt>{"version":1}
+[
+ [].
+
+ [ { "full_text":"Home 84.0G Free", "color":"#ffffff" },
+ { "full_text":"RAM 32%" , "color":"#ffffff" } ],
+
+ [ { "full_text":"Home 84.0G Free", "color":"#ffffff" },
+ { "full_text":"RAM 34%" , "color":"#ffffff" } ],
+
+ [....],
+ [....],
+ ...</tt></pre>
+
+<p>
+The first line tells i3bar that we are using JSON input.
+The second line is the opening of the "infinite array".
+Each line after second is one "instance status" to be displayed in i3bar,
+</p>
+
+<h2>Wrapper script</h2>
+
+<p>
+To obtain this output with conky we have to use it in combination with a short script.
+The script will write down the "fixed" part of the output (first and second line), then it will call conky.
+It will be conky’s duty to write each of the "instances".
+</p>
+
+<p>
+The script is quite simple:
+</p>
+
+<pre><tt>#!/bin/sh
+
+# Send the header so that i3bar knows we want to use JSON:
+echo '{"version":1}'
+
+# Begin the endless array.
+echo '['
+
+# We send an empty first array of blocks to make the loop simpler:
+echo '[],'
+
+# Now send blocks with information forever:
+exec conky -c $HOME/.conkyrc</tt></pre>
+
+<p>
+Let's save this script as <tt>conky-i3bar</tt> in <tt>$HOME/bin</tt>.
+In the i3 config file the <tt>bar</tt> config will be something like that
+</p>
+
+<pre><tt>bar {
+ status_command $HOME/bin/conky-i3bar
+}</tt></pre>
+
+<h2>conky configuration</h2>
+
+<p>
+Now we have to write a <tt>~/.conkyrc</tt> file in order to obtain the desired status:
+</p>
+
+<pre><tt>[{ "full_text":"Home 84.0G Free" , "color":"#ffffff" },
+ { "full_text":"RAM 32%" , "color":"#ffffff" }],</tt></pre>
+
+<p>
+Here's a sample conkyrc that updates every 2 seconds. Just to make things a litte bit more exciting
+we put a condition in the script in order to write the occupied RAM in red if the amount is more than 90%:
+</p>
+
+<pre><tt>out_to_x no
+own_window no
+out_to_console yes
+background no
+max_text_width 0
+
+# Update interval in seconds
+update_interval 2.0
+
+# This is the number of times Conky will update before quitting.
+# Set to zero to run forever.
+total_run_times 0
+
+# Shortens units to a single character (kiB->k, GiB->G, etc.). Default is off.
+short_units yes
+
+# How strict should if_up be when testing an interface for being up?
+# The value is one of up, link or address, to check for the interface
+# being solely up, being up and having link or being up, having link
+# and an assigned IP address.
+if_up_strictness address
+
+# Add spaces to keep things from moving about? This only affects certain objects.
+# use_spacer should have an argument of left, right, or none
+use_spacer left
+
+# Force UTF8? note that UTF8 support required XFT
+override_utf8_locale no
+
+# number of cpu samples to average
+# set to 1 to disable averaging
+cpu_avg_samples 2
+
+# Stuff after 'TEXT' will be formatted on screen
+TEXT
+
+# JSON for i3bar
+{% raw %}
+ [{ "full_text" : "Home ${fs_free /home} Free" , "color" : "\#ffffff" },
+ { "full_text" : "RAM ${memperc}%" , "color" :
+ ${if_match ${memperc}<90}"\#ffffff"${else}"\#ff0000"${endif} }],
+{% endraw %}
+</tt></pre>
--- /dev/null
+---
+layout: default
+title: Docs
+group: Docs
+---
+<div id="content" class="usergen">
+<h1>User-contributed article: Lukáš Zapletal’s i3 configuration</h1>
+
+<p>I was keeping sight on i3 for some time after I saw Michael’s <a href='http://www.youtube.com/watch?v=QnYN2CTb1hM'>presentation at Google</a> the other day. Last weekend, I upgraded my Fedora 17 and when I noticed i3 version 4.2 in the repositories, I gave it a try. First of all, I have to admit I’ve fallen in love. Totally.</p>
+
+<p>It’s a tiling window manager which is lightweight yet powerful. What I like about i3 is ease of adopting it. Michael, the main author of this awesome software, made the default configuration very sane. And i3 is also very fast by it’s (UNIX) design. Last but not least, i3 saves every pixel on the screen. You can get the most from your screen(s). And yes - it <em>does</em> support multiple screens very nicely.</p>
+
+<p>Instead of describing how it looks like when you use i3, I’d rather publish my (pretty new) configuration describing each line of it. Before I start, I need to highlight one thing. It’s a <strong>tiling</strong> window manager. You manage windows into tiles, it’s the basic idea. While you can turn windows into “normal” (the correct term is “floating”) mode, you loose lots of things and this is not the mode you want to work in. It is mainly used by i3 for dialogs, tooltips or other temporary windows.</p>
+
+<h2 id='installation'>Installation</h2>
+
+<p>Is pretty straightforward. We need i3 itself and several other highly recommended apps I will describe later. In short: simple screen locker, starter menu and simple notification daemon.</p>
+
+<pre><tt># yum -y install i3 i3lock dmenu dunst</tt></pre>
+
+<p>Please note dunst is not in Fedora 17 repositories, but I have created a <a href='https://bugzilla.redhat.com/show_bug.cgi?id=852211'>review request</a>. Feel free to take it for review.</p>
+
+<p>Exit your desktop environment or window manager and log on into i3 from the GDM menu (if you use it). i3 will ask to create initial configuration during the first start. Say yes and do not worry - reloading/restarting i3 is fluent and you can do this zillions of times without loosing a single window.</p>
+
+<h2 id='i3_configuration'>i3 configuration</h2>
+
+<p>Configuration is located in <strong>.i3/config</strong>. Let’s do the walkthrough.</p>
+
+<pre><tt>set $mod Mod4</tt></pre>
+
+<p>i3 works best with a modifier key set to ALT (Mod1) or WIN (Mod4). I have a windows key on my keyboard unused anyway, so I use it as my main modifier key (with few exceptions bellow).</p>
+
+<pre><tt># font for window titles. ISO 10646 = Unicode
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1</tt></pre>
+
+<p>Basic font for windows titles. I was experimenting with my favourite one - Terminus - but the default (misc-fixed) works great and is narrower.</p>
+
+<pre><tt># Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod</tt></pre>
+
+<p>By default windows has 1 pixel border, so it’s difficult to resize them with mouse. With this option, you can <em>move</em> windows with modifier + left click and <em>resize</em> with modifier + right click. I bet Apple patented this already, but who cares.</p>
+
+<pre><tt># start a terminal
+bindsym $mod+Return exec i3-sensible-terminal</tt></pre>
+
+<p>I am starting terminals a lot. Like fifty a day, or even more. Michael’s default configuration has this binding and I keep it. By the way i3 has several i3-* scripts (three I guess) which tries to find “the best” terminal (editor etc). In my case its urxvt and vim, but i3-* will find out from ENV variables of course.</p>
+
+<pre><tt># kill focused window
+bindsym $mod+Shift+Q kill</tt></pre>
+
+<p>As you will notice shortly, i3 does not draw any minimize, maximize and close buttons. Except the latter, they are useless. It turns out every single application has an exit path (usually using Ctrl+q or something like that), so you don’t need the [X] button. Few apps do not support it (like very old xev), you can use this shortcut that tries to close it nicely first and it kills it if it does not work.</p>
+
+<pre><tt># start dmenu (a program launcher)
+bindsym $mod+d exec dmenu_run</tt></pre>
+
+<p>Do you think there is a start menu or icons on a desktop in i3? Well, it’s a window manager. Of course not. By default it uses excellent dmenu starter and this simple wrapper that ships with it. Basically, it makes a cache of all executable applications and shows them while you type in a top bar. It’s fast. It’s awesome.</p>
+
+<pre><tt># reload/restart/exit
+bindsym $mod+Shift+C reload
+bindsym $mod+Shift+R restart
+bindsym $mod+Shift+E exit</tt></pre>
+
+<p>Few default key bindings you will like when playing with configuration.</p>
+
+<pre><tt># screen locker (first move to "safe" workspace without any chat app)
+bindsym Control+Mod1+l exec i3-msg workspace 1 && i3lock -c 111111 -d</tt></pre>
+
+<p>My invention here. Locking a screen is an easy task, but unlocking it without providing your password to other team folks via IRC channel is a challenge (for a guy in the <a href='http://pulpproject.org'>Pulp team</a> ;-) therefore I switch to the first workspace first where is <em>not</em> my IRC chat. Ever. I have to admit the issue is more when you don’t have your screen lock, but it was fun to create this key.</p>
+
+<p>Please note i3lock built into Fedora 17 does <em>NOT</em> support loading of images. The software itself is capable of loading images instead of solid color, but this feature was not built. Just stick with a solid color for now.</p>
+
+<p>By the way, you just saw i3-msg command which is distributed with i3 distribution. Every single command you see here in the bindsym and exec statements can be sent to i3 using i3-msg. You can create shell scripts with starting up applications, moving them around, changing workspaces and I can’t possibly imagine what can you do with it. Everything.</p>
+
+<pre><tt># change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+semicolon focus right
+#bindsym $mod+uring focus right</tt></pre>
+
+<p>Default configuration for moving around. Notice this is not exactly what we know from Vim (its HJKL there). I thought I will hate it, but I got used to it in two hours. The commented line is for Czech keyboard layout (there is u with ring instead of semicolon) - ignore it if you don’t use this one.</p>
+
+<pre><tt># alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right</tt></pre>
+
+<p>I sometimes use arrow keys, usually when I don’t have my hands in the working position. It is likely when I eat :-)</p>
+
+<pre><tt># move focused window
+bindsym $mod+Shift+J move left
+bindsym $mod+Shift+K move down
+bindsym $mod+Shift+L move up
+bindsym $mod+Shift+colon move right</tt></pre>
+
+<p>Moving windows around is so simple with tiling managers. Just hold shift and you drag the window there.</p>
+
+<pre><tt># alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right</tt></pre>
+
+<p>I don’t use this with arrow keys, but it’s defined by default. Why not.</p>
+
+<pre><tt># split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v</tt></pre>
+
+<p>This is important. By default i3 splits the screen according to the screen size. For wide screens it’s usually horizontal split. You can configure this behavior if you want, but sometimes you want to split different way. That is what these bindings are for. i3 remembers that for the workspace, so you can split multiple windows easily.</p>
+
+<pre><tt># enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen</tt></pre>
+
+<p>Fullscreen is something you don’t use many times with standard window managers, but in tiling mode it is pretty useful. I use it a lot when I wan’t to “zoom in” a window.</p>
+
+<pre><tt># change container layout (stacked, tabbed, default)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout default</tt></pre>
+
+<p>Unique feature of i3, I would say. Best thing what you can do is to <a href='http://i3wm.org/docs/userguide.html#_changing_the_container_layout'>see a picture</a>. You can switch from tiling (default) to tabbed and stacking mode. You can have multiple Firefox instances in windows tabs if you want to. By the way, the i3 User’s Guide is the definitive document you want to read twice.</p>
+
+<pre><tt># toggle tiling / floating
+bindsym $mod+Shift+space floating toggle</tt></pre>
+
+<p>Some applications does not work well in the tiling mode, because all windows are maximalized by default and according to your screen size and number of other containers there first application can be quite stretched. If your application looks weird, you can always switch to the floating (“normal”) mode, and back and forth with this key mapping. By default, i3 recognizes dialogs and tool windows, so you do not to switch all windows. Actually I had to switch only one application by now.</p>
+
+<pre><tt># change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle</tt></pre>
+
+<p>If you have multiple windows in tiling and floating mode, you want to switch between those two groups. You do it with this key.</p>
+
+<pre><tt># focus the parent container
+#bindsym $mod+a focus parent
+
+# focus the child container
+#bindcode $mod+d focus child</tt></pre>
+
+<p>I have to admit I never used this, because I try to keep number of windows on each workspace low (up to 6 I would say). It moves focus to parent or child window, perhaps more usable with more windows. Share your experiences with this. Notice it’s disabled because I use mod+d for the dmenu.</p>
+
+<pre><tt># next/previous workspace
+bindsym Mod1+Tab focus right
+bindsym Mod1+Shift+Tab focus left
+bindsym $mod+Tab workspace back_and_forth</tt></pre>
+
+<p>This is not standard binding, but I find Alt+Tab pretty useful combination. It’s handy (I use my right hand for mouse) and it was not used by i3. So I started using it for cycling through windows on one workspace. If you have various (horizontal and vertical splits), it does not cycle through all of them. It’s only moving in vertical movement (right - left). I wish there has been a option like “focus cycle” in the next i3 version.</p>
+
+<p>Shift does the other way around while Win+Tab switches to the last used weapon. Sorry, I said weapon? I mean workspace.</p>
+
+<pre><tt># switch to workspace
+bindsym $mod+ampersand workspace 1
+bindsym $mod+eacute workspace 2
+bindsym $mod+quotedbl workspace 3
+bindsym $mod+apostrophe workspace 4
+bindsym $mod+parenleft workspace 5
+bindsym $mod+minus workspace 6
+bindsym $mod+egrave workspace 7
+bindsym $mod+underscore workspace 8
+bindsym $mod+ccedilla workspace 9
+bindsym $mod+agrave workspace 10
+#bindsym $mod+1 workspace 1
+#bindsym $mod+2 workspace 2
+#bindsym $mod+3 workspace 3
+#bindsym $mod+4 workspace 4
+#bindsym $mod+5 workspace 5
+#bindsym $mod+6 workspace 6
+#bindsym $mod+7 workspace 7
+#bindsym $mod+8 workspace 8
+#bindsym $mod+9 workspace 9
+#bindsym $mod+0 workspace 10
+
+# switch to workspace (f1-f4)
+bindsym F1 workspace 1
+bindsym F2 workspace 2
+bindsym F3 workspace 3
+bindsym F4 workspace 4
+bindsym Mod1+F1 workspace 5
+bindsym Mod1+F2 workspace 6
+bindsym Mod1+F3 workspace 7
+bindsym Mod1+F4 workspace 8</tt></pre>
+
+<p>Okay, the first block is default binding. But for many years I decided to leverage F1-F4 keys for workspace movement. Until now, I was using only four workspaces (OpenBox, KDE/GNOME, Fluxbox and XFce), but with i3 and its good support of multiple screens I can afford eight now. Each screen has four independent workspaces.</p>
+
+<p>Please note the commented part is for Czech layout, therefore if you use this layout uncomment it and delete the above.</p>
+
+<p>Now let me explain <em>function keys</em> a bit. First of all I realized many years ago that no one (including me) ever use F1 key. It’s reserved, it’s for help. But everybody is googling these days instead searching through built-in docs. The same for F2, F3 and F4. Maybe some IDEs offer some important stuff, but I use Vim that has no function keys binding. That is the reason why I gave up with those keys and use them for workspace switching.</p>
+
+<p>With i3 I have decided also to map Alt+F1-F4 for accessing numbers five to eight. It just seem natural for me now. I am giving up with Alt-F2 (Run App in GNOME) or Alt-F4 (Close App), but this does no work in i3 anymore. Few apps still react on Alt-F4, but there is a different combination available for that.</p>
+
+<p>If you occasionally need those keys, you can create a re-mapping that would trigger them with Win+F1-F4 keys. But in terminals you can always use ESC combination (ESC;1 for F1). I don’t use any X11 application that needs that.</p>
+
+<p>Therefore workspaces 1-4 are on the laptop screen (LDVS1) and 5-8 are on the main monitor (HDMI1). And there is one workspace hidden called scratch one. More about it later.</p>
+
+<pre><tt># move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+6 move container to workspace 6
+bindsym $mod+Shift+7 move container to workspace 7
+bindsym $mod+Shift+8 move container to workspace 8
+bindsym $mod+Shift+9 move container to workspace 9
+bindsym $mod+Shift+0 move container to workspace 10</tt></pre>
+
+<p>Default setting for transferring windows (containers) among workspaces. Those works for both Czech and English layout and are installed by default.</p>
+
+<pre><tt># border changing
+bindsym $mod+b border toggle</tt></pre>
+
+<p>I cycle through normal, 1pixel and none values with this keybinding. By default it’s bound to mod+t, mod+y and mod+u.</p>
+
+<pre><tt># scratchpad
+bindsym $mod+m move scratchpad
+bindsym $mod+o scratchpad show</tt></pre>
+
+<p>Now THIS is cool. There is one hidden workspace that is nowhere and everywhere. It’s empty by default, thus invisible. You can move there any window you want with mod+m. Container is switched over to floating mode and it’s centered on the screen giving it some decent size. Than you can quickly show this window with mod+o key. If you hit it twice, it disappears.</p>
+
+<p>This is cool feature, I like to have an extra terminal there for quick looks while I am working. Maybe you want your favourite e-mail application there. Or something other you want to keep hidden<code>n</code>handy.</p>
+
+<p>Please note floating applications always stays on top of tiled containers. So scratchpad is not intended for long tasks. It’s better for short tasks you need to do many times a day. Oh, you can open scratchpad on top of any workspace you want. This is also great for copy and paste.</p>
+
+<pre><tt># resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+ #bindsym uring resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym 113 resize shrink width 10 px or 10 ppt
+ bindsym 116 resize grow height 10 px or 10 ppt
+ bindsym 111 resize shrink height 10 px or 10 ppt
+ bindsym 114 resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"</tt></pre>
+
+<p>I like to resize windows with mouse, but with keys it’s more fun and also much faster. I need to get used to it. You enter resize mode with mod+r combination, then usint JKL and semicolon (note uring for my Czech layout) you change the window size. And than you <em>must</em> switch back to the normal mode with ESC or ENTER key. Standard key bindings are not available in the resize mode and you will notice why nothing is working. Remember, you <em>need to return</em>.</p>
+
+<p>I bet you can create your own modes like “work” and “fun” with totally different key bindings. Never tried this.</p>
+
+<pre><tt># pulse audio volume control
+bindsym XF86AudioLowerVolume exec /usr/bin/pactl set-sink-volume 0 -- '-5%'
+bindsym XF86AudioRaiseVolume exec /usr/bin/pactl set-sink-volume 0 -- '+5%'
+bindsym XF86AudioMute exec /usr/bin/pactl set-sink-volume 0 0
+bindsym XF86Launch1 exec /usr/bin/pactl play-sample that_was_easy
+bindsym XF86MonBrightnessUp exec /usr/bin/xbacklight -inc 10
+bindsym XF86MonBrightnessDown exec /usr/bin/xbacklight -dec 5</tt></pre>
+
+<p>Few ThinkPad laptop key bindings for controlling volume, brightness and ThinkVantage for playing That Was Easy (TM) sample just for fun. I don’t use laptop keyboard much.</p>
+
+<pre><tt># $mod+n reserved for close all notifications
+# see ~/.config/dunst/dunstrc for more</tt></pre>
+
+<p>Just a note for myself not to override mod+n which is used by dunst. More about it later.</p>
+
+<pre><tt># one bar on both screens
+bar {
+ position top
+ mode hide
+ modifier $mod
+ status_command i3status
+ tray_output LVDS1
+}</tt></pre>
+
+<p>i3 uses i3bar application to draw a very minimalistic bar that can be positioned on the top or bottom of the screen (all screens by default). I like having my bar on top. Content of the bar is delivered with an external program using IPC - i3status in my case. More about its configuration later.</p>
+
+<p>Only one bar can contain tray area - laptop screen in my case. The bar is very thin, tray icons are also small. I like it. The “mode hide” statement hides the bar and opens it once I hit “modifier” key, or on a workspace highlight. By the way when the bar is hidden, i3 also notifies the i3status program so it’s not feeding with data to save CPU time and thus battery.</p>
+
+<p>By default i3bar shows workspaces and you can switch them with a mouse. It’s good not to disable this (even if you don’t use mouse for that) just to have a nice overview about all workspaces which are kind a dynamic (like in GNOME 3), they appear once you move there for the first time and disappear when you leave it (and there is no other container on it). Therefore you can work with them like in GNOME 3 if you want. I have my numbers 9 and 10 ready for that.</p>
+
+<pre><tt># workspace screens
+workspace 1 output HDMI1
+workspace 2 output HDMI1
+workspace 3 output HDMI1
+workspace 4 output HDMI1
+workspace 5 output LVDS1
+workspace 6 output LVDS1
+workspace 7 output LVDS1
+workspace 8 output LVDS1</tt></pre>
+
+<p>i3 works <strong>very well</strong> with multiple monitors. The default behavior is where you create a workspace it stays there forever, or until you disconnect the screen respectively. Therefore it’s up to you where you create your workspaces.</p>
+
+<p>I like to have an order in this, workspaces 1-4 are on the main screen, 5-8 are on the laptop. Therefore I explicitly say this in my configuration. By the way you can easily move workspaces across screens, but I don’t use any key bindings for that.</p>
+
+<p>When you disconnect your laptop from dock, everything stays “as is” until xrandr notice the screen is off. This is not by default and I like this behavior (depends on your distribution). You can switch off the screen using xranrd command, but sometimes I prefer to attend a meeting or something and then returning without <em>any</em> change (having workspaces on the main screen invisible for a while). I like to have an option in this case. Of course once i3 determines screen has been turned off using xrandr, it moves all workspaces to the remaining screen.</p>
+
+<p>You can also do this manually with <em>i3-msg workspace N output OUTPUT</em> therefore I created two bash scripts dock and undock that transfers all my workspaces in/out of LDVDS1. This is awesome, I really love this feature. I have never seen a window manager that plays THAT nicely with multiple screens.</p>
+
+<pre><tt># workspace assignment (use "xprop")
+assign [class="^Google-chrome$"] 3
+assign [class="^URxvt$" instance="^mail$"] 4
+assign [class="^Xchat$"] 5
+assign [class="^Rednotebook$"] 6
+assign [class="^Decibel-audio-player.py$"] 7
+assign [title="Lingea Lexicon 5$"] 8
+
+# custom window settings
+for_window [class="^URxvt$" instance="scratchpad"] border 1pixel; move scratchpad
+for_window [class="^Google-chrome$"] border none
+for_window [title="Lingea Lexicon 5$"] border none
+
+# get elluminate working
+for_window [title="^Elluminate Live!"] floating enable
+for_window [title="^Application Sharing"] floating enable
+for_window [class="^net-sourceforge-jnlp-runtime-Boot$" title="^Downloading"] floating enable</tt></pre>
+
+<p>In this block, I force some applications to start on specific screens. You can see apps that I use everyday. IRC chat, notebook, audio player, dictionary, browser and that’s it.</p>
+
+<p>Than if I start a terminal with the name of “scratchpad” it changes its border to 1pixel and moves to the background – scratchpad, remember? This is cool.</p>
+
+<p>And I need to use Elluminate application for desktop sharing and meetings. It’s a Java application that does not look nice in the tiled mode, therefore I force it into floating mode. Good news is it is working actually, if you use it with Sun JRE. There are not many window managers Elluminate is working in, seriously.</p>
+
+<pre><tt># before autostart
+exec --no-startup-id pactl upload-sample ~/.i3/that_was_easy.wav that_was_easy
+exec urxvt -name scratchpad -e bash
+exec ~/.i3/autostart
+
+# autostart
+exec google-chrome
+exec urxvt -name mail -e bash -c "mutt"
+exec xchat
+exec rednotebook
+exec decibel-audio-player
+exec lexicon</tt></pre>
+
+<p>The last block is just auto starting some applications during startup. I load the funny sample, open a scratchpad terminal (which goes to the background automatically) and then I start a shell script with additional commands. I could put this into .xinitrc, but I keep it here. And then some applications.</p>
+
+<p>When I start my laptop, I get the same. Everyday. Cool, isn’t it?</p>
+
+<h2 id='autostart'>Autostart</h2>
+
+<p>My autostart script triggers some settings and spawns some daemons. It’s totally optional in i3, you could do everything using “exec” commands, but I leveraged my old xinitrc script for that. Let’s do the showcase again.</p>
+
+<pre><tt>#!/bin/sh
+
+## Desktop background color
+xsetroot -solid '#101010' &</tt></pre>
+
+<p>Again, i3 is a window manager, not a desktop environment. I don’t like “wallpapers, I just set a decent color here.</p>
+
+<pre><tt>## Set startup volume
+pactl set-sink-volume 0 '20%' &</tt></pre>
+
+<p>I hate random volume after start. Can cause injuries with my speakers. Every time I start my laptop, volume is set to 20 per cent.</p>
+
+<pre><tt>## Disable beeps
+xset -b &</tt></pre>
+
+<p>Don’t like PC-speaker beeping at all.</p>
+
+<pre><tt>## Keybord layout setting
+setxkbmap -layout cz,us -option grp:shift_shift_toggle &</tt></pre>
+
+<p>I told you – Czech layout.</p>
+
+<pre><tt>## DPMS monitor setting (standby -> suspend -> off) (seconds)
+xset dpms 300 600 900 &</tt></pre>
+
+<p>I do not use screen “savers”, blank it after 5 minutes, suspend and then go off after 5+5 minutes. THIS is screen saving.</p>
+
+<pre><tt>## Set LCD brightness
+xbacklight -set 90 &</tt></pre>
+
+<p>The same story as with volume, backlight set to 90 % after start.</p>
+
+<pre><tt>## Clipboard manager
+LC_ALL=C parcellite &</tt></pre>
+
+<p>Parcellite clipboard manager is widely used, and I love it for my patches that strips whitespace. Go ahead, try it and enable this feature in the preferences. Czech translation is totally wrong, therefore I start it in English.</p>
+
+<pre><tt>## OSD
+dunst &</tt></pre>
+
+<p>And notification daemon. More about it later.</p>
+
+<h2 id='bar'>Bar</h2>
+
+<p>As I described earlier, i3bar program uses i3status – lightweight status generator designed to be very efficient by issuing a very small number of system calls. No scripting support, no external commands. Communication with i3bar is very simple using pipes, if you really need an external command, you can create a wrapper that adds some more info to the i3status output.</p>
+
+<p>Configuration is pretty straightforward, I will not comment that. I refresh the status line every four seconds, but my bar is hidden most of time, therefore refreshing is suspended which saves you even more cpu ticks!</p>
+
+<pre><tt>general {
+ colors = true
+ interval = 4
+}
+
+order += "disk /home"
+order += "disk /"
+order += "run_watch VPN"
+order += "wireless wlan0"
+order += "ethernet em1"
+order += "battery 0"
+order += "volume master"
+order += "load"
+order += "time"
+
+wireless wlan0 {
+ format_up = "W: (%quality at %essid) %ip"
+ format_down = "W: down"
+}
+
+ethernet em1 {
+ # sudo setcap cap_net_admin=ep $(which i3status)
+ format_up = "E: %ip (%speed)"
+ format_down = "E: down"
+}
+
+battery 0 {
+ format = "%status %percentage %remaining"
+}
+
+run_watch VPN {
+ pidfile = "/var/run/openvpn.pid"
+}
+
+time {
+ format = "%d.%m.%Y %H:%M"
+}
+
+load {
+ format = "%1min"
+}
+
+disk "/" {
+ format = "%free"
+}
+
+disk "/home" {
+ format = "%free"
+}
+
+volume master {
+ format = "♪: %volume"
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}</tt></pre>
+
+<p>To test it, you can just run <em>i3status</em>. It will fall back to simple text output (real communication with i3bar is with colors):</p>
+
+<pre><tt>$ i3status
+132,1 GB | 56,2 GB | VPN: yes | W: down | E: 192.168.1.1 (1000 Mbit/s) | FULL 55,92% | ♪: 63% | 1,56 | 28.08.2012 19:46</tt></pre>
+
+<p>As you may noticed, my ThinkPad battery is dying.</p>
+
+<h2 id='osd'>OSD</h2>
+
+<p>I use dunst as a notification daemon. It’s very simple and it looks like a dmenu. The configuration is stored in <em>~/.config/dunst/dunstrc</em> and the default one works great. And it also plays well with multi-monitor setups - you can choose screen to show notifications on and it can also follow your mouse or keyboard (pops up on the screen you actually work on).</p>
+
+<p>Dunst can group same messages, stack them, sort them by urgency, wrap words and keep messages when computer is in idle (so you would miss them). One can configure colors, format and other basic things for the pop up windows.</p>
+
+<p>I took the default configuration from <em>/usr/share/dunst/dunstrc</em> and kept the sane defaults. The most important setting change for me was:</p>
+
+<pre><tt>close_all = mod4+n</tt></pre>
+
+<p>I use Win+n to close all notifications. Nice.</p>
+
+<h2 id='wrapup'>Wrap-up</h2>
+
+<p>Okay, I think I showed you <a href='http://i3wm.org'>i3</a>. Highly recommended tiling window manager. Share your opinions on this page with me!</p>
+
+<p><strong>Update</strong>: I have pushed all my configuration files to <a href='https://github.com/lzap/doti3'>git repository</a>.</p>
--- /dev/null
+---
+layout: default
+title: Docs
+group: Docs
+---
+<div id="content" class="usergen">
+<h1>User-contributed article: enhanced and extensible i3bar with py3status</h1>
+
+<p>
+In the i3 documentation, the recommended tool for <a
+href="http://i3wm.org/docs/userguide.html#_displaying_a_status_line">displaying
+a status line is to use i3status</a> combined with i3bar.
+</p>
+
+<p>
+While i3status is very efficient at what it does, it is by design limited to
+a few modules and does not allow you to inject your own scripts output on your
+i3bar. This is said pretty clearly on the i3status man page:
+</p>
+
+<pre><tt>In i3status, we don’t want to implement process management again.
+Therefore, there is no module to run arbitrary scripts or commands.
+Instead, you should use your shell.</tt></pre>
+
+<h2>Introducing py3status</h2>
+
+<p>
+The goal of py3status is to fill this gap by allowing users to simply extend
+their i3bar while preserving their current i3status configuration. The main idea
+is to rely on i3status' strength without adding any configuration on the user's
+side. py3status is thus a wrapper script for i3status and its configuration as
+explained <a href="https://github.com/ultrabug/py3status/wiki">on the wiki</a>.
+</p>
+
+<h2>Usage</h2>
+
+<p>
+Using py3status is easy, no need to multi-pipe your scripts after i3status.
+Instead just replace <i>i3status</i> in your current <b>status_command</b> by
+ <i>py3status</i>.
+For example, if your current status_command in your i3 config file resides in
+~/.i3/i3status.conf, you would change your i3 config to this:
+</p>
+
+<pre><tt>status_command py3status -c ~/.i3/i3status.conf</tt></pre>
+
+<h2>Handle i3bar click events from your i3status.conf</h2>
+
+<p>
+Py3status (since v2) is also wrapping and extending your i3status.conf and
+allows you directly handle all the i3bar click events on any of your configured
+modules whether they are i3status modules or py3status modules.
+</p>
+
+<p>
+To do so, all you have to do is add a new configuration parameter named
+<b>on_click [button number]</b> to your module config and py3status will then
+execute the given i3 command (using i3-msg). This means you can run simple
+tasks like executing a program or execute any other i3 specific command.
+</p>
+<p>Some examples below from i3status.conf:</p>
+
+<pre><tt>
+# reload the i3 config when I left click on the i3status time module
+# and restart i3 when I middle click on it
+time {
+ on_click 1 = "reload"
+ on_click 2 = "restart"
+}
+
+# run wicd-gtk GUI when I left click on the i3status ethernet module
+# and kill it when I right click on it
+ethernet eth0 {
+ # if you use %speed, i3status requires root privileges
+ format_up = "E: %ip"
+ format_down = ""
+ on_click 1 = "exec wicd-gtk"
+ on_click 3 = "exec killall wicd-gtk"
+}
+
+# run thunar when I left click on the / disk info module
+disk / {
+ format = "/ %free"
+ on_click 1 = "exec thunar /"
+}
+
+# open an URL on opera when I left click on the py3status weather_yahoo module
+weather_yahoo paris {
+ cache_timeout = 1800
+ city_code = "FRXX0076"
+ forecast_days = 2
+ on_click 1 = "exec opera http://www.meteo.fr"
+ request_timeout = 10
+}
+</tt></pre>
+
+<h2>Use py3status modules in your i3bar</h2>
+
+<p>
+Py3status (since v2) also comes with some configurable modules you can load and
+configure directly from your i3status.conf just like any other i3status module.
+<a
+href="https://github.com/ultrabug/py3status/tree/master/py3status/modules">You
+can see the list of the modules and their configuration parameters here.</a>
+</p>
+
+<p>
+To load a py3status module you just have to list it like any other i3status
+module using the <b>order +=</b> parameter. For example you could insert and
+load the imap module like this:
+</p>
+
+<pre><tt>
+order += "disk /home"
+order += "disk /"
+order += "imap"
+order += "time"
+</tt></pre>
+
+<p>And then you could configure it like this:</p>
+
+<pre><tt>
+# configure the py3status imap module
+# and run thunderbird when I left click on it
+imap {
+ cache_timeout = 60
+ imap_server = 'imap.myprovider.com'
+ mailbox = 'INBOX'
+ name = 'Mail'
+ password = 'coconut'
+ port = '993'
+ user = 'mylogin'
+ on_click 1 = "exec thunderbird"
+}
+</tt></pre>
+
+
+<h2>Write your own modules to display your own stuff</h2>
+
+<p>
+Py3status features a simple and straightforward module system which you can use
+to get your own output displayed on your i3bar. You can read more and view some
+examples <a
+href="https://github.com/ultrabug/py3status/wiki/Write-your-own-modules"> on the
+wiki</a>.
+</p>
+
+<h2>Documentation</h2>
+
+<p>
+You can read the full and up to date documentation on the <a
+href="https://github.com/ultrabug/py3status">py3status home page</a>.
+</p>
--- /dev/null
+---
+layout: default
+title: Docs
+group: Docs
+---
+<div id="content" class="usergen">
+<h1>User-contributed article: Swapping workspaces</h1>
+
+<p>
+If you have workspace 1 on one monitor and workspace 2 on another monitor and
+want to quickly swap the workspaces among the monitors, you can use i3's IPC
+mechanisms to do it. Here's how:
+</p>
+
+<p>
+i3 already includes a way to move an individual workspace from one monitor to
+another. But what we want to achieve is the <strong>simultaneous</strong>
+movement of workspaces between the monitors. To do this, we can write a script
+that detects the currently active workspace on each monitor and then moves that
+workspace to the other monitor.
+</p>
+
+<p>
+The script uses i3's <a href="http://i3wm.org/docs/ipc.html">IPC</a> via the
+<a href="https://github.com/ziberna/i3-py">i3-py Python bindings</a>.
+</p>
+
+<pre><tt>#!/usr/bin/python2.7
+
+import i3
+outputs = i3.get_outputs()
+
+# set current workspace to output 0
+i3.workspace(outputs[0]['current_workspace'])
+
+# ..and move it to the other output.
+# outputs wrap, so the right of the right is left ;)
+i3.command('move', 'workspace to output right')
+
+# rinse and repeat
+i3.workspace(outputs[1]['current_workspace'])
+i3.command('move', 'workspace to output right')</tt></pre>
+
+<p>
+A very simple way to use this script is as follows: Put the script in a file,
+named for example switch.py, and put switch.py and i3.py (downloaded from the
+<a href="https://github.com/ziberna/i3-py">Python bindings site</a>) in the
+same folder. I typically put it in $HOME/.i3/, the same directory which
+contains i3's config file. Next, put a keybinding like
+</p>
+<pre><tt>bindsym $mod+Shift+s exec /home/username/.i3/switch.py</tt></pre>
+<p>
+in i3's config file and restart i3 in place. The next time you press
+mod+Shift+s, your workspaces will be swapped among your monitors.
+</p>
+
+<p>Author: Sagar Behere</p>
--- /dev/null
+---
+layout: default
+title: Docs
+group: Docs
+---
+<div id="content" class="usergen">
+
+<h1>User-contributed article: Move a given workspace to active output</h1>
+
+<h2>Introduction</h2>
+
+<p>Assume you have multiple monitors, and various workspaces on each of them.</p>
+
+<p>You have some workspace 1 active on monitor A, and you want to jump to
+workspace 2. The default behavior, using the built-in command <code>workspace 2</code>
+is to display the workspace 2 on the screen it belongs to.</p>
+
+<p>Another legitimate use-case would be to display the workspace 2 on the
+currently active screen.</p>
+
+<p>Unfortunately, there is no built-in command in i3 to achieve that, yet. However,
+thanks to the IPC interface, it is possible to write an external script
+achieving that.</p>
+
+<h2>Installation</h2>
+
+<p>First, we need to create an executable script doing the job thanks to the <a href="/docs/ipc.html">IPC</a> interface.
+In this article, we will assume the script is stored in <code>~/.config/i3/switch-workspace.py</code></p>
+
+<p>Here is a possible implementation of the script:</p>
+
+<pre>
+#!/usr/bin/env python
+
+from json import loads
+from os import popen
+from sys import argv
+
+def ipc_query(req="command", msg=""):
+ ans = popen("i3-msg -t " + req + " " + msg).readlines()[0]
+ return loads(ans)
+
+if __name__ == "__main__":
+ # Usage & checking args
+ if len(argv) != 2:
+ print "Usage: switch-workspace.py name-of-workspace"
+ exit(-1)
+
+ newworkspace = argv[1]
+
+ # Retrieving active display
+ active_display = None
+ for w in ipc_query(req="get_workspaces"):
+ if w['focused']:
+ active_display = w['output']
+
+ # Moving workspace to active display
+ print ipc_query(msg="'workspace " + newworkspace + "; move workspace to output " + active_display + "; workspace " + newworkspace + "'")
+</pre>
+
+<p>This script uses i3-msg directly, but if you have several IPC scripts, or more
+complex ones, or if you use quotes in your workspaces' names you may want to
+use the <a href="https://github.com/ziberna/i3-py">python i3-ipc bindings</a>
+as done in <a href="/docs/user-contributed/swapping-workspaces.html">this article</a>
+(however, in this case, you might have to add some bindings to the library to
+implement chained command since sequentiality is critical in this script).</p>
+
+<p>Do not forget to make the script executable, usually, the following
+command, assuming you adopted the naming of our article, should work:</p>
+
+<pre>
+chmod u+x ~/.config/i3/switch-workspace.py
+</pre>
+
+<h2>Configuration</h2>
+
+<p>Once the script is created and made executable, the last step is to add the
+corresponding bindings in your i3 conf file.</p>
+
+<p>Basically, one way to do that is to replace the <code>workspace X</code> bindings with
+<code>exec --no-startup-id ~/.config/i3/switch-workspace.py X</code>.</p>
+
+<p>For a standard <em>fr bépo</em> keyboard layout, this will result in:</p>
+
+<pre>
+# switch to workspace
+bindsym $mod+quotedbl exec --no-startup-id ~/.config/i3/switch-workspace.py 1
+bindsym $mod+guillemotleft exec --no-startup-id ~/.config/i3/switch-workspace.py 2
+bindsym $mod+guillemotright exec --no-startup-id ~/.config/i3/switch-workspace.py 3
+bindsym $mod+parenleft exec --no-startup-id ~/.config/i3/switch-workspace.py 4
+bindsym $mod+parenright exec --no-startup-id ~/.config/i3/switch-workspace.py 5
+bindsym $mod+at exec --no-startup-id ~/.config/i3/switch-workspace.py 6
+bindsym $mod+plus exec --no-startup-id ~/.config/i3/switch-workspace.py 7
+bindsym $mod+minus exec --no-startup-id ~/.config/i3/switch-workspace.py 8
+bindsym $mod+slash exec --no-startup-id ~/.config/i3/switch-workspace.py 9
+bindsym $mod+asterisk exec --no-startup-id ~/.config/i3/switch-workspace.py 10
+</pre>
+
+<p>But of course, you will have to adapt this to your own keyboard layout.</p>
+
+<h2>References</h2>
+
+<ul>
+<li><a href="https://github.com/ziberna/i3-py">Python i3-ipc bindings</a></li>
+<li><a href="/docs/user-contributed/swapping-workspaces.html">Swapping workspaces</a></li>
+<li><a href="/docs/ipc.html">IPC interface</a></li>
+<li>A bug repport explaining <a href="http://bugs.i3wm.org/report/ticket/809">how to make the focus follow the moved workspace</a></li>
+</ul>
+
+<p>Author: <a href="http://captnfab.chezlefab.net/">captnfab</a>, 2014-08-02</p>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: i3 User’s Guide</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3 User’s Guide</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">March 2013</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This document contains all the information you need to configure and use the i3\r
+window manager. If it does not, please check <a href="http://faq.i3wm.org/">http://faq.i3wm.org/</a> first, then\r
+contact us on IRC (preferred) or post your question(s) on the mailing list.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_default_keybindings">1. Default keybindings</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>For the "too long; didn’t read" people, here is an overview of the default\r
+keybindings (click to see the full size image):</p></div>\r
+<div class="paragraph"><p><strong>Keys to use with $mod (Alt):</strong></p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<a class="image" href="keyboard-layer1.png">\r
+<img src="keyboard-layer1.png" alt="Keys to use with $mod (Alt)" width="600" />\r
+</a>\r
+</span></p></div>\r
+<div class="paragraph"><p><strong>Keys to use with Shift+$mod:</strong></p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<a class="image" href="keyboard-layer2.png">\r
+<img src="keyboard-layer2.png" alt="Keys to use with Shift+$mod" width="600" />\r
+</a>\r
+</span></p></div>\r
+<div class="paragraph"><p>The red keys are the modifiers you need to press (by default), the blue keys\r
+are your homerow.</p></div>\r
+<div class="paragraph"><p>Note that when starting i3 without a config file, i3-config-wizard will offer\r
+you to create a config file in which the key positions (!) match what you see\r
+in the image above, regardless of the keyboard layout you are using. If you\r
+prefer to use a config file where the key letters match what you are seeing\r
+above, just decline i3-config-wizard’s offer and base your config on\r
+<tt>/etc/i3/config</tt>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_using_i3">2. Using i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Throughout this guide, the keyword <tt>$mod</tt> will be used to refer to the\r
+configured modifier. This is the Alt key (Mod1) by default, with the Windows\r
+key (Mod4) being a popular alternative.</p></div>\r
+<div class="sect2">\r
+<h3 id="_opening_terminals_and_moving_around">2.1. Opening terminals and moving around</h3>\r
+<div class="paragraph"><p>One very basic operation is opening a new terminal. By default, the keybinding\r
+for this is $mod+Enter, that is Alt+Enter in the default configuration. By\r
+pressing $mod+Enter, a new terminal will be opened. It will fill the whole\r
+space available on your screen.</p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<img src="single_terminal.png" alt="Single terminal" />\r
+</span></p></div>\r
+<div class="paragraph"><p>If you now open another terminal, i3 will place it next to the current one,\r
+splitting the screen size in half. Depending on your monitor, i3 will put the\r
+created window beside the existing window (on wide displays) or below the\r
+existing window (rotated displays).</p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<img src="two_terminals.png" alt="Two terminals" />\r
+</span></p></div>\r
+<div class="paragraph"><p>To move the focus between the two terminals, you can use the direction keys\r
+which you may know from the editor <tt>vi</tt>. However, in i3, your homerow is used\r
+for these keys (in <tt>vi</tt>, the keys are shifted to the left by one for\r
+compatibility with most keyboard layouts). Therefore, <tt>$mod+J</tt> is left, <tt>$mod+K</tt>\r
+is down, <tt>$mod+L</tt> is up and <tt>$mod+;</tt> is right. So, to switch between the\r
+terminals, use <tt>$mod+K</tt> or <tt>$mod+L</tt>. Of course, you can also use the arrow keys.</p></div>\r
+<div class="paragraph"><p>At the moment, your workspace is split (it contains two terminals) in a\r
+specific direction (horizontal by default). Every window can be split\r
+horizontally or vertically again, just like the workspace. The terminology is\r
+"window" for a container that actually contains an X11 window (like a terminal\r
+or browser) and "split container" for containers that consist of one or more\r
+windows.</p></div>\r
+<div class="paragraph"><p>TODO: picture of the tree</p></div>\r
+<div class="paragraph"><p>To split a window vertically, press <tt>$mod+v</tt> before you create the new window.\r
+To split it horizontally, press <tt>$mod+h</tt>.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_the_container_layout">2.2. Changing the container layout</h3>\r
+<div class="paragraph"><p>A split container can have one of the following layouts:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+splith/splitv\r
+</dt>\r
+<dd>\r
+<p>\r
+Windows are sized so that every window gets an equal amount of space in the\r
+container. splith distributes the windows horizontally (windows are right next\r
+to each other), splitv distributes them vertically (windows are on top of each\r
+other).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+stacking\r
+</dt>\r
+<dd>\r
+<p>\r
+Only the focused window in the container is displayed. You get a list of\r
+windows at the top of the container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+tabbed\r
+</dt>\r
+<dd>\r
+<p>\r
+The same principle as <tt>stacking</tt>, but the list of windows at the top is only\r
+a single line which is vertically split.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>To switch modes, press <tt>$mod+e</tt> for splith/splitv (it toggles), <tt>$mod+s</tt> for\r
+stacking and <tt>$mod+w</tt> for tabbed.</p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<img src="modes.png" alt="Container modes" />\r
+</span></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_toggling_fullscreen_mode_for_a_window">2.3. Toggling fullscreen mode for a window</h3>\r
+<div class="paragraph"><p>To display a window in fullscreen mode or to go out of fullscreen mode again,\r
+press <tt>$mod+f</tt>.</p></div>\r
+<div class="paragraph"><p>There is also a global fullscreen mode in i3 in which the client will span all\r
+available outputs (the command is <tt>fullscreen toggle global</tt>).</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_opening_other_applications">2.4. Opening other applications</h3>\r
+<div class="paragraph"><p>Aside from opening applications from a terminal, you can also use the handy\r
+<tt>dmenu</tt> which is opened by pressing <tt>$mod+d</tt> by default. Just type the name\r
+(or a part of it) of the application which you want to open. The corresponding\r
+application has to be in your <tt>$PATH</tt> for this to work.</p></div>\r
+<div class="paragraph"><p>Additionally, if you have applications you open very frequently, you can\r
+create a keybinding for starting the application directly. See the section\r
+<a href="#configuring">[configuring]</a> for details.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_closing_windows">2.5. Closing windows</h3>\r
+<div class="paragraph"><p>If an application does not provide a mechanism for closing (most applications\r
+provide a menu, the escape key or a shortcut like <tt>Control+W</tt> to close), you\r
+can press <tt>$mod+Shift+q</tt> to kill a window. For applications which support\r
+the WM_DELETE protocol, this will correctly close the application (saving\r
+any modifications or doing other cleanup). If the application doesn’t support\r
+the WM_DELETE protocol your X server will kill the window and the behaviour\r
+depends on the application.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_using_workspaces">2.6. Using workspaces</h3>\r
+<div class="paragraph"><p>Workspaces are an easy way to group a set of windows. By default, you are on\r
+the first workspace, as the bar on the bottom left indicates. To switch to\r
+another workspace, press <tt>$mod+num</tt> where <tt>num</tt> is the number of the workspace\r
+you want to use. If the workspace does not exist yet, it will be created.</p></div>\r
+<div class="paragraph"><p>A common paradigm is to put the web browser on one workspace, communication\r
+applications (<tt>mutt</tt>, <tt>irssi</tt>, …) on another one, and the ones with which you\r
+work, on the third one. Of course, there is no need to follow this approach.</p></div>\r
+<div class="paragraph"><p>If you have multiple screens, a workspace will be created on each screen at\r
+startup. If you open a new workspace, it will be bound to the screen you\r
+created it on. When you switch to a workspace on another screen, i3 will set\r
+focus to that screen.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving_windows_to_workspaces">2.7. Moving windows to workspaces</h3>\r
+<div class="paragraph"><p>To move a window to another workspace, simply press <tt>$mod+Shift+num</tt> where\r
+<tt>num</tt> is (like when switching workspaces) the number of the target workspace.\r
+Similarly to switching workspaces, the target workspace will be created if\r
+it does not yet exist.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_resizing">2.8. Resizing</h3>\r
+<div class="paragraph"><p>The easiest way to resize a container is by using the mouse: Grab the border\r
+and move it to the wanted size.</p></div>\r
+<div class="paragraph"><p>See <a href="#resizingconfig">[resizingconfig]</a> for how to configure i3 to be able to resize\r
+columns/rows with your keyboard.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_restarting_i3_inplace">2.9. Restarting i3 inplace</h3>\r
+<div class="paragraph"><p>To restart i3 in place (and thus get into a clean state if there is a bug, or\r
+to upgrade to a newer version of i3) you can use <tt>$mod+Shift+r</tt>.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_exiting_i3">2.10. Exiting i3</h3>\r
+<div class="paragraph"><p>To cleanly exit i3 without killing your X server, you can use <tt>$mod+Shift+e</tt>.\r
+By default, a dialog will ask you to confirm if you really want to quit.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_floating">2.11. Floating</h3>\r
+<div class="paragraph"><p>Floating mode is the opposite of tiling mode. The position and size of\r
+a window are not managed automatically by i3, but manually by\r
+you. Using this mode violates the tiling paradigm but can be useful\r
+for some corner cases like "Save as" dialog windows, or toolbar\r
+windows (GIMP or similar). Those windows usually set the appropriate\r
+hint and are opened in floating mode by default.</p></div>\r
+<div class="paragraph"><p>You can toggle floating mode for a window by pressing <tt>$mod+Shift+Space</tt>. By\r
+dragging the window’s titlebar with your mouse you can move the window\r
+around. By grabbing the borders and moving them you can resize the window. You\r
+can also do that by using the <a href="#floating_modifier">[floating_modifier]</a>. Another way to resize\r
+floating windows using the mouse is to right-click on the titlebar and drag.</p></div>\r
+<div class="paragraph"><p>For resizing floating windows with your keyboard, see <a href="#resizingconfig">[resizingconfig]</a>.</p></div>\r
+<div class="paragraph"><p>Floating windows are always on top of tiling windows.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_tree">3. Tree</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 stores all information about the X11 outputs, workspaces and layout of the\r
+windows on them in a tree. The root node is the X11 root window, followed by\r
+the X11 outputs, then dock areas and a content container, then workspaces and\r
+finally the windows themselves. In previous versions of i3 we had multiple lists\r
+(of outputs, workspaces) and a table for each workspace. That approach turned\r
+out to be complicated to use (snapping), understand and implement.</p></div>\r
+<div class="sect2">\r
+<h3 id="_the_tree_consists_of_containers">3.1. The tree consists of Containers</h3>\r
+<div class="paragraph"><p>The building blocks of our tree are so called <tt>Containers</tt>. A <tt>Container</tt> can\r
+host a window (meaning an X11 window, one that you can actually see and use,\r
+like a browser). Alternatively, it could contain one or more <tt>Containers</tt>. A\r
+simple example is the workspace: When you start i3 with a single monitor, a\r
+single workspace and you open two terminal windows, you will end up with a tree\r
+like this:</p></div>\r
+<div class="imageblock" style="float:right;">\r
+<div class="content">\r
+<img src="tree-layout2.png" alt="layout2" />\r
+</div>\r
+</div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot4.png" alt="shot4" />\r
+</div>\r
+<div class="title">Figure 1. Two terminals on standard workspace</div>\r
+</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_orientation_and_split_containers">3.2. Orientation and Split Containers</h3>\r
+<div class="paragraph" id="OrientationSplit"><p>It is only natural to use so-called <tt>Split Containers</tt> in order to build a\r
+layout when using a tree as data structure. In i3, every <tt>Container</tt> has an\r
+orientation (horizontal, vertical or unspecified) and the orientation depends\r
+on the layout the container is in (vertical for splitv and stacking, horizontal\r
+for splith and tabbed). So, in our example with the workspace, the default\r
+layout of the workspace <tt>Container</tt> is splith (most monitors are widescreen\r
+nowadays). If you change the layout to splitv (<tt>$mod+v</tt> in the default config)\r
+and <strong>then</strong> open two terminals, i3 will configure your windows like this:</p></div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot2.png" alt="shot2" />\r
+</div>\r
+<div class="title">Figure 2. Vertical Workspace Orientation</div>\r
+</div>\r
+<div class="paragraph"><p>An interesting new feature of i3 since version 4 is the ability to split anything:\r
+Let’s assume you have two terminals on a workspace (with splith layout, that is\r
+horizontal orientation), focus is on the right terminal. Now you want to open\r
+another terminal window below the current one. If you would just open a new\r
+terminal window, it would show up to the right due to the splith layout.\r
+Instead, press <tt>$mod+v</tt> to split the container with the splitv layout (to\r
+open a <tt>Horizontal Split Container</tt>, use <tt>$mod+h</tt>). Now you can open a new\r
+terminal and it will open below the current one:</p></div>\r
+<div class="imageblock" style="float:right;">\r
+<div class="content">\r
+<img src="tree-layout1.png" alt="Layout" />\r
+</div>\r
+</div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot1.png" alt="shot" />\r
+</div>\r
+<div class="title">Figure 3. Vertical Split Container</div>\r
+</div>\r
+<div style="clear:both;"></div>\r
+<div class="paragraph"><p>You probably guessed it already: There is no limit on how deep your hierarchy\r
+of splits can be.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_focus_parent">3.3. Focus parent</h3>\r
+<div class="paragraph"><p>Let’s stay with our example from above. We have a terminal on the left and two\r
+vertically split terminals on the right, focus is on the bottom right one. When\r
+you open a new terminal, it will open below the current one.</p></div>\r
+<div class="paragraph"><p>So, how can you open a new terminal window to the <strong>right</strong> of the current one?\r
+The solution is to use <tt>focus parent</tt>, which will focus the <tt>Parent Container</tt> of\r
+the current <tt>Container</tt>. In this case, you would focus the <tt>Vertical Split\r
+Container</tt> which is <strong>inside</strong> the horizontally oriented workspace. Thus, now new\r
+windows will be opened to the right of the <tt>Vertical Split Container</tt>:</p></div>\r
+<div class="imageblock">\r
+<div class="content">\r
+<img src="tree-shot3.png" alt="shot3" />\r
+</div>\r
+<div class="title">Figure 4. Focus parent, then open new terminal</div>\r
+</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_implicit_containers">3.4. Implicit containers</h3>\r
+<div class="paragraph"><p>In some cases, i3 needs to implicitly create a container to fulfill your\r
+command.</p></div>\r
+<div class="paragraph"><p>One example is the following scenario: You start i3 with a single monitor and a\r
+single workspace on which you open three terminal windows. All these terminal\r
+windows are directly attached to one node inside i3’s layout tree, the\r
+workspace node. By default, the workspace node’s orientation is <tt>horizontal</tt>.</p></div>\r
+<div class="paragraph"><p>Now you move one of these terminals down (<tt>$mod+Shift+k</tt> by default). The\r
+workspace node’s orientation will be changed to <tt>vertical</tt>. The terminal window\r
+you moved down is directly attached to the workspace and appears on the bottom\r
+of the screen. A new (horizontal) container was created to accommodate the\r
+other two terminal windows. You will notice this when switching to tabbed mode\r
+(for example). You would end up having one tab with a representation of the split\r
+container (e.g., "H[urxvt firefox]") and the other one being the terminal window\r
+you moved down.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="configuring">4. Configuring i3</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>This is where the real fun begins ;-). Most things are very dependent on your\r
+ideal working environment so we can’t make reasonable defaults for them.</p></div>\r
+<div class="paragraph"><p>While not using a programming language for the configuration, i3 stays\r
+quite flexible in regards to the things you usually want your window manager\r
+to do.</p></div>\r
+<div class="paragraph"><p>For example, you can configure bindings to jump to specific windows,\r
+you can set specific applications to start on specific workspaces, you can\r
+automatically start applications, you can change the colors of i3, and you\r
+can bind your keys to do useful things.</p></div>\r
+<div class="paragraph"><p>To change the configuration of i3, copy <tt>/etc/i3/config</tt> to <tt>~/.i3/config</tt>\r
+(or <tt>~/.config/i3/config</tt> if you like the XDG directory scheme) and edit it\r
+with a text editor.</p></div>\r
+<div class="paragraph"><p>On first start (and on all following starts, unless you have a configuration\r
+file), i3 will offer you to create a configuration file. You can tell the\r
+wizard to use either Alt (Mod1) or Windows (Mod4) as modifier in the config\r
+file. Also, the created config file will use the key symbols of your current\r
+keyboard layout. To start the wizard, use the command <tt>i3-config-wizard</tt>.\r
+Please note that you must not have <tt>~/.i3/config</tt>, otherwise the wizard will\r
+exit.</p></div>\r
+<div class="sect2">\r
+<h3 id="_comments">4.1. Comments</h3>\r
+<div class="paragraph"><p>It is possible and recommended to use comments in your configuration file to\r
+properly document your setup for later reference. Comments are started with\r
+a # and can only be used at the beginning of a line:</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># This is a comment</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="fonts">4.2. Fonts</h3>\r
+<div class="paragraph"><p>i3 has support for both X core fonts and FreeType fonts (through Pango) to\r
+render window titles.</p></div>\r
+<div class="paragraph"><p>To generate an X core font description, you can use <tt>xfontsel(1)</tt>. To see\r
+special characters (Unicode), you need to use a font which supports the\r
+ISO-10646 encoding.</p></div>\r
+<div class="paragraph"><p>A FreeType font description is composed by a font family, a style, a weight,\r
+a variant, a stretch and a size.\r
+FreeType fonts support right-to-left rendering and contain often more\r
+Unicode glyphs than X core fonts.</p></div>\r
+<div class="paragraph"><p>If i3 cannot open the configured font, it will output an error in the logfile\r
+and fall back to a working font.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>font <X core font description>\r
+font pango:<family list> [<style options>] <size></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
+font pango:DejaVu Sans Mono 10\r
+font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11\r
+font pango:Terminus 11px</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="keybindings">4.3. Keyboard bindings</h3>\r
+<div class="paragraph"><p>A keyboard binding makes i3 execute a command (see below) upon pressing a\r
+specific key. i3 allows you to bind either on keycodes or on keysyms (you can\r
+also mix your bindings, though i3 will not protect you from overlapping ones).</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+A keysym (key symbol) is a description for a specific symbol, like "a"\r
+ or "b", but also more strange ones like "underscore" instead of "_". These\r
+ are the ones you use in Xmodmap to remap your keys. To get the current\r
+ mapping of your keys, use <tt>xmodmap -pke</tt>. To interactively enter a key and\r
+ see what keysym it is configured to, use <tt>xev</tt>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Keycodes do not need to have a symbol assigned (handy for custom vendor\r
+ hotkeys on some notebooks) and they will not change their meaning as you\r
+ switch to a different keyboard layout (when using <tt>xmodmap</tt>).\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>My recommendation is: If you often switch keyboard layouts but you want to keep\r
+your bindings in the same physical location on the keyboard, use keycodes.\r
+If you don’t switch layouts, and want a clean and simple config file, use\r
+keysyms.</p></div>\r
+<div class="paragraph"><p>Some tools (such as <tt>import</tt> or <tt>xdotool</tt>) might be unable to run upon a\r
+KeyPress event, because the keyboard/pointer is still grabbed. For these\r
+situations, the <tt>--release</tt> flag can be used, which will execute the command\r
+after the keys have been released.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym [--release] [<Group>+][<Modifiers>+]<keysym> command\r
+bindcode [--release] [<Group>+][<Modifiers>+]<keycode> command</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Fullscreen\r
+bindsym $mod+f fullscreen toggle\r
+\r
+# Restart\r
+bindsym $mod+Shift+r restart\r
+\r
+# Notebook-specific hotkeys\r
+bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh\r
+\r
+# Simulate ctrl+v upon pressing $mod+x\r
+bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v\r
+\r
+# Take a screenshot upon pressing $mod+x (select an area)\r
+bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Available Modifiers:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+Mod1-Mod5, Shift, Control\r
+</dt>\r
+<dd>\r
+<p>\r
+Standard modifiers, see <tt>xmodmap(1)</tt>\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+Group1, Group2, Group3, Group4\r
+</dt>\r
+<dd>\r
+<p>\r
+When using multiple keyboard layouts (e.g. with <tt>setxkbmap -layout us,ru</tt>), you\r
+can specify in which XKB group (also called “layout”) a keybinding should be\r
+active. By default, keybindings are translated in Group1 and are active in all\r
+groups. If you want to override keybindings in one of your layouts, specify the\r
+corresponding group. For backwards compatibility, the group “Mode_switch” is an\r
+alias for Group2.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="mousebindings">4.4. Mouse bindings</h3>\r
+<div class="paragraph"><p>A mouse binding makes i3 execute a command upon pressing a specific mouse\r
+button in the scope of the clicked container (see <a href="#command_criteria">[command_criteria]</a>). You\r
+can configure mouse bindings in a similar way to key bindings.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym [--release] [--border] [--whole-window] [<Modifiers>+]button<n> command</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>By default, the binding will only run when you click on the titlebar of the\r
+window. If the <tt>--release</tt> flag is given, it will run when the mouse button\r
+is released.</p></div>\r
+<div class="paragraph"><p>If the <tt>--whole-window</tt> flag is given, the binding will also run when any part\r
+of the window is clicked, with the exception of the border. To have a bind run\r
+when the border is clicked, specify the <tt>--border</tt> flag.</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># The middle button over a titlebar kills the window\r
+bindsym --release button2 kill\r
+\r
+# The middle button and a modifer over any part of the window kills the window\r
+bindsym --whole-window $mod+button2 kill\r
+\r
+# The right button toggles floating\r
+bindsym button3 floating toggle\r
+bindsym $mod+button3 floating toggle\r
+\r
+# The side buttons move the window around\r
+bindsym button9 move left\r
+bindsym button8 move right</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="floating_modifier">4.5. The floating modifier</h3>\r
+<div class="paragraph"><p>To move floating windows with your mouse, you can either grab their titlebar\r
+or configure the so called floating modifier which you can then press and\r
+click anywhere in the window itself to move it. The most common setup is to\r
+use the same key you use for managing windows (Mod1 for example). Then\r
+you can press Mod1, click into a window using your left mouse button, and drag\r
+it to the position you want.</p></div>\r
+<div class="paragraph"><p>When holding the floating modifier, you can resize a floating window by\r
+pressing the right mouse button on it and moving around while holding it. If\r
+you hold the shift button as well, the resize will be proportional (the aspect\r
+ratio will be preserved).</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>floating_modifier <Modifier></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>floating_modifier Mod1</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_constraining_floating_window_size">4.6. Constraining floating window size</h3>\r
+<div class="paragraph"><p>The maximum and minimum dimensions of floating windows can be specified. If\r
+either dimension of <tt>floating_maximum_size</tt> is specified as -1, that dimension\r
+will be unconstrained with respect to its maximum value. If either dimension of\r
+<tt>floating_maximum_size</tt> is undefined, or specified as 0, i3 will use a default\r
+value to constrain the maximum size. <tt>floating_minimum_size</tt> is treated in a\r
+manner analogous to <tt>floating_maximum_size</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>floating_minimum_size <width> x <height>\r
+floating_maximum_size <width> x <height></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>floating_minimum_size 75 x 50\r
+floating_maximum_size -1 x -1</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_orientation_for_new_workspaces">4.7. Orientation for new workspaces</h3>\r
+<div class="paragraph"><p>New workspaces get a reasonable default orientation: Wide-screen monitors\r
+(anything wider than high) get horizontal orientation, rotated monitors\r
+(anything higher than wide) get vertical orientation.</p></div>\r
+<div class="paragraph"><p>With the <tt>default_orientation</tt> configuration directive, you can override that\r
+behavior.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>default_orientation horizontal|vertical|auto</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>default_orientation vertical</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_layout_mode_for_new_containers">4.8. Layout mode for new containers</h3>\r
+<div class="paragraph"><p>This option determines in which mode new containers on workspace level will\r
+start.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace_layout default|stacking|tabbed</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace_layout tabbed</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_border_style_for_new_windows">4.9. Border style for new windows</h3>\r
+<div class="paragraph"><p>This option determines which border style new windows will have. The default is\r
+<tt>normal</tt>. Note that new_float applies only to windows which are starting out as\r
+floating windows, e.g., dialog windows, but not windows that are floated later on.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>new_window normal|none|pixel\r
+new_window normal|pixel <px>\r
+new_float normal|none|pixel\r
+new_float normal|pixel <px></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>new_window pixel</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The "normal" and "pixel" border styles support an optional border width in\r
+pixels:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># The same as new_window none\r
+new_window pixel 0\r
+\r
+# A 3 px border\r
+new_window pixel 3</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_hiding_vertical_borders">4.10. Hiding vertical borders</h3>\r
+<div class="paragraph"><p>You can hide vertical borders adjacent to the screen edges using\r
+<tt>hide_edge_borders</tt>. This is useful if you are using scrollbars, or do not want\r
+to waste even two pixels in displayspace. Default is none.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>hide_edge_borders none|vertical|horizontal|both</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>hide_edge_borders vertical</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_arbitrary_commands_for_specific_windows_for_window">4.11. Arbitrary commands for specific windows (for_window)</h3>\r
+<div class="paragraph" id="for_window"><p>With the <tt>for_window</tt> command, you can let i3 execute any command when it\r
+encounters a specific window. This can be used to set windows to floating or to\r
+change their border style, for example.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>for_window <criteria> <command></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># enable floating mode for all XTerm windows\r
+for_window [class="XTerm"] floating enable\r
+\r
+# Make all urxvts use a 1-pixel border:\r
+for_window [class="urxvt"] border pixel 1\r
+\r
+# A less useful, but rather funny example:\r
+# makes the window floating as soon as I change\r
+# directory to ~/work\r
+for_window [title="x200: ~/work"] floating enable</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The valid criteria are the same as those for commands, see <a href="#command_criteria">[command_criteria]</a>.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_don_8217_t_focus_window_upon_opening">4.12. Don’t focus window upon opening</h3>\r
+<div class="paragraph" id="no_focus"><p>When a new window appears, it will be focused. The <tt>no_focus</tt> directive allows preventing\r
+this from happening and can be used in combination with <a href="#command_criteria">[command_criteria]</a>.</p></div>\r
+<div class="paragraph"><p>Note that this does not apply to all cases, e.g., when feeding data into a running application\r
+causing it to request being focused. To configure the behavior in such cases, refer to\r
+<a href="#focus_on_window_activation">[focus_on_window_activation]</a>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>no_focus <criteria></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>no_focus [window_role="pop-up"]</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_variables">4.13. Variables</h3>\r
+<div class="paragraph"><p>As you learned in the section about keyboard bindings, you will have\r
+to configure lots of bindings containing modifier keys. If you want to save\r
+yourself some typing and be able to change the modifier you use later,\r
+variables can be handy.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>set $<name> <value></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>set $m Mod1\r
+bindsym $m+Shift+r restart</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Variables are directly replaced in the file when parsing. Variables expansion\r
+is not recursive so it is not possible to define a variable with a value\r
+containing another variable. There is no fancy handling and there are\r
+absolutely no plans to change this. If you need a more dynamic configuration\r
+you should create a little script which generates a configuration file and run\r
+it before starting i3 (for example in your <tt>~/.xsession</tt> file).</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_automatically_putting_clients_on_specific_workspaces">4.14. Automatically putting clients on specific workspaces</h3>\r
+<div class="paragraph" id="assign_workspace"><p>To automatically make a specific window show up on a specific workspace, you\r
+can use an <strong>assignment</strong>. You can match windows by using any criteria,\r
+see <a href="#command_criteria">[command_criteria]</a>. It is recommended that you match on window classes\r
+(and instances, when appropriate) instead of window titles whenever possible\r
+because some applications first create their window, and then worry about\r
+setting the correct title. Firefox with Vimperator comes to mind. The window\r
+starts up being named Firefox, and only when Vimperator is loaded does the\r
+title change. As i3 will get the title as soon as the application maps the\r
+window (mapping means actually displaying it on the screen), you’d need to have\r
+to match on <em>Firefox</em> in this case.</p></div>\r
+<div class="paragraph"><p>Assignments are processed by i3 in the order in which they appear in the config\r
+file. The first one which matches the window wins and later assignments are not\r
+considered.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>assign <criteria> [→] [workspace] <workspace></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Assign URxvt terminals to workspace 2\r
+assign [class="URxvt"] 2\r
+\r
+# Same thing, but more precise (exact match instead of substring)\r
+assign [class="^URxvt$"] 2\r
+\r
+# Same thing, but with a beautiful arrow :)\r
+assign [class="^URxvt$"] → 2\r
+\r
+# Assignment to a named workspace\r
+assign [class="^URxvt$"] → work\r
+\r
+# Start urxvt -name irssi\r
+assign [class="^URxvt$" instance="^irssi$"] → 3</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Note that the arrow is not required, it just looks good :-). If you decide to\r
+use it, it has to be a UTF-8 encoded arrow, not <tt>-></tt> or something like that.</p></div>\r
+<div class="paragraph"><p>To get the class and instance, you can use <tt>xprop</tt>. After clicking on the\r
+window, you will see the following output:</p></div>\r
+<div class="paragraph"><p><strong>xprop</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>WM_CLASS(STRING) = "irssi", "URxvt"</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The first part of the WM_CLASS is the instance ("irssi" in this example), the\r
+second part is the class ("URxvt" in this example).</p></div>\r
+<div class="paragraph"><p>Should you have any problems with assignments, make sure to check the i3\r
+logfile first (see <a href="http://i3wm.org/docs/debugging.html">http://i3wm.org/docs/debugging.html</a>). It includes more\r
+details about the matching process and the window’s actual class, instance and\r
+title when starting up.</p></div>\r
+<div class="paragraph"><p>Note that if you want to start an application just once on a specific\r
+workspace, but you don’t want to assign all instances of it permanently, you\r
+can make use of i3’s startup-notification support (see <a href="#exec">[exec]</a>) in your config\r
+file in the following way:</p></div>\r
+<div class="paragraph"><p><strong>Start iceweasel on workspace 3 (once)</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Start iceweasel on workspace 3, then switch back to workspace 1\r
+# (Being a command-line utility, i3-msg does not support startup notifications,\r
+# hence the exec --no-startup-id.)\r
+# (Starting iceweasel with i3’s exec command is important in order to make i3\r
+# create a startup notification context, without which the iceweasel window(s)\r
+# cannot be matched onto the workspace on which the command was started.)\r
+exec --no-startup-id i3-msg 'workspace 3; exec iceweasel; workspace 1'</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_automatically_starting_applications_on_i3_startup">4.15. Automatically starting applications on i3 startup</h3>\r
+<div class="paragraph"><p>By using the <tt>exec</tt> keyword outside a keybinding, you can configure\r
+which commands will be performed by i3 on initial startup. <tt>exec</tt>\r
+commands will not run when restarting i3, if you need a command to run\r
+also when restarting i3 you should use the <tt>exec_always</tt>\r
+keyword. These commands will be run in order.</p></div>\r
+<div class="paragraph"><p>See <a href="#command_chaining">[command_chaining]</a> for details on the special meaning of <tt>;</tt> (semicolon)\r
+and <tt>,</tt> (comma): they chain commands together in i3, so you need to use quoted\r
+strings if they appear in your command.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec [--no-startup-id] <command>\r
+exec_always [--no-startup-id] <command></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec chromium\r
+exec_always ~/my_script.sh\r
+\r
+# Execute the terminal emulator urxvt, which is not yet startup-notification aware.\r
+exec --no-startup-id urxvt</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The flag --no-startup-id is explained in <a href="#exec">[exec]</a>.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="workspace_screen">4.16. Automatically putting workspaces on specific screens</h3>\r
+<div class="paragraph"><p>If you assign clients to workspaces, it might be handy to put the\r
+workspaces on specific screens. Also, the assignment of workspaces to screens\r
+will determine which workspace i3 uses for a new screen when adding screens\r
+or when starting (e.g., by default it will use 1 for the first screen, 2 for\r
+the second screen and so on).</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace <workspace> output <output></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The <em>output</em> is the name of the RandR output you attach your screen to. On a\r
+laptop, you might have VGA1 and LVDS1 as output names. You can see the\r
+available outputs by running <tt>xrandr --current</tt>.</p></div>\r
+<div class="paragraph"><p>If you use named workspaces, they must be quoted:</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace 1 output LVDS1\r
+workspace 5 output VGA1\r
+workspace "2: vim" output VGA1</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_colors">4.17. Changing colors</h3>\r
+<div class="paragraph"><p>You can change all colors which i3 uses to draw the window decorations.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt><colorclass> <border> <background> <text> <indicator></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Where colorclass can be one of:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+client.focused\r
+</dt>\r
+<dd>\r
+<p>\r
+ A client which currently has the focus.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+client.focused_inactive\r
+</dt>\r
+<dd>\r
+<p>\r
+ A client which is the focused one of its container, but it does not have\r
+ the focus at the moment.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+client.unfocused\r
+</dt>\r
+<dd>\r
+<p>\r
+ A client which is not the focused one of its container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+client.urgent\r
+</dt>\r
+<dd>\r
+<p>\r
+ A client which has its urgency hint activated.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+client.placeholder\r
+</dt>\r
+<dd>\r
+<p>\r
+ Background and text color are used to draw placeholder window contents\r
+ (when restoring layouts). Border and indicator are ignored.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+client.background\r
+</dt>\r
+<dd>\r
+<p>\r
+ Background color which will be used to paint the background of the\r
+ client window on top of which the client will be rendered. Only clients\r
+ which do not cover the whole area of this window expose the color. Note\r
+ that this colorclass only takes a single color.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Colors are in HTML hex format (#rrggbb), see the following example:</p></div>\r
+<div class="paragraph"><p><strong>Examples (default colors)</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># class border backgr. text indicator\r
+client.focused #4c7899 #285577 #ffffff #2e9ef4\r
+client.focused_inactive #333333 #5f676a #ffffff #484e50\r
+client.unfocused #333333 #222222 #888888 #292d2e\r
+client.urgent #2f343a #900000 #ffffff #900000\r
+client.placeholder #000000 #0c0c0c #ffffff #000000\r
+\r
+client.background #ffffff</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Note that for the window decorations, the color around the child window is the\r
+background color, and the border color is only the two thin lines at the top of\r
+the window.</p></div>\r
+<div class="paragraph"><p>The indicator color is used for indicating where a new window will be opened.\r
+For horizontal split containers, the right border will be painted in indicator\r
+color, for vertical split containers, the bottom border. This only applies to\r
+single windows within a split container, which are otherwise indistinguishable\r
+from single windows outside of a split container.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_interprocess_communication">4.18. Interprocess communication</h3>\r
+<div class="paragraph"><p>i3 uses Unix sockets to provide an IPC interface. This allows third-party\r
+programs to get information from i3, such as the current workspaces\r
+(to display a workspace bar), and to control i3.</p></div>\r
+<div class="paragraph"><p>The IPC socket is enabled by default and will be created in\r
+<tt>/tmp/i3-%u.XXXXXX/ipc-socket.%p</tt> where <tt>%u</tt> is your UNIX username, <tt>%p</tt> is\r
+the PID of i3 and XXXXXX is a string of random characters from the portable\r
+filename character set (see mkdtemp(3)).</p></div>\r
+<div class="paragraph"><p>You can override the default path through the environment-variable <tt>I3SOCK</tt> or\r
+by specifying the <tt>ipc-socket</tt> directive. This is discouraged, though, since i3\r
+does the right thing by default. If you decide to change it, it is strongly\r
+recommended to set this to a location in your home directory so that no other\r
+user can create that directory.</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>ipc-socket ~/.i3/i3-ipc.sock</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>You can then use the <tt>i3-msg</tt> application to perform any command listed in\r
+the next section.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_focus_follows_mouse">4.19. Focus follows mouse</h3>\r
+<div class="paragraph"><p>By default, window focus follows your mouse movements. However, if you have a\r
+setup where your mouse usually is in your way (like a touchpad on your laptop\r
+which you do not want to disable completely), you might want to disable <em>focus\r
+follows mouse</em> and control focus only by using your keyboard. The mouse will\r
+still be useful inside the currently active window (for example to click on\r
+links in your browser window).</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>focus_follows_mouse yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>focus_follows_mouse no</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_mouse_warping">4.20. Mouse warping</h3>\r
+<div class="paragraph"><p>By default, when switching focus to a window on a different output (e.g.\r
+focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on\r
+LVDS-1), the mouse cursor is warped to the center of that window.</p></div>\r
+<div class="paragraph"><p>With the <tt>mouse_warping</tt> option, you can control when the mouse cursor should\r
+be warped. <tt>none</tt> disables warping entirely, whereas <tt>output</tt> is the default\r
+behavior described above.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mouse_warping output|none</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mouse_warping none</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_popups_during_fullscreen_mode">4.21. Popups during fullscreen mode</h3>\r
+<div class="paragraph"><p>When you are in fullscreen mode, some applications still open popup windows\r
+(take Xpdf for example). This is because these applications may not be aware\r
+that they are in fullscreen mode (they do not check the corresponding hint).\r
+There are three things which are possible to do in this situation:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+Display the popup if it belongs to the fullscreen application only. This is\r
+ the default and should be reasonable behavior for most users.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Just ignore the popup (don’t map it). This won’t interrupt you while you are\r
+ in fullscreen. However, some apps might react badly to this (deadlock until\r
+ you go out of fullscreen).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Leave fullscreen mode.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>popup_during_fullscreen smart|ignore|leave_fullscreen</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>popup_during_fullscreen smart</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_focus_wrapping">4.22. Focus wrapping</h3>\r
+<div class="paragraph"><p>When being in a tabbed or stacked container, the first container will be\r
+focused when you use <tt>focus down</tt> on the last container — the focus wraps. If\r
+however there is another stacked/tabbed container in that direction, focus will\r
+be set on that container. This is the default behavior so you can navigate to\r
+all your windows without having to use <tt>focus parent</tt>.</p></div>\r
+<div class="paragraph"><p>If you want the focus to <strong>always</strong> wrap and you are aware of using <tt>focus\r
+parent</tt> to switch to different containers, you can use the\r
+<tt>force_focus_wrapping</tt> configuration directive. After enabling it, the focus\r
+will always wrap.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>force_focus_wrapping yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>force_focus_wrapping yes</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_forcing_xinerama">4.23. Forcing Xinerama</h3>\r
+<div class="paragraph"><p>As explained in-depth in <a href="http://i3wm.org/docs/multi-monitor.html">http://i3wm.org/docs/multi-monitor.html</a>, some X11\r
+video drivers (especially the nVidia binary driver) only provide support for\r
+Xinerama instead of RandR. In such a situation, i3 must be told to use the\r
+inferior Xinerama API explicitly and therefore don’t provide support for\r
+reconfiguring your screens on the fly (they are read only once on startup and\r
+that’s it).</p></div>\r
+<div class="paragraph"><p>For people who cannot modify their <tt>~/.xsession</tt> to add the\r
+<tt>--force-xinerama</tt> commandline parameter, a configuration option is provided:</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>force_xinerama yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>force_xinerama yes</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Also note that your output names are not descriptive (like <tt>HDMI1</tt>) when using\r
+Xinerama, instead they are counted up, starting at 0: <tt>xinerama-0</tt>, <tt>xinerama-1</tt>, …</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_automatic_back_and_forth_when_switching_to_the_current_workspace">4.24. Automatic back-and-forth when switching to the current workspace</h3>\r
+<div class="paragraph"><p>This configuration directive enables automatic <tt>workspace back_and_forth</tt> (see\r
+<a href="#back_and_forth">[back_and_forth]</a>) when switching to the workspace that is currently focused.</p></div>\r
+<div class="paragraph"><p>For instance: Assume you are on workspace "1: www" and switch to "2: IM" using\r
+mod+2 because somebody sent you a message. You don’t need to remember where you\r
+came from now, you can just press $mod+2 again to switch back to "1: www".</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace_auto_back_and_forth yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace_auto_back_and_forth yes</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_delaying_urgency_hint_reset_on_workspace_change">4.25. Delaying urgency hint reset on workspace change</h3>\r
+<div class="paragraph"><p>If an application on another workspace sets an urgency hint, switching to this\r
+workspace may lead to immediate focus of the application, which also means the\r
+window decoration color would be immediately reset to <tt>client.focused</tt>. This\r
+may make it unnecessarily hard to tell which window originally raised the\r
+event.</p></div>\r
+<div class="paragraph"><p>In order to prevent this, you can tell i3 to delay resetting the urgency state\r
+by a certain time using the <tt>force_display_urgency_hint</tt> directive. Setting the\r
+value to 0 disables this feature.</p></div>\r
+<div class="paragraph"><p>The default is 500ms.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>force_display_urgency_hint <timeout> ms</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>force_display_urgency_hint 500 ms</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_focus_on_window_activation">4.26. Focus on window activation</h3>\r
+<div class="paragraph" id="focus_on_window_activation"><p>If a window is activated, e.g., via <tt>google-chrome www.google.com</tt>, it may request\r
+to take focus. Since this may not preferable, different reactions can be configured.</p></div>\r
+<div class="paragraph"><p>Note that this may not affect windows that are being opened. To prevent new windows\r
+from being focused, see <a href="#no_focus">[no_focus]</a>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>focus_on_window_activation smart|urgent|focus|none</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The different modes will act as follows:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+smart\r
+</dt>\r
+<dd>\r
+<p>\r
+ This is the default behavior. If the window requesting focus is on an active\r
+ workspace, it will receive the focus. Otherwise, the urgency hint will be set.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent\r
+</dt>\r
+<dd>\r
+<p>\r
+ The window will always be marked urgent, but the focus will not be stolen.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+focus\r
+</dt>\r
+<dd>\r
+<p>\r
+ The window will always be focused and not be marked urgent.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+none\r
+</dt>\r
+<dd>\r
+<p>\r
+ The window will neither be focused, nor be marked urgent.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_drawing_marks_on_window_decoration">4.27. Drawing marks on window decoration</h3>\r
+<div class="paragraph"><p>If activated, marks on windows are drawn in their window decoration. However,\r
+any mark starting with an underscore in its name (<tt>_</tt>) will not be drawn even if\r
+this option is activated.</p></div>\r
+<div class="paragraph"><p>The default for this option is <tt>yes</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>show_marks yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>show_marks yes</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="line_continuation">4.28. Line continuation</h3>\r
+<div class="paragraph"><p>Config files support line continuation, meaning when you end a line in a\r
+backslash character (<tt>\</tt>), the line-break will be ignored by the parser. This\r
+feature can be used to create more readable configuration files.</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym Mod1+f \\r
+fullscreen toggle</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_configuring_i3bar">5. Configuring i3bar</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The bar at the bottom of your monitor is drawn by a separate process called\r
+i3bar. Having this part of "the i3 user interface" in a separate process has\r
+several advantages:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+It is a modular approach. If you don’t need a workspace bar at all, or if\r
+ you prefer a different one (dzen2, xmobar, maybe even gnome-panel?), you can\r
+ just remove the i3bar configuration and start your favorite bar instead.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It follows the UNIX philosophy of "Make each program do one thing well".\r
+ While i3 manages your windows well, i3bar is good at displaying a bar on\r
+ each monitor (unless you configure it otherwise).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+It leads to two separate, clean codebases. If you want to understand i3, you\r
+ don’t need to bother with the details of i3bar and vice versa.\r
+</p>\r
+</li>\r
+</ol></div>\r
+<div class="paragraph"><p>That said, i3bar is configured in the same configuration file as i3. This is\r
+because it is tightly coupled with i3 (in contrary to i3lock or i3status which\r
+are useful for people using other window managers). Therefore, it makes no\r
+sense to use a different configuration place when we already have a good\r
+configuration infrastructure in place.</p></div>\r
+<div class="paragraph"><p>Configuring your workspace bar starts with opening a <tt>bar</tt> block. You can have\r
+multiple bar blocks to use different settings for different outputs (monitors):</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ status_command i3status\r
+}</tt></pre>\r
+</div></div>\r
+<div class="sect2">\r
+<h3 id="_i3bar_command">5.1. i3bar command</h3>\r
+<div class="paragraph"><p>By default i3 will just pass <tt>i3bar</tt> and let your shell handle the execution,\r
+searching your <tt>$PATH</tt> for a correct version.\r
+If you have a different <tt>i3bar</tt> somewhere or the binary is not in your <tt>$PATH</tt> you can\r
+tell i3 what to execute.</p></div>\r
+<div class="paragraph"><p>The specified command will be passed to <tt>sh -c</tt>, so you can use globbing and\r
+have to have correct quoting etc.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3bar_command <command></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ i3bar_command /home/user/bin/i3bar\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="status_command">5.2. Statusline command</h3>\r
+<div class="paragraph"><p>i3bar can run a program and display every line of its <tt>stdout</tt> output on the\r
+right hand side of the bar. This is useful to display system information like\r
+your current IP address, battery status or date/time.</p></div>\r
+<div class="paragraph"><p>The specified command will be passed to <tt>sh -c</tt>, so you can use globbing and\r
+have to have correct quoting etc. Note that for signal handling, depending on\r
+your shell (users of dash(1) are known to be affected), you have to use the\r
+shell’s exec command so that signals are passed to your program, not to the\r
+shell.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>status_command <command></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ status_command i3status --config ~/.i3status.conf\r
+\r
+ # For dash(1) users who want signal handling to work:\r
+ status_command exec ~/.bin/my_status_command\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_display_mode">5.3. Display mode</h3>\r
+<div class="paragraph"><p>You can either have i3bar be visible permanently at one edge of the screen\r
+(<tt>dock</tt> mode) or make it show up when you press your modifier key (<tt>hide</tt> mode).\r
+It is also possible to force i3bar to always stay hidden (<tt>invisible</tt>\r
+mode). The modifier key can be configured using the <tt>modifier</tt> option.</p></div>\r
+<div class="paragraph"><p>The mode option can be changed during runtime through the <tt>bar mode</tt> command.\r
+On reload the mode will be reverted to its configured value.</p></div>\r
+<div class="paragraph"><p>The hide mode maximizes screen space that can be used for actual windows. Also,\r
+i3bar sends the <tt>SIGSTOP</tt> and <tt>SIGCONT</tt> signals to the statusline process to\r
+save battery power.</p></div>\r
+<div class="paragraph"><p>Invisible mode allows to permanently maximize screen space, as the bar is never\r
+shown. Thus, you can configure i3bar to not disturb you by popping up because\r
+of an urgency hint or because the modifier key is pressed.</p></div>\r
+<div class="paragraph"><p>In order to control whether i3bar is hidden or shown in hide mode, there exists\r
+the hidden_state option, which has no effect in dock mode or invisible mode. It\r
+indicates the current hidden_state of the bar: (1) The bar acts like in normal\r
+hide mode, it is hidden and is only unhidden in case of urgency hints or by\r
+pressing the modifier key (<tt>hide</tt> state), or (2) it is drawn on top of the\r
+currently visible workspace (<tt>show</tt> state).</p></div>\r
+<div class="paragraph"><p>Like the mode, the hidden_state can also be controlled through i3, this can be\r
+done by using the <tt>bar hidden_state</tt> command.</p></div>\r
+<div class="paragraph"><p>The default mode is dock mode; in hide mode, the default modifier is Mod4 (usually\r
+the windows key). The default value for the hidden_state is hide.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mode dock|hide|invisible\r
+hidden_state hide|show\r
+modifier <Modifier></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ mode hide\r
+ hidden_state hide\r
+ modifier Mod1\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Available modifiers are Mod1-Mod5, Shift, Control (see <tt>xmodmap(1)</tt>).</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_mouse_button_commands">5.4. Mouse button commands</h3>\r
+<div class="paragraph"><p>Specifies a command to run when a button was pressed on i3bar to override the\r
+default behavior. This is useful, e.g., for disabling the scroll wheel action\r
+or running scripts that implement custom behavior for these buttons.</p></div>\r
+<div class="paragraph"><p>A button is always named <tt>button<n></tt>, where 1 to 5 are default buttons as follows and higher\r
+numbers can be special buttons on devices offering more buttons:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+button1\r
+</dt>\r
+<dd>\r
+<p>\r
+ Left mouse button.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+button2\r
+</dt>\r
+<dd>\r
+<p>\r
+ Middle mouse button.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+button3\r
+</dt>\r
+<dd>\r
+<p>\r
+ Right mouse button.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+button4\r
+</dt>\r
+<dd>\r
+<p>\r
+ Scroll wheel up.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+button5\r
+</dt>\r
+<dd>\r
+<p>\r
+ Scroll wheel down.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Please note that the old <tt>wheel_up_cmd</tt> and <tt>wheel_down_cmd</tt> commands are deprecated\r
+and will be removed in a future release. We strongly recommend using the more general\r
+<tt>bindsym</tt> with <tt>button4</tt> and <tt>button5</tt> instead.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym button<n> <command></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ # disable clicking on workspace buttons\r
+ bindsym button1 nop\r
+ # execute custom script when scrolling downwards\r
+ bindsym button5 exec ~/.i3/scripts/custom_wheel_down\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_bar_id">5.5. Bar ID</h3>\r
+<div class="paragraph"><p>Specifies the bar ID for the configured bar instance. If this option is missing,\r
+the ID is set to <em>bar-x</em>, where x corresponds to the position of the embedding\r
+bar block in the config file (<em>bar-0</em>, <em>bar-1</em>, …).</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>id <bar_id></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ id bar-1\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="i3bar_position">5.6. Position</h3>\r
+<div class="paragraph"><p>This option determines in which edge of the screen i3bar should show up.</p></div>\r
+<div class="paragraph"><p>The default is bottom.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>position top|bottom</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ position top\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_output_s">5.7. Output(s)</h3>\r
+<div class="paragraph"><p>You can restrict i3bar to one or more outputs (monitors). The default is to\r
+handle all outputs. Restricting the outputs is useful for using different\r
+options for different outputs by using multiple <em>bar</em> blocks.</p></div>\r
+<div class="paragraph"><p>To make a particular i3bar instance handle multiple outputs, specify the output\r
+directive multiple times.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>output <output></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># big monitor: everything\r
+bar {\r
+ # The display is connected either via HDMI or via DisplayPort\r
+ output HDMI2\r
+ output DP2\r
+ status_command i3status\r
+}\r
+\r
+# laptop monitor: bright colors and i3status with less modules.\r
+bar {\r
+ output LVDS1\r
+ status_command i3status --config ~/.i3status-small.conf\r
+ colors {\r
+ background #000000\r
+ statusline #ffffff\r
+ }\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_tray_output">5.8. Tray output</h3>\r
+<div class="paragraph"><p>i3bar by default provides a system tray area where programs such as\r
+NetworkManager, VLC, Pidgin, etc. can place little icons.</p></div>\r
+<div class="paragraph"><p>You can configure on which output (monitor) the icons should be displayed or\r
+you can turn off the functionality entirely.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>tray_output none|primary|<output></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># disable system tray\r
+bar {\r
+ tray_output none\r
+}\r
+\r
+# show tray icons on the primary monitor\r
+bar {\r
+ tray_output primary\r
+}\r
+\r
+# show tray icons on the big monitor\r
+bar {\r
+ tray_output HDMI2\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Note that you might not have a primary output configured yet. To do so, run:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>xrandr --output <output> --primary</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Note that when you use multiple bar configuration blocks, either specify\r
+<tt>tray_output primary</tt> in all of them or explicitly specify <tt>tray_output none</tt>\r
+in bars which should not display the tray, otherwise the different instances\r
+might race each other in trying to display tray icons.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_tray_padding">5.9. Tray padding</h3>\r
+<div class="paragraph"><p>The tray is shown on the right-hand side of the bar. By default, a padding of 2\r
+pixels is used for the upper, lower and right-hand side of the tray area and\r
+between the individual icons.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>tray_padding <px> [px]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Obey Fitts's law\r
+tray_padding 0</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_font">5.10. Font</h3>\r
+<div class="paragraph"><p>Specifies the font to be used in the bar. See <a href="#fonts">[fonts]</a>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>font <font></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1\r
+ font pango:DejaVu Sans Mono 10\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_custom_separator_symbol">5.11. Custom separator symbol</h3>\r
+<div class="paragraph"><p>Specifies a custom symbol to be used for the separator as opposed to the vertical,\r
+one pixel thick separator.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>separator_symbol <symbol></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ separator_symbol ":|:"\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_workspace_buttons">5.12. Workspace buttons</h3>\r
+<div class="paragraph"><p>Specifies whether workspace buttons should be shown or not. This is useful if\r
+you want to display a statusline-only bar containing additional information.</p></div>\r
+<div class="paragraph"><p>The default is to show workspace buttons.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace_buttons yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ workspace_buttons no\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_strip_workspace_numbers">5.13. Strip workspace numbers</h3>\r
+<div class="paragraph"><p>Specifies whether workspace numbers should be displayed within the workspace\r
+buttons. This is useful if you want to have a named workspace that stays in\r
+order on the bar according to its number without displaying the number prefix.</p></div>\r
+<div class="paragraph"><p>When <tt>strip_workspace_numbers</tt> is set to <tt>yes</tt>, any workspace that has a name of\r
+the form "[n]:[NAME]" will display only the name. You could use this, for\r
+instance, to display Roman numerals rather than digits by naming your\r
+workspaces to "1:I", "2:II", "3:III", "4:IV", …</p></div>\r
+<div class="paragraph"><p>The default is to display the full name within the workspace button.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>strip_workspace_numbers yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ strip_workspace_numbers yes\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_binding_mode_indicator">5.14. Binding Mode indicator</h3>\r
+<div class="paragraph"><p>Specifies whether the current binding mode indicator should be shown or not.\r
+This is useful if you want to hide the workspace buttons but still be able\r
+to see the current binding mode indicator.\r
+For an example of a <tt>mode</tt> definition, see <a href="#resizingconfig">[resizingconfig]</a>.</p></div>\r
+<div class="paragraph"><p>The default is to show the mode indicator.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>binding_mode_indicator yes|no</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ binding_mode_indicator no\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_colors">5.15. Colors</h3>\r
+<div class="paragraph"><p>As with i3, colors are in HTML hex format (#rrggbb). The following colors can\r
+be configured at the moment:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+background\r
+</dt>\r
+<dd>\r
+<p>\r
+ Background color of the bar.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+statusline\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text color to be used for the statusline.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+separator\r
+</dt>\r
+<dd>\r
+<p>\r
+ Text color to be used for the separator.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+focused_workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Border, background and text color for a workspace button when the workspace\r
+ has focus.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+active_workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Border, background and text color for a workspace button when the workspace\r
+ is active (visible) on some output, but the focus is on another one.\r
+ You can only tell this apart from the focused workspace when you are\r
+ using multiple monitors.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+inactive_workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Border, background and text color for a workspace button when the workspace\r
+ does not have focus and is not active (visible) on any output. This\r
+ will be the case for most workspaces.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent_workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Border, background and text color for a workspace button when the workspace\r
+ contains a window with the urgency hint set.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+binding_mode\r
+</dt>\r
+<dd>\r
+<p>\r
+ Border, background and text color for the binding mode indicator. If not used,\r
+ the colors will be taken from <tt>urgent_workspace</tt>.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>colors {\r
+ background <color>\r
+ statusline <color>\r
+ separator <color>\r
+\r
+ <colorclass> <border> <background> <text>\r
+}</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example (default colors)</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar {\r
+ colors {\r
+ background #000000\r
+ statusline #ffffff\r
+ separator #666666\r
+\r
+ focused_workspace #4c7899 #285577 #ffffff\r
+ active_workspace #333333 #5f676a #ffffff\r
+ inactive_workspace #333333 #222222 #888888\r
+ urgent_workspace #2f343a #900000 #ffffff\r
+ binding_mode #2f343a #900000 #ffffff\r
+ }\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_list_of_commands">6. List of commands</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Commands are what you bind to specific keypresses. You can also issue commands\r
+at runtime without pressing a key by using the IPC interface. An easy way to\r
+do this is to use the <tt>i3-msg</tt> utility:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># execute this on your shell to make the current container borderless\r
+i3-msg border none</tt></pre>\r
+</div></div>\r
+<div class="paragraph" id="command_chaining"><p>Commands can be chained by using <tt>;</tt> (a semicolon). So, to move a window to a\r
+specific workspace and immediately switch to that workspace, you can configure\r
+the following keybinding:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+x move container to workspace 3; workspace 3</tt></pre>\r
+</div></div>\r
+<div class="paragraph" id="command_criteria"><p>Furthermore, you can change the scope of a command - that is, which containers\r
+should be affected by that command, by using various criteria. The criteria\r
+are specified before any command in a pair of square brackets and are separated\r
+by space.</p></div>\r
+<div class="paragraph"><p>When using multiple commands, separate them by using a <tt>,</tt> (a comma) instead of\r
+a semicolon. Criteria apply only until the next semicolon, so if you use a\r
+semicolon to separate commands, only the first one will be executed for the\r
+matched window(s).</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># if you want to kill all windows which have the class Firefox, use:\r
+bindsym $mod+x [class="Firefox"] kill\r
+\r
+# same thing, but case-insensitive\r
+bindsym $mod+x [class="(?i)firefox"] kill\r
+\r
+# kill only the About dialog from Firefox\r
+bindsym $mod+x [class="Firefox" window_role="About"] kill\r
+\r
+# enable floating mode and move container to workspace 4\r
+for_window [class="^evil-app$"] floating enable, move container to workspace 4</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The criteria which are currently implemented are:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+class\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the window class (the second part of WM_CLASS). Use the\r
+ special value <tt><em>focused</em></tt> to match all windows having the same window\r
+ class as the currently focused window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+instance\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the window instance (the first part of WM_CLASS). Use the\r
+ special value <tt><em>focused</em></tt> to match all windows having the same window\r
+ instance as the currently focused window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+window_role\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the window role (WM_WINDOW_ROLE). Use the special value\r
+ <tt><em>focused</em></tt> to match all windows having the same window role as the\r
+ currently focused window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+window_type\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compare the window type (_NET_WM_WINDOW_TYPE). Possible values are\r
+ <tt>normal</tt>, <tt>dialog</tt>, <tt>utility</tt>, <tt>toolbar</tt>, <tt>splash</tt>, <tt>menu</tt>, <tt>dropdown_menu</tt>,\r
+ <tt>popup_menu</tt> and <tt>tooltip</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+id\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the X11 window ID, which you can get via <tt>xwininfo</tt> for example.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+title\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the X11 window title (_NET_WM_NAME or WM_NAME as fallback).\r
+ Use the special value <tt><em>focused</em></tt> to match all windows having the\r
+ same window title as the currently focused window.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+urgent\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the urgent state of the window. Can be "latest" or "oldest".\r
+ Matches the latest or oldest urgent window, respectively.\r
+ (The following aliases are also available: newest, last, recent, first)\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+workspace\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the workspace name of the workspace the window belongs to. Use\r
+ the special value <tt><em>focused</em></tt> to match all windows in the currently\r
+ focused workspace.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+con_mark\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the mark set for this container, see <a href="#vim_like_marks">[vim_like_marks]</a>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+con_id\r
+</dt>\r
+<dd>\r
+<p>\r
+ Compares the i3-internal container ID, which you can get via the IPC\r
+ interface. Handy for scripting.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>The criteria <tt>class</tt>, <tt>instance</tt>, <tt>role</tt>, <tt>title</tt>, <tt>workspace</tt> and <tt>mark</tt> are\r
+actually regular expressions (PCRE). See <tt>pcresyntax(3)</tt> or <tt>perldoc perlre</tt> for\r
+information on how to use them.</p></div>\r
+<div class="sect2">\r
+<h3 id="exec">6.1. Executing applications (exec)</h3>\r
+<div class="paragraph"><p>What good is a window manager if you can’t actually start any applications?\r
+The exec command starts an application by passing the command you specify to a\r
+shell. This implies that you can use globbing (wildcards) and programs will be\r
+searched in your <tt>$PATH</tt>.</p></div>\r
+<div class="paragraph"><p>See <a href="#command_chaining">[command_chaining]</a> for details on the special meaning of <tt>;</tt> (semicolon)\r
+and <tt>,</tt> (comma): they chain commands together in i3, so you need to use quoted\r
+strings if they appear in your command.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>exec [--no-startup-id] <command></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Start the GIMP\r
+bindsym $mod+g exec gimp\r
+\r
+# Start the terminal emulator urxvt which is not yet startup-notification-aware\r
+bindsym $mod+Return exec --no-startup-id urxvt</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The <tt>--no-startup-id</tt> parameter disables startup-notification support for this\r
+particular exec command. With startup-notification, i3 can make sure that a\r
+window appears on the workspace on which you used the exec command. Also, it\r
+will change the X11 cursor to <tt>watch</tt> (a clock) while the application is\r
+launching. So, if an application is not startup-notification aware (most GTK\r
+and Qt using applications seem to be, though), you will end up with a watch\r
+cursor for 60 seconds.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_splitting_containers">6.2. Splitting containers</h3>\r
+<div class="paragraph"><p>The split command makes the current window a split container. Split containers\r
+can contain multiple windows. Depending on the layout of the split container,\r
+new windows get placed to the right of the current one (splith) or new windows\r
+get placed below the current one (splitv).</p></div>\r
+<div class="paragraph"><p>If you apply this command to a split container with the same orientation,\r
+nothing will happen. If you use a different orientation, the split container’s\r
+orientation will be changed (if it does not have more than one window). Use\r
+<tt>layout toggle split</tt> to change the layout of any split container from splitv\r
+to splith or vice-versa.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>split vertical|horizontal</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+v split vertical\r
+bindsym $mod+h split horizontal</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_manipulating_layout">6.3. Manipulating layout</h3>\r
+<div class="paragraph"><p>Use <tt>layout toggle split</tt>, <tt>layout stacking</tt>, <tt>layout tabbed</tt>, <tt>layout splitv</tt>\r
+or <tt>layout splith</tt> to change the current container layout to splith/splitv,\r
+stacking, tabbed layout, splitv or splith, respectively.</p></div>\r
+<div class="paragraph"><p>To make the current window (!) fullscreen, use <tt>fullscreen enable</tt> (or\r
+<tt>fullscreen enable global</tt> for the global mode), to leave either fullscreen\r
+mode use <tt>fullscreen disable</tt>, and to toggle between these two states use\r
+<tt>fullscreen toggle</tt> (or <tt>fullscreen toggle global</tt>).</p></div>\r
+<div class="paragraph"><p>Likewise, to make the current window floating (or tiling again) use <tt>floating\r
+enable</tt> respectively <tt>floating disable</tt> (or <tt>floating toggle</tt>):</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>layout default|tabbed|stacking|splitv|splith\r
+layout toggle [split|all]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+s layout stacking\r
+bindsym $mod+l layout toggle split\r
+bindsym $mod+w layout tabbed\r
+\r
+# Toggle between stacking/tabbed/split:\r
+bindsym $mod+x layout toggle\r
+\r
+# Toggle between stacking/tabbed/splith/splitv:\r
+bindsym $mod+x layout toggle all\r
+\r
+# Toggle fullscreen\r
+bindsym $mod+f fullscreen toggle\r
+\r
+# Toggle floating/tiling\r
+bindsym $mod+t floating toggle</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_focusing_moving_containers">6.4. Focusing containers</h3>\r
+<div class="paragraph"><p>To change focus, you can use the <tt>focus</tt> command. The following options are\r
+available:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+left|right|up|down\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sets focus to the nearest container in the given direction.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+parent\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sets focus to the parent container of the current container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+child\r
+</dt>\r
+<dd>\r
+<p>\r
+ The opposite of <tt>focus parent</tt>, sets the focus to the last focused\r
+ child container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+floating\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sets focus to the last focused floating container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+tiling\r
+</dt>\r
+<dd>\r
+<p>\r
+ Sets focus to the last focused tiling container.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+mode_toggle\r
+</dt>\r
+<dd>\r
+<p>\r
+ Toggles between floating/tiling containers.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+output\r
+</dt>\r
+<dd>\r
+<p>\r
+ Followed by a direction or an output name, this will focus the\r
+ corresponding output.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>focus left|right|down|up\r
+focus parent|child|floating|tiling|mode_toggle\r
+focus output left|right|up|down|<output></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Focus container on the left, bottom, top, right\r
+bindsym $mod+j focus left\r
+bindsym $mod+k focus down\r
+bindsym $mod+l focus up\r
+bindsym $mod+semicolon focus right\r
+\r
+# Focus parent container\r
+bindsym $mod+u focus parent\r
+\r
+# Focus last floating/tiling container\r
+bindsym $mod+g focus mode_toggle\r
+\r
+# Focus the output right to the current one\r
+bindsym $mod+x focus output right\r
+\r
+# Focus the big output\r
+bindsym $mod+x focus output HDMI-2</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving_containers">6.5. Moving containers</h3>\r
+<div class="paragraph"><p>Use the <tt>move</tt> command to move a container.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Moves the container into the given direction.\r
+# The optional pixel argument specifies how far the\r
+# container should be moved if it is floating and\r
+# defaults to 10 pixels.\r
+move <left|right|down|up> [<px> px]\r
+\r
+# Moves the container either to a specific location\r
+# or to the center of the screen. If 'absolute' is\r
+# used, it is moved to the center of all outputs.\r
+move [absolute] position [[<px> px] [<px> px]|center]\r
+\r
+# Moves the container to the current position of the\r
+# mouse cursor. Only affects floating containers.\r
+move position mouse</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Move container to the left, bottom, top, right\r
+bindsym $mod+j move left\r
+bindsym $mod+k move down\r
+bindsym $mod+l move up\r
+bindsym $mod+semicolon move right\r
+\r
+# Move container, but make floating containers\r
+# move more than the default\r
+bindsym $mod+j move left 20 px\r
+\r
+# Move floating container to the center of all outputs\r
+bindsym $mod+c move absolute position center\r
+\r
+# Move container to the current position of the cursor\r
+bindsym $mod+m move position mouse</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_sticky_floating_windows">6.6. Sticky floating windows</h3>\r
+<div class="paragraph"><p>If you want a window to stick to the glass, i.e., have it stay on screen even\r
+if you switch to another workspace, you can use the <tt>sticky</tt> command. For\r
+example, this can be useful for notepads, a media player or a video chat\r
+window.</p></div>\r
+<div class="paragraph"><p>Note that while any window can be made sticky through this command, it will\r
+only take effect if the window is floating.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sticky enable|disable|toggle</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># make a terminal sticky that was started as a notepad\r
+for_window [instance=notepad] sticky enable</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_named_workspaces_moving_to_workspaces">6.7. Changing (named) workspaces/moving to workspaces</h3>\r
+<div class="paragraph"><p>To change to a specific workspace, use the <tt>workspace</tt> command, followed by the\r
+number or name of the workspace. To move containers to specific workspaces, use\r
+<tt>move container to workspace</tt>.</p></div>\r
+<div class="paragraph"><p>You can also switch to the next and previous workspace with the commands\r
+<tt>workspace next</tt> and <tt>workspace prev</tt>, which is handy, for example, if you have\r
+workspace 1, 3, 4 and 9 and you want to cycle through them with a single key\r
+combination. To restrict those to the current output, use <tt>workspace\r
+next_on_output</tt> and <tt>workspace prev_on_output</tt>. Similarly, you can use <tt>move\r
+container to workspace next</tt>, <tt>move container to workspace prev</tt> to move a\r
+container to the next/previous workspace and <tt>move container to workspace current</tt>\r
+(the last one makes sense only when used with criteria).</p></div>\r
+<div class="paragraph"><p>See <a href="#move_to_outputs">[move_to_outputs]</a> for how to move a container/workspace to a different\r
+RandR output.</p></div>\r
+<div class="paragraph"><p>Workspace names are parsed as\r
+<a href="https://developer.gnome.org/pango/stable/PangoMarkupFormat.html">Pango markup</a>\r
+by i3bar.</p></div>\r
+<div class="paragraph" id="back_and_forth"><p>To switch back to the previously focused workspace, use <tt>workspace\r
+back_and_forth</tt>; likewise, you can move containers to the previously focused\r
+workspace using <tt>move container to workspace back_and_forth</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>workspace next|prev|next_on_output|prev_on_output\r
+workspace back_and_forth\r
+workspace <name>\r
+workspace number <name>\r
+\r
+move [window|container] [to] workspace <name>\r
+move [window|container] [to] workspace number <name>\r
+move [window|container] [to] workspace prev|next|current</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+1 workspace 1\r
+bindsym $mod+2 workspace 2\r
+bindsym $mod+3 workspace 3:<span foreground="red">vim</span>\r
+...\r
+\r
+bindsym $mod+Shift+1 move container to workspace 1\r
+bindsym $mod+Shift+2 move container to workspace 2\r
+...\r
+\r
+# switch between the current and the previously focused one\r
+bindsym $mod+b workspace back_and_forth\r
+bindsym $mod+Shift+b move container to workspace back_and_forth\r
+\r
+# move the whole workspace to the next output\r
+bindsym $mod+x move workspace to output right\r
+\r
+# move firefox to current workspace\r
+bindsym $mod+F1 [class="Firefox"] move workspace current</tt></pre>\r
+</div></div>\r
+<div class="sect3">\r
+<h4 id="_named_workspaces">6.7.1. Named workspaces</h4>\r
+<div class="paragraph"><p>Workspaces are identified by their name. So, instead of using numbers in the\r
+workspace command, you can use an arbitrary name:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+1 workspace mail\r
+...</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>If you want the workspace to have a number <strong>and</strong> a name, just prefix the\r
+number, like this:</p></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+1 workspace 1: mail\r
+bindsym $mod+2 workspace 2: www\r
+...</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Note that the workspace will really be named "1: mail". i3 treats workspace\r
+names beginning with a number in a slightly special way. Normally, named\r
+workspaces are ordered the way they appeared. When they start with a number, i3\r
+will order them numerically. Also, you will be able to use <tt>workspace number 1</tt>\r
+to switch to the workspace which begins with number 1, regardless of which name\r
+it has. This is useful in case you are changing the workspace’s name\r
+dynamically. To combine both commands you can use <tt>workspace number 1: mail</tt> to\r
+specify a default name if there’s currently no workspace starting with a "1".</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_renaming_workspaces">6.7.2. Renaming workspaces</h4>\r
+<div class="paragraph"><p>You can rename workspaces. This might be useful to start with the default\r
+numbered workspaces, do your work, and rename the workspaces afterwards to\r
+reflect what’s actually on them. You can also omit the old name to rename\r
+the currently focused workspace. This is handy if you want to use the\r
+rename command with <tt>i3-input</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>rename workspace <old_name> to <new_name>\r
+rename workspace to <new_name></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3-msg 'rename workspace 5 to 6'\r
+i3-msg 'rename workspace 1 to "1: www"'\r
+i3-msg 'rename workspace "1: www" to "10: www"'\r
+i3-msg 'rename workspace to "2: mail"'\r
+bindsym $mod+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving_workspaces_to_a_different_screen">6.8. Moving workspaces to a different screen</h3>\r
+<div class="paragraph"><p>See <a href="#move_to_outputs">[move_to_outputs]</a> for how to move a container/workspace to a different\r
+RandR output.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving_containers_workspaces_to_randr_outputs">6.9. Moving containers/workspaces to RandR outputs</h3>\r
+<div class="paragraph" id="move_to_outputs"><p>To move a container to another RandR output (addressed by names like <tt>LVDS1</tt> or\r
+<tt>VGA1</tt>) or to a RandR output identified by a specific direction (like <tt>left</tt>,\r
+<tt>right</tt>, <tt>up</tt> or <tt>down</tt>), there are two commands:</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>move container to output left|right|down|up|<output>\r
+move workspace to output left|right|down|up|<output></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Move the current workspace to the next output\r
+# (effectively toggles when you only have two outputs)\r
+bindsym $mod+x move workspace to output right\r
+\r
+# Put this window on the presentation output.\r
+bindsym $mod+x move container to output VGA1</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_moving_containers_workspaces_to_marks">6.10. Moving containers/workspaces to marks</h3>\r
+<div class="paragraph"><p>To move a container to another container with a specific mark (see <a href="#vim_like_marks">[vim_like_marks]</a>),\r
+you can use the following command.</p></div>\r
+<div class="paragraph"><p>The window will be moved right after the marked container in the tree, i.e., it ends up\r
+in the same position as if you had opened a new window when the marked container was\r
+focused. If the mark is on a split container, the window will appear as a new child\r
+after the currently focused child within that container.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>move window|container to mark <mark></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>for_window [instance="tabme"] move window to mark target</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="resizingconfig">6.11. Resizing containers/windows</h3>\r
+<div class="paragraph"><p>If you want to resize containers/windows using your keyboard, you can use the\r
+<tt>resize</tt> command:</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>resize grow|shrink <direction> [<px> px [or <ppt> ppt]]\r
+resize set <width> [px] <height> [px]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Direction can either be one of <tt>up</tt>, <tt>down</tt>, <tt>left</tt> or <tt>right</tt>. Or you can be\r
+less specific and use <tt>width</tt> or <tt>height</tt>, in which case i3 will take/give\r
+space from all the other containers. The optional pixel argument specifies by\r
+how many pixels a <strong>floating container</strong> should be grown or shrunk (the default\r
+is 10 pixels). The ppt argument means percentage points and specifies by how\r
+many percentage points a <strong>tiling container</strong> should be grown or shrunk (the\r
+default is 10 percentage points). Note that <tt>resize set</tt> will only work for\r
+floating containers.</p></div>\r
+<div class="paragraph"><p>I recommend using the resize command inside a so called <tt>mode</tt>:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Example: Configuration file, defining a mode for resizing</div>\r
+<div class="content">\r
+<pre><tt>mode "resize" {\r
+ # These bindings trigger as soon as you enter the resize mode\r
+\r
+ # Pressing left will shrink the window’s width.\r
+ # Pressing right will grow the window’s width.\r
+ # Pressing up will shrink the window’s height.\r
+ # Pressing down will grow the window’s height.\r
+ bindsym j resize shrink width 10 px or 10 ppt\r
+ bindsym k resize grow height 10 px or 10 ppt\r
+ bindsym l resize shrink height 10 px or 10 ppt\r
+ bindsym semicolon resize grow width 10 px or 10 ppt\r
+\r
+ # same bindings, but for the arrow keys\r
+ bindsym Left resize shrink width 10 px or 10 ppt\r
+ bindsym Down resize grow height 10 px or 10 ppt\r
+ bindsym Up resize shrink height 10 px or 10 ppt\r
+ bindsym Right resize grow width 10 px or 10 ppt\r
+\r
+ # back to normal: Enter or Escape\r
+ bindsym Return mode "default"\r
+ bindsym Escape mode "default"\r
+}\r
+\r
+# Enter resize mode\r
+bindsym $mod+r mode "resize"</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example 2 - setting urxvt size to 640x480:</strong></p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>for_window [class="urxvt"] resize set 640 480</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_jumping_to_specific_windows">6.12. Jumping to specific windows</h3>\r
+<div class="paragraph"><p>Often when in a multi-monitor environment, you want to quickly jump to a\r
+specific window. For example, while working on workspace 3 you may want to\r
+jump to your mail client to email your boss that you’ve achieved some\r
+important goal. Instead of figuring out how to navigate to your mail client,\r
+it would be more convenient to have a shortcut. You can use the <tt>focus</tt> command\r
+with criteria for that.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>[class="class"] focus\r
+[title="title"] focus</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Get me to the next open VIM instance\r
+bindsym $mod+a [class="urxvt" title="VIM"] focus</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_vim_like_marks_mark_goto">6.13. VIM-like marks (mark/goto)</h3>\r
+<div class="paragraph" id="vim_like_marks"><p>This feature is like the jump feature: It allows you to directly jump to a\r
+specific window (this means switching to the appropriate workspace and setting\r
+focus to the windows). However, you can directly mark a specific window with\r
+an arbitrary label and use it afterwards. You can unmark the label in the same\r
+way, using the unmark command. If you don’t specify a label, unmark removes all\r
+marks. You do not need to ensure that your windows have unique classes or\r
+titles, and you do not need to change your configuration file.</p></div>\r
+<div class="paragraph"><p>As the command needs to include the label with which you want to mark the\r
+window, you cannot simply bind it to a key. <tt>i3-input</tt> is a tool created\r
+for this purpose: It lets you input a command and sends the command to i3. It\r
+can also prefix this command and display a custom prompt for the input dialog.</p></div>\r
+<div class="paragraph"><p>The additional <tt>--toggle</tt> option will remove the mark if the window already has\r
+this mark, add it if the window has none or replace the current mark if it has\r
+another mark.</p></div>\r
+<div class="paragraph"><p>Refer to <tt>show_marks</tt> if you don’t want marks to be shown in the window decoration.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>mark [--toggle] <identifier>\r
+[con_mark="identifier"] focus\r
+unmark <identifier></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example (in a terminal)</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ i3-msg mark irssi\r
+$ i3-msg '[con_mark="irssi"] focus'\r
+$ i3-msg unmark irssi</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_window_title_format">6.14. Window title format</h3>\r
+<div class="paragraph"><p>By default, i3 will simply print the X11 window title. Using <tt>title_format</tt>,\r
+this can be customized by setting the format to the desired output. This\r
+directive supports\r
+<a href="https://developer.gnome.org/pango/stable/PangoMarkupFormat.html">Pango markup</a>\r
+and the following placeholders which will be replaced:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+<tt>%title</tt>\r
+</dt>\r
+<dd>\r
+<p>\r
+ The X11 window title (_NET_WM_NAME or WM_NAME as fallback).\r
+<tt>%class</tt>:\r
+ The X11 window class (second part of WM_CLASS). This corresponds to the\r
+ <tt>class</tt> criterion, see <a href="#command_criteria">[command_criteria]</a>.\r
+<tt>%instance</tt>:\r
+ The X11 window instance (first part of WM_CLASS). This corresponds to the\r
+ <tt>instance</tt> criterion, see <a href="#command_criteria">[command_criteria]</a>.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>Using the <a href="#for_window">[for_window]</a> directive, you can set the title format for any window\r
+based on <a href="#command_criteria">[command_criteria]</a>.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>title_format <format></tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># give the focused window a prefix\r
+bindsym $mod+p title_format "Important | %title"\r
+\r
+# print all window titles bold\r
+for_window [class=".*"] title_format "<b>%title</b>"\r
+\r
+# print window titles of firefox windows red\r
+for_window [class="(?i)firefox"] title_format "<span foreground='red'>%title</span>"</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_changing_border_style">6.15. Changing border style</h3>\r
+<div class="paragraph"><p>To change the border of the current client, you can use <tt>border normal</tt> to use the normal\r
+border (including window title), <tt>border pixel 1</tt> to use a 1-pixel border (no window title)\r
+and <tt>border none</tt> to make the client borderless.</p></div>\r
+<div class="paragraph"><p>There is also <tt>border toggle</tt> which will toggle the different border styles.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>border normal|pixel [<n>]\r
+border none|toggle\r
+\r
+# legacy syntax, equivalent to "border pixel 1"\r
+border 1pixel</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># use window title, but no border\r
+bindsym $mod+t border normal 0\r
+# use no window title and a thick border\r
+bindsym $mod+y border pixel 3\r
+# use neither window title nor border\r
+bindsym $mod+u border none</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="shmlog">6.16. Enabling shared memory logging</h3>\r
+<div class="paragraph"><p>As described in <a href="http://i3wm.org/docs/debugging.html">http://i3wm.org/docs/debugging.html</a>, i3 can log to a shared\r
+memory buffer, which you can dump using <tt>i3-dump-log</tt>. The <tt>shmlog</tt> command\r
+allows you to enable or disable the shared memory logging at runtime.</p></div>\r
+<div class="paragraph"><p>Note that when using <tt>shmlog <size_in_bytes></tt>, the current log will be\r
+discarded and a new one will be started.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>shmlog <size_in_bytes>\r
+shmlog on|off|toggle</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Enable/disable logging\r
+bindsym $mod+x shmlog toggle\r
+\r
+# or, from a terminal:\r
+# increase the shared memory log buffer to 50 MiB\r
+i3-msg shmlog $((50*1024*1024))</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_enabling_debug_logging">6.17. Enabling debug logging</h3>\r
+<div class="paragraph"><p>The <tt>debuglog</tt> command allows you to enable or disable debug logging at\r
+runtime. Debug logging is much more verbose than non-debug logging. This\r
+command does not activate shared memory logging (shmlog), and as such is most\r
+likely useful in combination with the above-described <a href="#shmlog">[shmlog]</a> command.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>debuglog on|off|toggle</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Enable/disable logging\r
+bindsym $mod+x debuglog toggle</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_reloading_restarting_exiting">6.18. Reloading/Restarting/Exiting</h3>\r
+<div class="paragraph"><p>You can make i3 reload its configuration file with <tt>reload</tt>. You can also\r
+restart i3 inplace with the <tt>restart</tt> command to get it out of some weird state\r
+(if that should ever happen) or to perform an upgrade without having to restart\r
+your X session. To exit i3 properly, you can use the <tt>exit</tt> command,\r
+however you don’t need to (simply killing your X session is fine as well).</p></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bindsym $mod+Shift+r restart\r
+bindsym $mod+Shift+w reload\r
+bindsym $mod+Shift+e exit</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_scratchpad">6.19. Scratchpad</h3>\r
+<div class="paragraph"><p>There are two commands to use any existing window as scratchpad window. <tt>move\r
+scratchpad</tt> will move a window to the scratchpad workspace. This will make it\r
+invisible until you show it again. There is no way to open that workspace.\r
+Instead, when using <tt>scratchpad show</tt>, the window will be shown again, as a\r
+floating window, centered on your current workspace (using <tt>scratchpad show</tt> on\r
+a visible scratchpad window will make it hidden again, so you can have a\r
+keybinding to toggle). Note that this is just a normal floating window, so if\r
+you want to "remove it from scratchpad", you can simple make it tiling again\r
+(<tt>floating toggle</tt>).</p></div>\r
+<div class="paragraph"><p>As the name indicates, this is useful for having a window with your favorite\r
+editor always at hand. However, you can also use this for other permanently\r
+running applications which you don’t want to see all the time: Your music\r
+player, alsamixer, maybe even your mail client…?</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>move scratchpad\r
+\r
+scratchpad show</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Make the currently focused window a scratchpad\r
+bindsym $mod+Shift+minus move scratchpad\r
+\r
+# Show the first scratchpad window\r
+bindsym $mod+minus scratchpad show\r
+\r
+# Show the sup-mail scratchpad window, if any.\r
+bindsym mod4+s [title="^Sup ::"] scratchpad show</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_nop">6.20. Nop</h3>\r
+<div class="paragraph"><p>There is a no operation command <tt>nop</tt> which allows you to override default\r
+behavior. This can be useful for, e.g., disabling a focus change on clicks with\r
+the middle mouse button.</p></div>\r
+<div class="paragraph"><p>The optional <tt>comment</tt> argument is ignored, but will be printed to the log file\r
+for debugging purposes.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>nop [<comment>]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Example</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Disable focus change for clicks on titlebars\r
+# with the middle mouse button\r
+bindsym button2 nop</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_i3bar_control">6.21. i3bar control</h3>\r
+<div class="paragraph"><p>There are two options in the configuration of each i3bar instance that can be\r
+changed during runtime by invoking a command through i3. The commands <tt>bar\r
+hidden_state</tt> and <tt>bar mode</tt> allow setting the current hidden_state\r
+respectively mode option of each bar. It is also possible to toggle between\r
+hide state and show state as well as between dock mode and hide mode. Each\r
+i3bar instance can be controlled individually by specifying a bar_id, if none\r
+is given, the command is executed for all bar instances.</p></div>\r
+<div class="paragraph"><p><strong>Syntax</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>bar hidden_state hide|show|toggle [<bar_id>]\r
+\r
+bar mode dock|hide|invisible|toggle [<bar_id>]</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p><strong>Examples</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt># Toggle between hide state and show state\r
+bindsym $mod+m bar hidden_state toggle\r
+\r
+# Toggle between dock mode and hide mode\r
+bindsym $mod+n bar mode toggle\r
+\r
+# Set the bar instance with id 'bar-1' to switch to hide mode\r
+bindsym $mod+b bar mode hide bar-1\r
+\r
+# Set the bar instance with id 'bar-1' to always stay hidden\r
+bindsym $mod+Shift+b bar mode invisible bar-1</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="multi_monitor">7. Multiple monitors</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>As you can see in the goal list on the website, i3 was specifically developed\r
+with support for multiple monitors in mind. This section will explain how to\r
+handle multiple monitors.</p></div>\r
+<div class="paragraph"><p>When you have only one monitor, things are simple. You usually start with\r
+workspace 1 on your monitor and open new ones as you need them.</p></div>\r
+<div class="paragraph"><p>When you have more than one monitor, each monitor will get an initial\r
+workspace. The first monitor gets 1, the second gets 2 and a possible third\r
+would get 3. When you switch to a workspace on a different monitor, i3 will\r
+switch to that monitor and then switch to the workspace. This way, you don’t\r
+need shortcuts to switch to a specific monitor, and you don’t need to remember\r
+where you put which workspace. New workspaces will be opened on the currently\r
+active monitor. It is not possible to have a monitor without a workspace.</p></div>\r
+<div class="paragraph"><p>The idea of making workspaces global is based on the observation that most\r
+users have a very limited set of workspaces on their additional monitors.\r
+They are often used for a specific task (browser, shell) or for monitoring\r
+several things (mail, IRC, syslog, …). Thus, using one workspace on one monitor\r
+and "the rest" on the other monitors often makes sense. However, as you can\r
+create an unlimited number of workspaces in i3 and tie them to specific\r
+screens, you can have the "traditional" approach of having X workspaces per\r
+screen by changing your configuration (using modes, for example).</p></div>\r
+<div class="sect2">\r
+<h3 id="_configuring_your_monitors">7.1. Configuring your monitors</h3>\r
+<div class="paragraph"><p>To help you get going if you have never used multiple monitors before, here is\r
+a short overview of the xrandr options which will probably be of interest to\r
+you. It is always useful to get an overview of the current screen configuration.\r
+Just run "xrandr" and you will get an output like the following:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ xrandr\r
+Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192\r
+VGA1 disconnected (normal left inverted right x axis y axis)\r
+LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm\r
+ 1280x800 60.0*+ 50.0\r
+ 1024x768 85.0 75.0 70.1 60.0\r
+ 832x624 74.6\r
+ 800x600 85.1 72.2 75.0 60.3 56.2\r
+ 640x480 85.0 72.8 75.0 59.9\r
+ 720x400 85.0\r
+ 640x400 85.1\r
+ 640x350 85.1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Several things are important here: You can see that <tt>LVDS1</tt> is connected (of\r
+course, it is the internal flat panel) but <tt>VGA1</tt> is not. If you have a monitor\r
+connected to one of the ports but xrandr still says "disconnected", you should\r
+check your cable, monitor or graphics driver.</p></div>\r
+<div class="paragraph"><p>The maximum resolution you can see at the end of the first line is the maximum\r
+combined resolution of your monitors. By default, it is usually too low and has\r
+to be increased by editing <tt>/etc/X11/xorg.conf</tt>.</p></div>\r
+<div class="paragraph"><p>So, say you connected VGA1 and want to use it as an additional screen:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>xrandr --output VGA1 --auto --left-of LVDS1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>This command makes xrandr try to find the native resolution of the device\r
+connected to <tt>VGA1</tt> and configures it to the left of your internal flat panel.\r
+When running "xrandr" again, the output looks like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>$ xrandr\r
+Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 8192 x 8192\r
+VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm\r
+ 1280x1024 60.0*+ 75.0\r
+ 1280x960 60.0\r
+ 1152x864 75.0\r
+ 1024x768 75.1 70.1 60.0\r
+ 832x624 74.6\r
+ 800x600 72.2 75.0 60.3 56.2\r
+ 640x480 72.8 75.0 66.7 60.0\r
+ 720x400 70.1\r
+LVDS1 connected 1280x800+1280+0 (normal left inverted right x axis y axis) 261mm x 163mm\r
+ 1280x800 60.0*+ 50.0\r
+ 1024x768 85.0 75.0 70.1 60.0\r
+ 832x624 74.6\r
+ 800x600 85.1 72.2 75.0 60.3 56.2\r
+ 640x480 85.0 72.8 75.0 59.9\r
+ 720x400 85.0\r
+ 640x400 85.1\r
+ 640x350 85.1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Please note that i3 uses exactly the same API as xrandr does, so it will see\r
+only what you can see in xrandr.</p></div>\r
+<div class="paragraph"><p>See also <a href="#presentations">[presentations]</a> for more examples of multi-monitor setups.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_interesting_configuration_for_multi_monitor_environments">7.2. Interesting configuration for multi-monitor environments</h3>\r
+<div class="paragraph"><p>There are several things to configure in i3 which may be interesting if you\r
+have more than one monitor:</p></div>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+You can specify which workspace should be put on which screen. This\r
+ allows you to have a different set of workspaces when starting than just\r
+ 1 for the first monitor, 2 for the second and so on. See\r
+ <a href="#workspace_screen">[workspace_screen]</a>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If you want some applications to generally open on the bigger screen\r
+ (MPlayer, Firefox, …), you can assign them to a specific workspace, see\r
+ <a href="#assign_workspace">[assign_workspace]</a>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+If you have many workspaces on many monitors, it might get hard to keep\r
+ track of which window you put where. Thus, you can use vim-like marks to\r
+ quickly switch between windows. See <a href="#vim_like_marks">[vim_like_marks]</a>.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+For information on how to move existing workspaces between monitors,\r
+ see <a href="#_moving_containers_workspaces_to_randr_outputs">[_moving_containers_workspaces_to_randr_outputs]</a>.\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_i3_and_the_rest_of_your_software_world">8. i3 and the rest of your software world</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_displaying_a_status_line">8.1. Displaying a status line</h3>\r
+<div class="paragraph"><p>A very common thing amongst users of exotic window managers is a status line at\r
+some corner of the screen. It is an often superior replacement to the widget\r
+approach you have in the task bar of a traditional desktop environment.</p></div>\r
+<div class="paragraph"><p>If you don’t already have your favorite way of generating such a status line\r
+(self-written scripts, conky, …), then i3status is the recommended tool for\r
+this task. It was written in C with the goal of using as few syscalls as\r
+possible to reduce the time your CPU is woken up from sleep states. Because\r
+i3status only spits out text, you need to combine it with some other tool, like\r
+i3bar. See <a href="#status_command">[status_command]</a> for how to display i3status in i3bar.</p></div>\r
+<div class="paragraph"><p>Regardless of which application you use to display the status line, you\r
+want to make sure that it registers as a dock window using EWMH hints. i3 will\r
+position the window either at the top or at the bottom of the screen, depending\r
+on which hint the application sets. With i3bar, you can configure its position,\r
+see <a href="#i3bar_position">[i3bar_position]</a>.</p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_giving_presentations_multi_monitor">8.2. Giving presentations (multi-monitor)</h3>\r
+<div class="paragraph"><p>When giving a presentation, you typically want the audience to see what you see\r
+on your screen and then go through a series of slides (if the presentation is\r
+simple). For more complex presentations, you might want to have some notes\r
+which only you can see on your screen, while the audience can only see the\r
+slides.</p></div>\r
+<div class="sect3">\r
+<h4 id="presentations">8.2.1. Case 1: everybody gets the same output</h4>\r
+<div class="paragraph"><p>This is the simple case. You connect your computer to the video projector,\r
+turn on both (computer and video projector) and configure your X server to\r
+clone the internal flat panel of your computer to the video output:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>xrandr --output VGA1 --mode 1024x768 --same-as LVDS1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>i3 will then use the lowest common subset of screen resolutions, the rest of\r
+your screen will be left untouched (it will show the X background). So, in\r
+our example, this would be 1024x768 (my notebook has 1280x800).</p></div>\r
+</div>\r
+<div class="sect3">\r
+<h4 id="_case_2_you_can_see_more_than_your_audience">8.2.2. Case 2: you can see more than your audience</h4>\r
+<div class="paragraph"><p>This case is a bit harder. First of all, you should configure the VGA output\r
+somewhere near your internal flat panel, say right of it:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>xrandr --output VGA1 --mode 1024x768 --right-of LVDS1</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Now, i3 will put a new workspace (depending on your settings) on the new screen\r
+and you are in multi-monitor mode (see <a href="#multi_monitor">[multi_monitor]</a>).</p></div>\r
+<div class="paragraph"><p>Because i3 is not a compositing window manager, there is no ability to\r
+display a window on two screens at the same time. Instead, your presentation\r
+software needs to do this job (that is, open a window on each screen).</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<title>i3: External workspace bars</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+ <div id="main">\r
+ <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+ <ul id="nav">\r
+ <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+ <li><a href="/screenshots">Screens</a></li>\r
+ <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
+ <li><a href="/contact">Contact</a></li>\r
+ <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+ </ul>\r
+ <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>External workspace bars</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt><<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>></tt></span><br />\r
+<span id="revdate">April 2013</span>\r
+<div id="toc">
+ <div id="toctitle">Table of Contents</div>
+ <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="preamble">\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 comes with i3bar by default, a simple bar that is sufficient for most users.\r
+In case you are unhappy with it, this document explains how to use a different,\r
+external workspace bar. Note that we do not provide support for external\r
+programs.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_internal_and_external_bars">1. Internal and external bars</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The internal workspace bar of i3 is meant to be a reasonable default so that\r
+you can use i3 without having too much hassle when setting it up. It is quite\r
+simple and intended to stay this way.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_dock_mode">2. dock mode</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>You typically want to see the same workspace bar on every workspace on a\r
+specific screen. Also, you don’t want to place the workspace bar somewhere\r
+in your layout by hand. This is where dock mode comes in: When a program sets\r
+the appropriate hint (_NET_WM_WINDOW_TYPE_DOCK), it will be managed in dock\r
+mode by i3. That means it will be placed at the bottom or top of the screen\r
+(while other edges of the screen are possible in the NetWM standard, this is\r
+not yet implemented in i3), it will not overlap any other window and it will be\r
+on every workspace for the specific screen it was placed on initially.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_the_ipc_interface">3. The IPC interface</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In the context of using an external workspace bar, the IPC interface needs to\r
+provide the bar program with the current workspaces and output (as in VGA-1,\r
+LVDS-1, …) configuration. In the other direction, the program has to be able\r
+to switch to specific workspaces.</p></div>\r
+<div class="paragraph"><p>By default, the IPC interface is enabled and you can get the path to the socket\r
+by calling <tt>i3 --get-socketpath</tt>.</p></div>\r
+<div class="paragraph"><p>To learn more about the protocol which is used for IPC, see <tt>docs/ipc</tt>.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_output_changes_on_the_fly">4. Output changes (on-the-fly)</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3 implements the RandR API and can handle changing outputs quite well. So, an\r
+external workspace bar implementation needs to make sure that when you change\r
+the resolution of any of your screens (or enable/disable an output), the bars\r
+will be adjusted properly.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_i3_wsbar_an_example_implementation">5. i3-wsbar, an example implementation</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><tt>i3-wsbar</tt> used to be the reference implementation before we had <tt>i3bar</tt>.\r
+Nowadays, it is not shipped with release tarballs, but you can still get it at\r
+<a href="http://code.stapelberg.de/git/i3/tree/contrib/i3-wsbar">http://code.stapelberg.de/git/i3/tree/contrib/i3-wsbar</a></p></div>\r
+<div class="sect2">\r
+<h3 id="_the_big_picture">5.1. The big picture</h3>\r
+<div class="paragraph"><p>The most common reason to use an external workspace bar is to integrate system\r
+information such as what <tt>i3status</tt> or <tt>conky</tt> provide into the workspace bar.\r
+So, we have <tt>i3status</tt> or a similar program, which only provides\r
+text output (formatted in some way). To display this text nicely on the screen,\r
+there are programs such as dzen2, xmobar and similar. We will stick to dzen2\r
+from here on. So, we have the output of i3status, which needs to go into dzen2\r
+somehow. But we also want to display the list of workspaces. <tt>i3-wsbar</tt> takes\r
+input on stdin, combines it with a formatted workspace list and pipes it to\r
+dzen2.</p></div>\r
+<div class="paragraph"><p>Please note that <tt>i3-wsbar</tt> does not print its output to stdout. Instead, it\r
+launches the dzen2 instances on its own. This is necessary to handle changes\r
+in the available outputs (to place a new dzen2 on a new screen for example).</p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<a class="image" href="wsbar.png">\r
+<img src="wsbar.png" alt="Overview" />\r
+</a>\r
+</span></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_running_i3_wsbar">5.2. Running i3-wsbar</h3>\r
+<div class="paragraph"><p>The most simple usage of i3-wsbar looks like this:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3-wsbar -c "dzen2 -x %x -dock"</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>The <tt>%x</tt> in the command name will be replaced by the X position of the output\r
+for which this workspace bar is running. i3 will automatically place the\r
+workspace bar on the correct output when dzen2 is started in dock mode. The\r
+bar which you will see should look exactly like the internal bar of i3.</p></div>\r
+<div class="paragraph"><p>To actually get a benefit, you want to give <tt>i3-wsbar</tt> some input:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3status | i3-wsbar -c "dzen2 -x %x -dock"</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="541pt" height="418pt" viewBox="0 0 541 418" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 1.140625 4.0625 L 1.140625 -16.21875 L 12.640625 -16.21875 L 12.640625 4.0625 L 1.140625 4.0625 Z M 2.4375 2.78125 L 11.359375 2.78125 L 11.359375 -14.921875 L 2.4375 -14.921875 L 2.4375 2.78125 Z M 2.4375 2.78125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 1.9375 -12.578125 L 5.953125 -12.578125 L 5.953125 0 L 1.9375 0 L 1.9375 -12.578125 Z M 1.9375 -17.46875 L 5.953125 -17.46875 L 5.953125 -14.203125 L 1.9375 -14.203125 L 1.9375 -17.46875 Z M 1.9375 -17.46875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 10.71875 -9.046875 C 11.84375 -8.753906 12.695312 -8.242188 13.28125 -7.515625 C 13.875 -6.796875 14.171875 -5.878906 14.171875 -4.765625 C 14.171875 -3.097656 13.535156 -1.832031 12.265625 -0.96875 C 10.992188 -0.101562 9.132812 0.328125 6.6875 0.328125 C 5.832031 0.328125 4.972656 0.253906 4.109375 0.109375 C 3.242188 -0.0234375 2.382812 -0.226562 1.53125 -0.5 L 1.53125 -3.84375 C 2.34375 -3.4375 3.144531 -3.128906 3.9375 -2.921875 C 4.738281 -2.710938 5.523438 -2.609375 6.296875 -2.609375 C 7.441406 -2.609375 8.316406 -2.804688 8.921875 -3.203125 C 9.535156 -3.609375 9.84375 -4.179688 9.84375 -4.921875 C 9.84375 -5.679688 9.53125 -6.257812 8.90625 -6.65625 C 8.28125 -7.050781 7.359375 -7.25 6.140625 -7.25 L 4.40625 -7.25 L 4.40625 -10.03125 L 6.234375 -10.03125 C 7.316406 -10.03125 8.125 -10.195312 8.65625 -10.53125 C 9.1875 -10.875 9.453125 -11.394531 9.453125 -12.09375 C 9.453125 -12.738281 9.191406 -13.234375 8.671875 -13.578125 C 8.160156 -13.929688 7.429688 -14.109375 6.484375 -14.109375 C 5.796875 -14.109375 5.09375 -14.03125 4.375 -13.875 C 3.664062 -13.71875 2.957031 -13.488281 2.25 -13.1875 L 2.25 -16.359375 C 3.101562 -16.597656 3.945312 -16.773438 4.78125 -16.890625 C 5.625 -17.015625 6.453125 -17.078125 7.265625 -17.078125 C 9.441406 -17.078125 11.070312 -16.71875 12.15625 -16 C 13.238281 -15.28125 13.78125 -14.203125 13.78125 -12.765625 C 13.78125 -11.785156 13.519531 -10.984375 13 -10.359375 C 12.488281 -9.734375 11.726562 -9.296875 10.71875 -9.046875 Z M 10.71875 -9.046875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 11.765625 -12.1875 L 11.765625 -9.125 C 10.898438 -9.488281 10.066406 -9.757812 9.265625 -9.9375 C 8.460938 -10.113281 7.707031 -10.203125 7 -10.203125 C 6.226562 -10.203125 5.65625 -10.109375 5.28125 -9.921875 C 4.914062 -9.734375 4.734375 -9.441406 4.734375 -9.046875 C 4.734375 -8.722656 4.875 -8.472656 5.15625 -8.296875 C 5.4375 -8.128906 5.941406 -8.003906 6.671875 -7.921875 L 7.375 -7.8125 C 9.4375 -7.550781 10.820312 -7.117188 11.53125 -6.515625 C 12.238281 -5.921875 12.59375 -4.984375 12.59375 -3.703125 C 12.59375 -2.367188 12.097656 -1.363281 11.109375 -0.6875 C 10.128906 -0.0078125 8.65625 0.328125 6.6875 0.328125 C 5.863281 0.328125 5.003906 0.257812 4.109375 0.125 C 3.222656 0 2.3125 -0.191406 1.375 -0.453125 L 1.375 -3.515625 C 2.175781 -3.128906 3 -2.835938 3.84375 -2.640625 C 4.6875 -2.441406 5.539062 -2.34375 6.40625 -2.34375 C 7.195312 -2.34375 7.789062 -2.453125 8.1875 -2.671875 C 8.582031 -2.890625 8.78125 -3.210938 8.78125 -3.640625 C 8.78125 -3.992188 8.644531 -4.257812 8.375 -4.4375 C 8.101562 -4.613281 7.554688 -4.753906 6.734375 -4.859375 L 6.03125 -4.9375 C 4.238281 -5.164062 2.984375 -5.582031 2.265625 -6.1875 C 1.546875 -6.789062 1.1875 -7.710938 1.1875 -8.953125 C 1.1875 -10.285156 1.644531 -11.269531 2.5625 -11.90625 C 3.476562 -12.550781 4.878906 -12.875 6.765625 -12.875 C 7.503906 -12.875 8.28125 -12.816406 9.09375 -12.703125 C 9.914062 -12.597656 10.804688 -12.425781 11.765625 -12.1875 Z M 11.765625 -12.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 6.328125 -16.15625 L 6.328125 -12.578125 L 10.46875 -12.578125 L 10.46875 -9.703125 L 6.328125 -9.703125 L 6.328125 -4.375 C 6.328125 -3.789062 6.441406 -3.394531 6.671875 -3.1875 C 6.898438 -2.976562 7.359375 -2.875 8.046875 -2.875 L 10.125 -2.875 L 10.125 0 L 6.671875 0 C 5.085938 0 3.960938 -0.328125 3.296875 -0.984375 C 2.628906 -1.648438 2.296875 -2.78125 2.296875 -4.375 L 2.296875 -9.703125 L 0.296875 -9.703125 L 0.296875 -12.578125 L 2.296875 -12.578125 L 2.296875 -16.15625 L 6.328125 -16.15625 Z M 6.328125 -16.15625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 7.5625 -5.65625 C 6.726562 -5.65625 6.097656 -5.515625 5.671875 -5.234375 C 5.253906 -4.953125 5.046875 -4.53125 5.046875 -3.96875 C 5.046875 -3.46875 5.210938 -3.070312 5.546875 -2.78125 C 5.890625 -2.488281 6.363281 -2.34375 6.96875 -2.34375 C 7.726562 -2.34375 8.363281 -2.613281 8.875 -3.15625 C 9.394531 -3.695312 9.65625 -4.378906 9.65625 -5.203125 L 9.65625 -5.65625 L 7.5625 -5.65625 Z M 13.71875 -7.171875 L 13.71875 0 L 9.65625 0 L 9.65625 -1.859375 C 9.113281 -1.097656 8.503906 -0.539062 7.828125 -0.1875 C 7.160156 0.15625 6.34375 0.328125 5.375 0.328125 C 4.070312 0.328125 3.015625 -0.0507812 2.203125 -0.8125 C 1.390625 -1.570312 0.984375 -2.5625 0.984375 -3.78125 C 0.984375 -5.25 1.488281 -6.328125 2.5 -7.015625 C 3.519531 -7.703125 5.113281 -8.046875 7.28125 -8.046875 L 9.65625 -8.046875 L 9.65625 -8.359375 C 9.65625 -9.003906 9.40625 -9.472656 8.90625 -9.765625 C 8.40625 -10.054688 7.625 -10.203125 6.5625 -10.203125 C 5.695312 -10.203125 4.894531 -10.113281 4.15625 -9.9375 C 3.414062 -9.769531 2.726562 -9.515625 2.09375 -9.171875 L 2.09375 -12.234375 C 2.945312 -12.453125 3.804688 -12.613281 4.671875 -12.71875 C 5.546875 -12.820312 6.414062 -12.875 7.28125 -12.875 C 9.550781 -12.875 11.191406 -12.425781 12.203125 -11.53125 C 13.210938 -10.644531 13.71875 -9.191406 13.71875 -7.171875 Z M 13.71875 -7.171875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 1.796875 -4.890625 L 1.796875 -12.578125 L 5.84375 -12.578125 L 5.84375 -11.328125 C 5.84375 -10.640625 5.835938 -9.78125 5.828125 -8.75 C 5.816406 -7.71875 5.8125 -7.03125 5.8125 -6.6875 C 5.8125 -5.675781 5.835938 -4.945312 5.890625 -4.5 C 5.941406 -4.0625 6.035156 -3.738281 6.171875 -3.53125 C 6.328125 -3.269531 6.535156 -3.066406 6.796875 -2.921875 C 7.066406 -2.785156 7.378906 -2.71875 7.734375 -2.71875 C 8.566406 -2.71875 9.222656 -3.039062 9.703125 -3.6875 C 10.179688 -4.332031 10.421875 -5.226562 10.421875 -6.375 L 10.421875 -12.578125 L 14.4375 -12.578125 L 14.4375 0 L 10.421875 0 L 10.421875 -1.8125 C 9.816406 -1.082031 9.175781 -0.539062 8.5 -0.1875 C 7.820312 0.15625 7.070312 0.328125 6.25 0.328125 C 4.800781 0.328125 3.695312 -0.113281 2.9375 -1 C 2.175781 -1.894531 1.796875 -3.191406 1.796875 -4.890625 Z M 1.796875 -4.890625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 1.25 -8.25 L 8.296875 -8.25 L 8.296875 -4.984375 L 1.25 -4.984375 L 1.25 -8.25 Z M 1.25 -8.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 0.8125 -12.578125 L 4.71875 -12.578125 L 6.828125 -3.90625 L 8.953125 -12.578125 L 12.3125 -12.578125 L 14.421875 -4 L 16.546875 -12.578125 L 20.453125 -12.578125 L 17.140625 0 L 12.75 0 L 10.625 -8.640625 L 8.515625 0 L 4.125 0 L 0.8125 -12.578125 Z M 0.8125 -12.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 8.625 -2.59375 C 9.488281 -2.59375 10.144531 -2.90625 10.59375 -3.53125 C 11.050781 -4.164062 11.28125 -5.082031 11.28125 -6.28125 C 11.28125 -7.476562 11.050781 -8.390625 10.59375 -9.015625 C 10.144531 -9.648438 9.488281 -9.96875 8.625 -9.96875 C 7.757812 -9.96875 7.097656 -9.648438 6.640625 -9.015625 C 6.179688 -8.378906 5.953125 -7.46875 5.953125 -6.28125 C 5.953125 -5.09375 6.179688 -4.179688 6.640625 -3.546875 C 7.097656 -2.910156 7.757812 -2.59375 8.625 -2.59375 Z M 5.953125 -10.734375 C 6.503906 -11.472656 7.117188 -12.015625 7.796875 -12.359375 C 8.472656 -12.703125 9.25 -12.875 10.125 -12.875 C 11.664062 -12.875 12.9375 -12.257812 13.9375 -11.03125 C 14.9375 -9.800781 15.4375 -8.21875 15.4375 -6.28125 C 15.4375 -4.34375 14.9375 -2.753906 13.9375 -1.515625 C 12.9375 -0.285156 11.664062 0.328125 10.125 0.328125 C 9.25 0.328125 8.472656 0.15625 7.796875 -0.1875 C 7.117188 -0.539062 6.503906 -1.082031 5.953125 -1.8125 L 5.953125 0 L 1.9375 0 L 1.9375 -17.46875 L 5.953125 -17.46875 L 5.953125 -10.734375 Z M 5.953125 -10.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 11.28125 -9.15625 C 10.925781 -9.320312 10.570312 -9.441406 10.21875 -9.515625 C 9.875 -9.597656 9.523438 -9.640625 9.171875 -9.640625 C 8.140625 -9.640625 7.34375 -9.304688 6.78125 -8.640625 C 6.226562 -7.972656 5.953125 -7.023438 5.953125 -5.796875 L 5.953125 0 L 1.9375 0 L 1.9375 -12.578125 L 5.953125 -12.578125 L 5.953125 -10.515625 C 6.472656 -11.335938 7.066406 -11.9375 7.734375 -12.3125 C 8.398438 -12.6875 9.203125 -12.875 10.140625 -12.875 C 10.273438 -12.875 10.421875 -12.867188 10.578125 -12.859375 C 10.734375 -12.847656 10.960938 -12.828125 11.265625 -12.796875 L 11.28125 -9.15625 Z M 11.28125 -9.15625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 10.484375 -10.734375 L 10.484375 -17.46875 L 14.53125 -17.46875 L 14.53125 0 L 10.484375 0 L 10.484375 -1.8125 C 9.929688 -1.070312 9.320312 -0.53125 8.65625 -0.1875 C 7.988281 0.15625 7.21875 0.328125 6.34375 0.328125 C 4.789062 0.328125 3.515625 -0.285156 2.515625 -1.515625 C 1.523438 -2.753906 1.03125 -4.34375 1.03125 -6.28125 C 1.03125 -8.21875 1.523438 -9.800781 2.515625 -11.03125 C 3.515625 -12.257812 4.789062 -12.875 6.34375 -12.875 C 7.207031 -12.875 7.972656 -12.703125 8.640625 -12.359375 C 9.316406 -12.015625 9.929688 -11.472656 10.484375 -10.734375 Z M 7.84375 -2.59375 C 8.695312 -2.59375 9.347656 -2.90625 9.796875 -3.53125 C 10.253906 -4.164062 10.484375 -5.082031 10.484375 -6.28125 C 10.484375 -7.476562 10.253906 -8.390625 9.796875 -9.015625 C 9.347656 -9.648438 8.695312 -9.96875 7.84375 -9.96875 C 6.988281 -9.96875 6.332031 -9.648438 5.875 -9.015625 C 5.425781 -8.390625 5.203125 -7.476562 5.203125 -6.28125 C 5.203125 -5.082031 5.425781 -4.164062 5.875 -3.53125 C 6.332031 -2.90625 6.988281 -2.59375 7.84375 -2.59375 Z M 7.84375 -2.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 1.3125 -12.578125 L 12.28125 -12.578125 L 12.28125 -9.765625 L 5.65625 -2.875 L 12.28125 -2.875 L 12.28125 0 L 1.03125 0 L 1.03125 -2.8125 L 7.65625 -9.703125 L 1.3125 -9.703125 L 1.3125 -12.578125 Z M 1.3125 -12.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 14.484375 -6.328125 L 14.484375 -5.171875 L 5.09375 -5.171875 C 5.1875 -4.234375 5.523438 -3.523438 6.109375 -3.046875 C 6.691406 -2.578125 7.507812 -2.34375 8.5625 -2.34375 C 9.40625 -2.34375 10.269531 -2.46875 11.15625 -2.71875 C 12.039062 -2.96875 12.953125 -3.347656 13.890625 -3.859375 L 13.890625 -0.765625 C 12.941406 -0.398438 11.988281 -0.128906 11.03125 0.046875 C 10.082031 0.234375 9.132812 0.328125 8.1875 0.328125 C 5.90625 0.328125 4.132812 -0.25 2.875 -1.40625 C 1.613281 -2.5625 0.984375 -4.1875 0.984375 -6.28125 C 0.984375 -8.332031 1.601562 -9.941406 2.84375 -11.109375 C 4.082031 -12.285156 5.789062 -12.875 7.96875 -12.875 C 9.9375 -12.875 11.515625 -12.28125 12.703125 -11.09375 C 13.890625 -9.90625 14.484375 -8.316406 14.484375 -6.328125 Z M 10.359375 -7.65625 C 10.359375 -8.425781 10.132812 -9.039062 9.6875 -9.5 C 9.238281 -9.96875 8.65625 -10.203125 7.9375 -10.203125 C 7.15625 -10.203125 6.519531 -9.984375 6.03125 -9.546875 C 5.550781 -9.109375 5.25 -8.476562 5.125 -7.65625 L 10.359375 -7.65625 Z M 10.359375 -7.65625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 14.578125 -7.65625 L 14.578125 0 L 10.53125 0 L 10.53125 -1.25 L 10.53125 -5.859375 C 10.53125 -6.941406 10.503906 -7.6875 10.453125 -8.09375 C 10.410156 -8.507812 10.328125 -8.816406 10.203125 -9.015625 C 10.046875 -9.273438 9.832031 -9.476562 9.5625 -9.625 C 9.300781 -9.769531 8.992188 -9.84375 8.640625 -9.84375 C 7.804688 -9.84375 7.148438 -9.519531 6.671875 -8.875 C 6.191406 -8.226562 5.953125 -7.332031 5.953125 -6.1875 L 5.953125 0 L 1.9375 0 L 1.9375 -12.578125 L 5.953125 -12.578125 L 5.953125 -10.734375 C 6.554688 -11.472656 7.195312 -12.015625 7.875 -12.359375 C 8.5625 -12.703125 9.316406 -12.875 10.140625 -12.875 C 11.585938 -12.875 12.6875 -12.425781 13.4375 -11.53125 C 14.195312 -10.644531 14.578125 -9.351562 14.578125 -7.65625 Z M 14.578125 -7.65625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 6.625 -3.171875 L 14 -3.171875 L 14 0 L 1.8125 0 L 1.8125 -3.171875 L 7.9375 -8.578125 C 8.488281 -9.078125 8.894531 -9.5625 9.15625 -10.03125 C 9.414062 -10.5 9.546875 -10.988281 9.546875 -11.5 C 9.546875 -12.28125 9.28125 -12.910156 8.75 -13.390625 C 8.226562 -13.867188 7.53125 -14.109375 6.65625 -14.109375 C 5.976562 -14.109375 5.238281 -13.960938 4.4375 -13.671875 C 3.632812 -13.390625 2.773438 -12.96875 1.859375 -12.40625 L 1.859375 -16.078125 C 2.835938 -16.398438 3.800781 -16.644531 4.75 -16.8125 C 5.695312 -16.988281 6.628906 -17.078125 7.546875 -17.078125 C 9.554688 -17.078125 11.113281 -16.632812 12.21875 -15.75 C 13.332031 -14.863281 13.890625 -13.628906 13.890625 -12.046875 C 13.890625 -11.140625 13.65625 -10.289062 13.1875 -9.5 C 12.71875 -8.707031 11.722656 -7.648438 10.203125 -6.328125 L 6.625 -3.171875 Z M 6.625 -3.171875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0.84375 3 L 0.84375 -11.984375 L 9.34375 -11.984375 L 9.34375 3 L 0.84375 3 Z M 1.796875 2.0625 L 8.40625 2.0625 L 8.40625 -11.03125 L 1.796875 -11.03125 L 1.796875 2.0625 Z M 1.796875 2.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 3.078125 -1.390625 L 3.078125 3.53125 L 1.546875 3.53125 L 1.546875 -9.296875 L 3.078125 -9.296875 L 3.078125 -7.890625 C 3.398438 -8.441406 3.804688 -8.847656 4.296875 -9.109375 C 4.785156 -9.378906 5.367188 -9.515625 6.046875 -9.515625 C 7.179688 -9.515625 8.097656 -9.066406 8.796875 -8.171875 C 9.503906 -7.273438 9.859375 -6.097656 9.859375 -4.640625 C 9.859375 -3.179688 9.503906 -2.003906 8.796875 -1.109375 C 8.097656 -0.210938 7.179688 0.234375 6.046875 0.234375 C 5.367188 0.234375 4.785156 0.101562 4.296875 -0.15625 C 3.804688 -0.425781 3.398438 -0.835938 3.078125 -1.390625 Z M 8.28125 -4.640625 C 8.28125 -5.765625 8.046875 -6.644531 7.578125 -7.28125 C 7.117188 -7.925781 6.484375 -8.25 5.671875 -8.25 C 4.867188 -8.25 4.234375 -7.925781 3.765625 -7.28125 C 3.304688 -6.644531 3.078125 -5.765625 3.078125 -4.640625 C 3.078125 -3.515625 3.304688 -2.628906 3.765625 -1.984375 C 4.234375 -1.347656 4.867188 -1.03125 5.671875 -1.03125 C 6.484375 -1.03125 7.117188 -1.347656 7.578125 -1.984375 C 8.046875 -2.628906 8.28125 -3.515625 8.28125 -4.640625 Z M 8.28125 -4.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 1.609375 -9.296875 L 3.125 -9.296875 L 3.125 0 L 1.609375 0 L 1.609375 -9.296875 Z M 1.609375 -12.921875 L 3.125 -12.921875 L 3.125 -10.984375 L 1.609375 -10.984375 L 1.609375 -12.921875 Z M 1.609375 -12.921875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 9.546875 -5.03125 L 9.546875 -4.28125 L 2.53125 -4.28125 C 2.59375 -3.226562 2.90625 -2.425781 3.46875 -1.875 C 4.039062 -1.320312 4.835938 -1.046875 5.859375 -1.046875 C 6.441406 -1.046875 7.007812 -1.117188 7.5625 -1.265625 C 8.113281 -1.410156 8.660156 -1.628906 9.203125 -1.921875 L 9.203125 -0.46875 C 8.648438 -0.238281 8.085938 -0.0664062 7.515625 0.046875 C 6.941406 0.171875 6.359375 0.234375 5.765625 0.234375 C 4.273438 0.234375 3.097656 -0.191406 2.234375 -1.046875 C 1.367188 -1.910156 0.9375 -3.082031 0.9375 -4.5625 C 0.9375 -6.082031 1.347656 -7.285156 2.171875 -8.171875 C 2.992188 -9.066406 4.101562 -9.515625 5.5 -9.515625 C 6.75 -9.515625 7.734375 -9.113281 8.453125 -8.3125 C 9.179688 -7.507812 9.546875 -6.414062 9.546875 -5.03125 Z M 8.03125 -5.484375 C 8.019531 -6.316406 7.785156 -6.976562 7.328125 -7.46875 C 6.867188 -7.96875 6.265625 -8.21875 5.515625 -8.21875 C 4.660156 -8.21875 3.976562 -7.976562 3.46875 -7.5 C 2.957031 -7.019531 2.660156 -6.34375 2.578125 -5.46875 L 8.03125 -5.484375 Z M 8.03125 -5.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 1.671875 -12.390625 L 3.34375 -12.390625 L 3.34375 0 L 1.671875 0 L 1.671875 -12.390625 Z M 1.671875 -12.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M 3.34375 -11.015625 L 3.34375 -6.359375 L 5.453125 -6.359375 C 6.234375 -6.359375 6.835938 -6.5625 7.265625 -6.96875 C 7.691406 -7.375 7.90625 -7.945312 7.90625 -8.6875 C 7.90625 -9.425781 7.691406 -10 7.265625 -10.40625 C 6.835938 -10.8125 6.234375 -11.015625 5.453125 -11.015625 L 3.34375 -11.015625 Z M 1.671875 -12.390625 L 5.453125 -12.390625 C 6.835938 -12.390625 7.882812 -12.078125 8.59375 -11.453125 C 9.3125 -10.828125 9.671875 -9.90625 9.671875 -8.6875 C 9.671875 -7.46875 9.3125 -6.546875 8.59375 -5.921875 C 7.882812 -5.296875 6.835938 -4.984375 5.453125 -4.984375 L 3.34375 -4.984375 L 3.34375 0 L 1.671875 0 L 1.671875 -12.390625 Z M 1.671875 -12.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 10.953125 -11.4375 L 10.953125 -9.671875 C 10.390625 -10.191406 9.785156 -10.582031 9.140625 -10.84375 C 8.503906 -11.101562 7.828125 -11.234375 7.109375 -11.234375 C 5.691406 -11.234375 4.601562 -10.800781 3.84375 -9.9375 C 3.09375 -9.070312 2.71875 -7.820312 2.71875 -6.1875 C 2.71875 -4.550781 3.09375 -3.300781 3.84375 -2.4375 C 4.601562 -1.570312 5.691406 -1.140625 7.109375 -1.140625 C 7.828125 -1.140625 8.503906 -1.269531 9.140625 -1.53125 C 9.785156 -1.789062 10.390625 -2.179688 10.953125 -2.703125 L 10.953125 -0.953125 C 10.359375 -0.554688 9.734375 -0.257812 9.078125 -0.0625 C 8.429688 0.132812 7.738281 0.234375 7 0.234375 C 5.125 0.234375 3.644531 -0.335938 2.5625 -1.484375 C 1.488281 -2.628906 0.953125 -4.195312 0.953125 -6.1875 C 0.953125 -8.175781 1.488281 -9.742188 2.5625 -10.890625 C 3.644531 -12.046875 5.125 -12.625 7 -12.625 C 7.75 -12.625 8.445312 -12.523438 9.09375 -12.328125 C 9.75 -12.128906 10.367188 -11.832031 10.953125 -11.4375 Z M 10.953125 -11.4375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 0.640625 2.296875 L 0.640625 -9.171875 L 7.140625 -9.171875 L 7.140625 2.296875 L 0.640625 2.296875 Z M 1.375 1.578125 L 6.421875 1.578125 L 6.421875 -8.4375 L 1.375 -8.4375 L 1.375 1.578125 Z M 1.375 1.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 4.03125 -9.859375 C 3.46875 -8.890625 3.046875 -7.925781 2.765625 -6.96875 C 2.492188 -6.019531 2.359375 -5.054688 2.359375 -4.078125 C 2.359375 -3.097656 2.492188 -2.128906 2.765625 -1.171875 C 3.046875 -0.210938 3.46875 0.75 4.03125 1.71875 L 3.015625 1.71875 C 2.378906 0.71875 1.90625 -0.257812 1.59375 -1.21875 C 1.28125 -2.175781 1.125 -3.128906 1.125 -4.078125 C 1.125 -5.023438 1.28125 -5.972656 1.59375 -6.921875 C 1.90625 -7.878906 2.378906 -8.859375 3.015625 -9.859375 L 4.03125 -9.859375 Z M 4.03125 -9.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 4.828125 -9.875 L 4.828125 -8.90625 L 3.703125 -8.90625 C 3.285156 -8.90625 2.992188 -8.816406 2.828125 -8.640625 C 2.671875 -8.472656 2.59375 -8.171875 2.59375 -7.734375 L 2.59375 -7.109375 L 4.515625 -7.109375 L 4.515625 -6.203125 L 2.59375 -6.203125 L 2.59375 0 L 1.421875 0 L 1.421875 -6.203125 L 0.296875 -6.203125 L 0.296875 -7.109375 L 1.421875 -7.109375 L 1.421875 -7.609375 C 1.421875 -8.398438 1.601562 -8.972656 1.96875 -9.328125 C 2.332031 -9.691406 2.914062 -9.875 3.71875 -9.875 L 4.828125 -9.875 Z M 4.828125 -9.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 3.984375 -6.296875 C 3.359375 -6.296875 2.863281 -6.050781 2.5 -5.5625 C 2.132812 -5.070312 1.953125 -4.398438 1.953125 -3.546875 C 1.953125 -2.691406 2.128906 -2.019531 2.484375 -1.53125 C 2.847656 -1.050781 3.347656 -0.8125 3.984375 -0.8125 C 4.597656 -0.8125 5.085938 -1.054688 5.453125 -1.546875 C 5.816406 -2.035156 6 -2.703125 6 -3.546875 C 6 -4.390625 5.816406 -5.054688 5.453125 -5.546875 C 5.085938 -6.046875 4.597656 -6.296875 3.984375 -6.296875 Z M 3.984375 -7.28125 C 4.992188 -7.28125 5.789062 -6.945312 6.375 -6.28125 C 6.957031 -5.625 7.25 -4.710938 7.25 -3.546875 C 7.25 -2.378906 6.957031 -1.460938 6.375 -0.796875 C 5.789062 -0.140625 4.992188 0.1875 3.984375 0.1875 C 2.960938 0.1875 2.160156 -0.140625 1.578125 -0.796875 C 1.003906 -1.460938 0.71875 -2.378906 0.71875 -3.546875 C 0.71875 -4.710938 1.003906 -5.625 1.578125 -6.28125 C 2.160156 -6.945312 2.960938 -7.28125 3.984375 -7.28125 Z M 3.984375 -7.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 5.34375 -6.015625 C 5.207031 -6.085938 5.0625 -6.140625 4.90625 -6.171875 C 4.757812 -6.210938 4.59375 -6.234375 4.40625 -6.234375 C 3.75 -6.234375 3.242188 -6.019531 2.890625 -5.59375 C 2.535156 -5.164062 2.359375 -4.550781 2.359375 -3.75 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.597656 -6.4375 2.914062 -6.757812 3.3125 -6.96875 C 3.707031 -7.175781 4.1875 -7.28125 4.75 -7.28125 C 4.832031 -7.28125 4.921875 -7.273438 5.015625 -7.265625 C 5.109375 -7.253906 5.21875 -7.238281 5.34375 -7.21875 L 5.34375 -6.015625 Z M 5.34375 -6.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 1.28125 -9.484375 L 2.5625 -9.484375 L 2.5625 -1.078125 L 7.171875 -1.078125 L 7.171875 0 L 1.28125 0 L 1.28125 -9.484375 Z M 1.28125 -9.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 3.71875 0 L 0.109375 -9.484375 L 1.4375 -9.484375 L 4.4375 -1.5 L 7.453125 -9.484375 L 8.78125 -9.484375 L 5.171875 0 L 3.71875 0 Z M 3.71875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 2.5625 -8.421875 L 2.5625 -1.046875 L 4.109375 -1.046875 C 5.410156 -1.046875 6.363281 -1.34375 6.96875 -1.9375 C 7.582031 -2.53125 7.890625 -3.46875 7.890625 -4.75 C 7.890625 -6.019531 7.582031 -6.945312 6.96875 -7.53125 C 6.363281 -8.125 5.410156 -8.421875 4.109375 -8.421875 L 2.5625 -8.421875 Z M 1.28125 -9.484375 L 3.90625 -9.484375 C 5.75 -9.484375 7.097656 -9.097656 7.953125 -8.328125 C 8.816406 -7.566406 9.25 -6.375 9.25 -4.75 C 9.25 -3.113281 8.816406 -1.910156 7.953125 -1.140625 C 7.085938 -0.378906 5.738281 0 3.90625 0 L 1.28125 0 L 1.28125 -9.484375 Z M 1.28125 -9.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 6.953125 -9.171875 L 6.953125 -7.921875 C 6.472656 -8.148438 6.015625 -8.320312 5.578125 -8.4375 C 5.148438 -8.550781 4.734375 -8.609375 4.328125 -8.609375 C 3.628906 -8.609375 3.085938 -8.472656 2.703125 -8.203125 C 2.328125 -7.929688 2.140625 -7.546875 2.140625 -7.046875 C 2.140625 -6.628906 2.265625 -6.3125 2.515625 -6.09375 C 2.773438 -5.882812 3.253906 -5.710938 3.953125 -5.578125 L 4.734375 -5.421875 C 5.679688 -5.234375 6.382812 -4.910156 6.84375 -4.453125 C 7.300781 -3.992188 7.53125 -3.378906 7.53125 -2.609375 C 7.53125 -1.691406 7.222656 -0.992188 6.609375 -0.515625 C 5.992188 -0.046875 5.085938 0.1875 3.890625 0.1875 C 3.441406 0.1875 2.960938 0.132812 2.453125 0.03125 C 1.953125 -0.0703125 1.429688 -0.222656 0.890625 -0.421875 L 0.890625 -1.734375 C 1.410156 -1.441406 1.921875 -1.222656 2.421875 -1.078125 C 2.921875 -0.929688 3.410156 -0.859375 3.890625 -0.859375 C 4.628906 -0.859375 5.195312 -1 5.59375 -1.28125 C 5.988281 -1.570312 6.1875 -1.984375 6.1875 -2.515625 C 6.1875 -2.984375 6.039062 -3.347656 5.75 -3.609375 C 5.46875 -3.867188 5.003906 -4.066406 4.359375 -4.203125 L 3.578125 -4.359375 C 2.617188 -4.546875 1.925781 -4.84375 1.5 -5.25 C 1.070312 -5.65625 0.859375 -6.21875 0.859375 -6.9375 C 0.859375 -7.78125 1.148438 -8.441406 1.734375 -8.921875 C 2.328125 -9.410156 3.144531 -9.65625 4.1875 -9.65625 C 4.625 -9.65625 5.070312 -9.613281 5.53125 -9.53125 C 6 -9.445312 6.472656 -9.328125 6.953125 -9.171875 Z M 6.953125 -9.171875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 0.640625 -4.078125 L 4.0625 -4.078125 L 4.0625 -3.046875 L 0.640625 -3.046875 L 0.640625 -4.078125 Z M 0.640625 -4.078125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 1.609375 -1.078125 L 3.703125 -1.078125 L 3.703125 -8.3125 L 1.421875 -7.859375 L 1.421875 -9.015625 L 3.6875 -9.484375 L 4.984375 -9.484375 L 4.984375 -1.078125 L 7.078125 -1.078125 L 7.078125 0 L 1.609375 0 L 1.609375 -1.078125 Z M 1.609375 -1.078125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 1.046875 -9.859375 L 2.0625 -9.859375 C 2.695312 -8.859375 3.171875 -7.878906 3.484375 -6.921875 C 3.796875 -5.972656 3.953125 -5.023438 3.953125 -4.078125 C 3.953125 -3.128906 3.796875 -2.175781 3.484375 -1.21875 C 3.171875 -0.257812 2.695312 0.71875 2.0625 1.71875 L 1.046875 1.71875 C 1.609375 0.75 2.023438 -0.210938 2.296875 -1.171875 C 2.578125 -2.128906 2.71875 -3.097656 2.71875 -4.078125 C 2.71875 -5.054688 2.578125 -6.019531 2.296875 -6.96875 C 2.023438 -7.925781 1.609375 -8.890625 1.046875 -9.859375 Z M 1.046875 -9.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 7.734375 -1.359375 L 7.734375 -3.890625 L 5.640625 -3.890625 L 5.640625 -4.953125 L 9 -4.953125 L 9 -0.875 C 8.507812 -0.53125 7.960938 -0.265625 7.359375 -0.078125 C 6.765625 0.0976562 6.128906 0.1875 5.453125 0.1875 C 3.972656 0.1875 2.816406 -0.242188 1.984375 -1.109375 C 1.148438 -1.972656 0.734375 -3.179688 0.734375 -4.734375 C 0.734375 -6.273438 1.148438 -7.476562 1.984375 -8.34375 C 2.816406 -9.21875 3.972656 -9.65625 5.453125 -9.65625 C 6.078125 -9.65625 6.664062 -9.578125 7.21875 -9.421875 C 7.78125 -9.265625 8.296875 -9.039062 8.765625 -8.75 L 8.765625 -7.375 C 8.285156 -7.78125 7.78125 -8.082031 7.25 -8.28125 C 6.71875 -8.488281 6.15625 -8.59375 5.5625 -8.59375 C 4.40625 -8.59375 3.535156 -8.269531 2.953125 -7.625 C 2.367188 -6.976562 2.078125 -6.015625 2.078125 -4.734375 C 2.078125 -3.453125 2.367188 -2.488281 2.953125 -1.84375 C 3.535156 -1.195312 4.40625 -0.875 5.5625 -0.875 C 6.019531 -0.875 6.425781 -0.910156 6.78125 -0.984375 C 7.132812 -1.066406 7.453125 -1.191406 7.734375 -1.359375 Z M 7.734375 -1.359375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 4.4375 -8.21875 L 2.703125 -3.5 L 6.1875 -3.5 L 4.4375 -8.21875 Z M 3.71875 -9.484375 L 5.171875 -9.484375 L 8.78125 0 L 7.453125 0 L 6.59375 -2.4375 L 2.3125 -2.4375 L 1.453125 0 L 0.109375 0 L 3.71875 -9.484375 Z M 3.71875 -9.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 6.765625 -5.75 C 7.054688 -6.269531 7.40625 -6.65625 7.8125 -6.90625 C 8.21875 -7.15625 8.695312 -7.28125 9.25 -7.28125 C 9.988281 -7.28125 10.554688 -7.019531 10.953125 -6.5 C 11.359375 -5.976562 11.5625 -5.242188 11.5625 -4.296875 L 11.5625 0 L 10.390625 0 L 10.390625 -4.25 C 10.390625 -4.9375 10.265625 -5.441406 10.015625 -5.765625 C 9.773438 -6.097656 9.410156 -6.265625 8.921875 -6.265625 C 8.316406 -6.265625 7.835938 -6.0625 7.484375 -5.65625 C 7.128906 -5.257812 6.953125 -4.710938 6.953125 -4.015625 L 6.953125 0 L 5.78125 0 L 5.78125 -4.25 C 5.78125 -4.9375 5.660156 -5.441406 5.421875 -5.765625 C 5.179688 -6.097656 4.804688 -6.265625 4.296875 -6.265625 C 3.703125 -6.265625 3.226562 -6.0625 2.875 -5.65625 C 2.53125 -5.25 2.359375 -4.703125 2.359375 -4.015625 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.617188 -6.4375 2.9375 -6.757812 3.3125 -6.96875 C 3.6875 -7.175781 4.128906 -7.28125 4.640625 -7.28125 C 5.160156 -7.28125 5.597656 -7.148438 5.953125 -6.890625 C 6.316406 -6.628906 6.585938 -6.25 6.765625 -5.75 Z M 6.765625 -5.75 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 4.453125 -3.578125 C 3.515625 -3.578125 2.863281 -3.46875 2.5 -3.25 C 2.132812 -3.03125 1.953125 -2.660156 1.953125 -2.140625 C 1.953125 -1.734375 2.085938 -1.40625 2.359375 -1.15625 C 2.628906 -0.914062 3 -0.796875 3.46875 -0.796875 C 4.113281 -0.796875 4.632812 -1.023438 5.03125 -1.484375 C 5.425781 -1.941406 5.625 -2.550781 5.625 -3.3125 L 5.625 -3.578125 L 4.453125 -3.578125 Z M 6.78125 -4.0625 L 6.78125 0 L 5.625 0 L 5.625 -1.078125 C 5.351562 -0.648438 5.019531 -0.332031 4.625 -0.125 C 4.226562 0.0820312 3.738281 0.1875 3.15625 0.1875 C 2.425781 0.1875 1.847656 -0.015625 1.421875 -0.421875 C 0.992188 -0.835938 0.78125 -1.382812 0.78125 -2.0625 C 0.78125 -2.863281 1.046875 -3.46875 1.578125 -3.875 C 2.117188 -4.28125 2.921875 -4.484375 3.984375 -4.484375 L 5.625 -4.484375 L 5.625 -4.609375 C 5.625 -5.140625 5.445312 -5.550781 5.09375 -5.84375 C 4.738281 -6.144531 4.238281 -6.296875 3.59375 -6.296875 C 3.1875 -6.296875 2.789062 -6.242188 2.40625 -6.140625 C 2.019531 -6.046875 1.648438 -5.898438 1.296875 -5.703125 L 1.296875 -6.78125 C 1.722656 -6.945312 2.140625 -7.070312 2.546875 -7.15625 C 2.953125 -7.238281 3.34375 -7.28125 3.71875 -7.28125 C 4.75 -7.28125 5.515625 -7.015625 6.015625 -6.484375 C 6.523438 -5.953125 6.78125 -5.144531 6.78125 -4.0625 Z M 6.78125 -4.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-17">
+<path style="stroke:none;" d="M 7.140625 -4.296875 L 7.140625 0 L 5.96875 0 L 5.96875 -4.25 C 5.96875 -4.925781 5.835938 -5.429688 5.578125 -5.765625 C 5.316406 -6.097656 4.921875 -6.265625 4.390625 -6.265625 C 3.765625 -6.265625 3.269531 -6.0625 2.90625 -5.65625 C 2.539062 -5.257812 2.359375 -4.710938 2.359375 -4.015625 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.640625 -6.425781 2.96875 -6.742188 3.34375 -6.953125 C 3.71875 -7.171875 4.15625 -7.28125 4.65625 -7.28125 C 5.46875 -7.28125 6.082031 -7.023438 6.5 -6.515625 C 6.925781 -6.015625 7.140625 -5.273438 7.140625 -4.296875 Z M 7.140625 -4.296875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-18">
+<path style="stroke:none;" d="M 5.90625 -3.640625 C 5.90625 -4.484375 5.726562 -5.132812 5.375 -5.59375 C 5.03125 -6.0625 4.539062 -6.296875 3.90625 -6.296875 C 3.28125 -6.296875 2.789062 -6.0625 2.4375 -5.59375 C 2.09375 -5.132812 1.921875 -4.484375 1.921875 -3.640625 C 1.921875 -2.796875 2.09375 -2.140625 2.4375 -1.671875 C 2.789062 -1.210938 3.28125 -0.984375 3.90625 -0.984375 C 4.539062 -0.984375 5.03125 -1.210938 5.375 -1.671875 C 5.726562 -2.140625 5.90625 -2.796875 5.90625 -3.640625 Z M 7.078125 -0.875 C 7.078125 0.332031 6.804688 1.226562 6.265625 1.8125 C 5.722656 2.40625 4.898438 2.703125 3.796875 2.703125 C 3.390625 2.703125 3.003906 2.671875 2.640625 2.609375 C 2.273438 2.546875 1.921875 2.453125 1.578125 2.328125 L 1.578125 1.1875 C 1.921875 1.375 2.257812 1.507812 2.59375 1.59375 C 2.925781 1.6875 3.265625 1.734375 3.609375 1.734375 C 4.378906 1.734375 4.953125 1.535156 5.328125 1.140625 C 5.710938 0.742188 5.90625 0.140625 5.90625 -0.671875 L 5.90625 -1.25 C 5.664062 -0.832031 5.351562 -0.519531 4.96875 -0.3125 C 4.59375 -0.101562 4.144531 0 3.625 0 C 2.75 0 2.046875 -0.332031 1.515625 -1 C 0.984375 -1.664062 0.71875 -2.546875 0.71875 -3.640625 C 0.71875 -4.734375 0.984375 -5.613281 1.515625 -6.28125 C 2.046875 -6.945312 2.75 -7.28125 3.625 -7.28125 C 4.144531 -7.28125 4.59375 -7.175781 4.96875 -6.96875 C 5.351562 -6.757812 5.664062 -6.445312 5.90625 -6.03125 L 5.90625 -7.109375 L 7.078125 -7.109375 L 7.078125 -0.875 Z M 7.078125 -0.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-19">
+<path style="stroke:none;" d="M 7.3125 -3.84375 L 7.3125 -3.28125 L 1.9375 -3.28125 C 1.988281 -2.46875 2.226562 -1.851562 2.65625 -1.4375 C 3.09375 -1.019531 3.695312 -0.8125 4.46875 -0.8125 C 4.914062 -0.8125 5.347656 -0.863281 5.765625 -0.96875 C 6.191406 -1.082031 6.613281 -1.25 7.03125 -1.46875 L 7.03125 -0.359375 C 6.613281 -0.179688 6.179688 -0.046875 5.734375 0.046875 C 5.296875 0.140625 4.851562 0.1875 4.40625 0.1875 C 3.269531 0.1875 2.367188 -0.140625 1.703125 -0.796875 C 1.046875 -1.460938 0.71875 -2.359375 0.71875 -3.484375 C 0.71875 -4.648438 1.03125 -5.570312 1.65625 -6.25 C 2.289062 -6.9375 3.140625 -7.28125 4.203125 -7.28125 C 5.160156 -7.28125 5.914062 -6.972656 6.46875 -6.359375 C 7.03125 -5.742188 7.3125 -4.90625 7.3125 -3.84375 Z M 6.140625 -4.1875 C 6.128906 -4.820312 5.945312 -5.332031 5.59375 -5.71875 C 5.25 -6.101562 4.789062 -6.296875 4.21875 -6.296875 C 3.5625 -6.296875 3.035156 -6.109375 2.640625 -5.734375 C 2.253906 -5.367188 2.03125 -4.851562 1.96875 -4.1875 L 6.140625 -4.1875 Z M 6.140625 -4.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-20">
+<path style="stroke:none;" d="M 5.75 -6.90625 L 5.75 -5.796875 C 5.425781 -5.960938 5.085938 -6.085938 4.734375 -6.171875 C 4.378906 -6.253906 4.007812 -6.296875 3.625 -6.296875 C 3.039062 -6.296875 2.601562 -6.207031 2.3125 -6.03125 C 2.03125 -5.851562 1.890625 -5.585938 1.890625 -5.234375 C 1.890625 -4.960938 1.988281 -4.75 2.1875 -4.59375 C 2.394531 -4.445312 2.816406 -4.300781 3.453125 -4.15625 L 3.84375 -4.0625 C 4.675781 -3.882812 5.265625 -3.632812 5.609375 -3.3125 C 5.960938 -2.988281 6.140625 -2.539062 6.140625 -1.96875 C 6.140625 -1.300781 5.878906 -0.773438 5.359375 -0.390625 C 4.835938 -0.00390625 4.117188 0.1875 3.203125 0.1875 C 2.816406 0.1875 2.414062 0.148438 2 0.078125 C 1.59375 0.00390625 1.160156 -0.109375 0.703125 -0.265625 L 0.703125 -1.46875 C 1.140625 -1.238281 1.566406 -1.066406 1.984375 -0.953125 C 2.398438 -0.847656 2.8125 -0.796875 3.21875 -0.796875 C 3.769531 -0.796875 4.191406 -0.890625 4.484375 -1.078125 C 4.785156 -1.265625 4.9375 -1.53125 4.9375 -1.875 C 4.9375 -2.1875 4.828125 -2.425781 4.609375 -2.59375 C 4.398438 -2.769531 3.9375 -2.9375 3.21875 -3.09375 L 2.8125 -3.1875 C 2.082031 -3.34375 1.554688 -3.578125 1.234375 -3.890625 C 0.910156 -4.203125 0.75 -4.632812 0.75 -5.1875 C 0.75 -5.851562 0.984375 -6.367188 1.453125 -6.734375 C 1.929688 -7.097656 2.609375 -7.28125 3.484375 -7.28125 C 3.910156 -7.28125 4.316406 -7.25 4.703125 -7.1875 C 5.085938 -7.125 5.4375 -7.03125 5.75 -6.90625 Z M 5.75 -6.90625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-21">
+<path style="stroke:none;" d="M 2.359375 -1.0625 L 2.359375 2.703125 L 1.1875 2.703125 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6.03125 C 2.597656 -6.457031 2.90625 -6.769531 3.28125 -6.96875 C 3.65625 -7.175781 4.101562 -7.28125 4.625 -7.28125 C 5.488281 -7.28125 6.191406 -6.9375 6.734375 -6.25 C 7.273438 -5.5625 7.546875 -4.660156 7.546875 -3.546875 C 7.546875 -2.429688 7.273438 -1.53125 6.734375 -0.84375 C 6.191406 -0.15625 5.488281 0.1875 4.625 0.1875 C 4.101562 0.1875 3.65625 0.0820312 3.28125 -0.125 C 2.90625 -0.332031 2.597656 -0.644531 2.359375 -1.0625 Z M 6.328125 -3.546875 C 6.328125 -4.410156 6.148438 -5.082031 5.796875 -5.5625 C 5.441406 -6.050781 4.957031 -6.296875 4.34375 -6.296875 C 3.726562 -6.296875 3.242188 -6.050781 2.890625 -5.5625 C 2.535156 -5.082031 2.359375 -4.410156 2.359375 -3.546875 C 2.359375 -2.691406 2.535156 -2.019531 2.890625 -1.53125 C 3.242188 -1.039062 3.726562 -0.796875 4.34375 -0.796875 C 4.957031 -0.796875 5.441406 -1.039062 5.796875 -1.53125 C 6.148438 -2.019531 6.328125 -2.691406 6.328125 -3.546875 Z M 6.328125 -3.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-22">
+<path style="stroke:none;" d="M 6.34375 -6.84375 L 6.34375 -5.75 C 6.007812 -5.925781 5.675781 -6.0625 5.34375 -6.15625 C 5.007812 -6.25 4.675781 -6.296875 4.34375 -6.296875 C 3.582031 -6.296875 2.992188 -6.050781 2.578125 -5.5625 C 2.160156 -5.082031 1.953125 -4.410156 1.953125 -3.546875 C 1.953125 -2.679688 2.160156 -2.007812 2.578125 -1.53125 C 2.992188 -1.050781 3.582031 -0.8125 4.34375 -0.8125 C 4.675781 -0.8125 5.007812 -0.851562 5.34375 -0.9375 C 5.675781 -1.03125 6.007812 -1.171875 6.34375 -1.359375 L 6.34375 -0.265625 C 6.019531 -0.117188 5.679688 -0.0078125 5.328125 0.0625 C 4.984375 0.144531 4.613281 0.1875 4.21875 0.1875 C 3.144531 0.1875 2.289062 -0.144531 1.65625 -0.8125 C 1.03125 -1.488281 0.71875 -2.398438 0.71875 -3.546875 C 0.71875 -4.703125 1.035156 -5.613281 1.671875 -6.28125 C 2.304688 -6.945312 3.179688 -7.28125 4.296875 -7.28125 C 4.648438 -7.28125 5 -7.242188 5.34375 -7.171875 C 5.6875 -7.097656 6.019531 -6.988281 6.34375 -6.84375 Z M 6.34375 -6.84375 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface0">
+<rect x="0" y="0" width="541" height="418" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill-rule:evenodd;fill:rgb(84.705883%,89.803922%,89.803922%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 19.1 3.1 L 31.15 3.1 L 31.15 7.1 L 19.1 7.1 Z M 19.1 3.1 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill-rule:evenodd;fill:rgb(32.549021%,66.274512%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 19 11.95 L 31.15 11.95 L 31.15 15.85 L 19 15.85 Z M 19 11.95 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:1,1;stroke-miterlimit:10;" d="M 25.125 7.1 L 25.080078 11.463281 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 25.076172 11.838281 L 24.83125 11.335742 L 25.080078 11.463281 L 25.33125 11.34082 L 25.076172 11.838281 Z M 25.076172 11.838281 " transform="matrix(20,0,0,20,-300,-61)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="150.917969" y="41"/>
+ <use xlink:href="#glyph0-2" x="158.652344" y="41"/>
+ <use xlink:href="#glyph0-3" x="174.355469" y="41"/>
+ <use xlink:href="#glyph0-4" x="187.792969" y="41"/>
+ <use xlink:href="#glyph0-5" x="198.574219" y="41"/>
+ <use xlink:href="#glyph0-4" x="213.808594" y="41"/>
+ <use xlink:href="#glyph0-6" x="224.589844" y="41"/>
+ <use xlink:href="#glyph0-3" x="240.644531" y="41"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="146.714844" y="217"/>
+ <use xlink:href="#glyph0-2" x="154.449219" y="217"/>
+ <use xlink:href="#glyph0-7" x="170.152344" y="217"/>
+ <use xlink:href="#glyph0-8" x="179.507812" y="217"/>
+ <use xlink:href="#glyph0-3" x="200.347656" y="217"/>
+ <use xlink:href="#glyph0-9" x="213.785156" y="217"/>
+ <use xlink:href="#glyph0-5" x="229.9375" y="217"/>
+ <use xlink:href="#glyph0-10" x="245.171875" y="217"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="211" y="136"/>
+ <use xlink:href="#glyph1-2" x="221.742188" y="136"/>
+ <use xlink:href="#glyph1-1" x="226.449219" y="136"/>
+ <use xlink:href="#glyph1-3" x="237.191406" y="136"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(95.686275%,27.058825%,27.058825%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 15.05 20 L 22.85 20 L 22.85 23.9 L 15.05 23.9 Z M 15.05 20 " transform="matrix(20,0,0,20,-300,-61)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="40.835938" y="378"/>
+ <use xlink:href="#glyph0-12" x="56.988281" y="378"/>
+ <use xlink:href="#glyph0-13" x="70.113281" y="378"/>
+ <use xlink:href="#glyph0-14" x="85.40625" y="378"/>
+ <use xlink:href="#glyph0-15" x="101.460938" y="378"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="43" y="403"/>
+ <use xlink:href="#glyph2-2" x="48" y="403"/>
+ <use xlink:href="#glyph2-3" x="52.511719" y="403"/>
+ <use xlink:href="#glyph2-4" x="60.34375" y="403"/>
+ <use xlink:href="#glyph2-5" x="65.597656" y="403"/>
+ <use xlink:href="#glyph2-6" x="69.660156" y="403"/>
+ <use xlink:href="#glyph2-7" x="75.792969" y="403"/>
+ <use xlink:href="#glyph2-8" x="84.542969" y="403"/>
+ <use xlink:href="#glyph2-9" x="94.40625" y="403"/>
+ <use xlink:href="#glyph2-10" x="102.53125" y="403"/>
+ <use xlink:href="#glyph2-11" x="107.140625" y="403"/>
+ <use xlink:href="#glyph2-12" x="115.285156" y="403"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(95.686275%,27.058825%,27.058825%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 27.005078 19.980078 L 34.805078 19.980078 L 34.805078 23.880078 L 27.005078 23.880078 Z M 27.005078 19.980078 " transform="matrix(20,0,0,20,-300,-61)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-11" x="279.9375" y="377.601563"/>
+ <use xlink:href="#glyph0-12" x="296.089844" y="377.601563"/>
+ <use xlink:href="#glyph0-13" x="309.214844" y="377.601563"/>
+ <use xlink:href="#glyph0-14" x="324.507813" y="377.601563"/>
+ <use xlink:href="#glyph0-15" x="340.5625" y="377.601563"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="286" y="401"/>
+ <use xlink:href="#glyph2-2" x="291" y="401"/>
+ <use xlink:href="#glyph2-3" x="295.511719" y="401"/>
+ <use xlink:href="#glyph2-4" x="303.34375" y="401"/>
+ <use xlink:href="#glyph2-5" x="308.597656" y="401"/>
+ <use xlink:href="#glyph2-7" x="312.660156" y="401"/>
+ <use xlink:href="#glyph2-13" x="321.410156" y="401"/>
+ <use xlink:href="#glyph2-14" x="331.332031" y="401"/>
+ <use xlink:href="#glyph2-10" x="340.082031" y="401"/>
+ <use xlink:href="#glyph2-11" x="344.691406" y="401"/>
+ <use xlink:href="#glyph2-12" x="352.835937" y="401"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 25.075 15.85 L 19.35293 19.726953 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 19.042578 19.937305 L 19.316211 19.449805 L 19.35293 19.726953 L 19.59668 19.863867 L 19.042578 19.937305 Z M 19.042578 19.937305 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 25.075 15.85 L 30.507812 19.698633 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 30.813672 19.91543 L 30.261328 19.830273 L 30.507812 19.698633 L 30.550195 19.422266 L 30.813672 19.91543 Z M 30.813672 19.91543 " transform="matrix(20,0,0,20,-300,-61)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-15" x="271" y="287"/>
+ <use xlink:href="#glyph2-16" x="283.460938" y="287"/>
+ <use xlink:href="#glyph2-17" x="291.3125" y="287"/>
+ <use xlink:href="#glyph2-16" x="299.417969" y="287"/>
+ <use xlink:href="#glyph2-18" x="307.269531" y="287"/>
+ <use xlink:href="#glyph2-19" x="315.394531" y="287"/>
+ <use xlink:href="#glyph2-20" x="323.265625" y="287"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-21" x="271" y="303"/>
+ <use xlink:href="#glyph2-4" x="279.125" y="303"/>
+ <use xlink:href="#glyph2-3" x="284.378906" y="303"/>
+ <use xlink:href="#glyph2-22" x="292.210938" y="303"/>
+ <use xlink:href="#glyph2-19" x="299.242188" y="303"/>
+ <use xlink:href="#glyph2-20" x="307.113281" y="303"/>
+ <use xlink:href="#glyph2-20" x="313.773438" y="303"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-15" x="79.101562" y="286.5"/>
+ <use xlink:href="#glyph2-16" x="91.5625" y="286.5"/>
+ <use xlink:href="#glyph2-17" x="99.414062" y="286.5"/>
+ <use xlink:href="#glyph2-16" x="107.519531" y="286.5"/>
+ <use xlink:href="#glyph2-18" x="115.371094" y="286.5"/>
+ <use xlink:href="#glyph2-19" x="123.496094" y="286.5"/>
+ <use xlink:href="#glyph2-20" x="131.367188" y="286.5"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-21" x="79.101562" y="302.5"/>
+ <use xlink:href="#glyph2-4" x="87.226562" y="302.5"/>
+ <use xlink:href="#glyph2-3" x="92.480469" y="302.5"/>
+ <use xlink:href="#glyph2-22" x="100.3125" y="302.5"/>
+ <use xlink:href="#glyph2-19" x="107.34375" y="302.5"/>
+ <use xlink:href="#glyph2-20" x="115.214844" y="302.5"/>
+ <use xlink:href="#glyph2-20" x="121.875" y="302.5"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(23.529412%,87.058824%,23.137255%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 34.95 11.9 L 42 11.9 L 42 15.85 L 34.95 15.85 Z M 34.95 11.9 " transform="matrix(20,0,0,20,-300,-61)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="457.78125" y="216.5"/>
+ <use xlink:href="#glyph0-2" x="465.515625" y="216.5"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 31.636719 13.896875 L 34.463281 13.878125 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 31.261719 13.899219 L 31.760156 13.645898 L 31.636719 13.896875 L 31.763477 14.145898 L 31.261719 13.899219 Z M 31.261719 13.899219 " transform="matrix(20,0,0,20,-300,-61)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 34.838281 13.875781 L 34.339844 14.129102 L 34.463281 13.878125 L 34.336523 13.629102 L 34.838281 13.875781 Z M 34.838281 13.875781 " transform="matrix(20,0,0,20,-300,-61)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-4" x="351" y="202"/>
+ <use xlink:href="#glyph1-5" x="356" y="202"/>
+ <use xlink:href="#glyph1-6" x="366.195312" y="202"/>
+</g>
+</g>
+</svg>