Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

258 lines (224 sloc) 16.97 kB
<?xml version="1.0"?>
<?xml-stylesheet type='text/xsl' href='interface.xsl'?>
<interface xmlns="http://zero-install.sourceforge.net/2004/injector/interface" uri="http://gfxmonk.net/dist/0install/shellshape.xml">
<name>shellshape</name>
<summary>tiling window manager extension for gnome-shell</summary>
<publish xmlns="http://gfxmonk.net/dist/0install" mode="featured"/>
<description>
# shellshape
A tiling window manager extension for gnome-shell. Many tiling window managers are an all-or-nothing affair, shellshape allows you to tile your windows when it makes sense, and still provides powerful direct manipulation when you need it. You don't have to give up any of the gnome features you like, so it makes for a very smooth learning curve.
This software is in-development. I use it daily, but it might break stuff. Use at your own risk. Multiple monitor support is not really present, and doing fancy things like "always on top" windows may or may not break it.
I must thank [bluetile][bluetile], for it was the inspiration for this extension and many features are lifted directly from it (although not code, JS and haskell are vastly different beasts).
## Running it on gnome-shell 3.4*
Briefly, `0launch http://gfxmonk.net/dist/0install/shellshape.xml`. If you don't have `0launch`, you should install the `zeroinstall-injector` package first.
For more details, please see instructions on &lt;http://gfxmonk.net/shellshape/&gt;
To run your own checkout, you should be able to clone this repo and run `0launch shellshape-local.xml`. As of gnome-shell 3.4.1, you can also / instead install the development version locally. In the root of the repo, run:
ln -s "$PWD/shellshape" "~/.local/share/gnome-shell/extensions/shellshape@gfxmonk.net"
## Running it on gnome-shell 3.2*
Is hard, error-prone, and no longer supported. Sorry!
## running on arch linux
You may want to try [this user-maintained package](https://aur.archlinux.org/packages.php?ID=50257) if the normal method doesn't work for you, but I have no idea what it will do to your system.
## "It doesn't work"
If you don't know why, here's some things to check:
- Check the extension is enabled (you can see this in the "Shell Extensions" section of `gnome-tweak-tool`)
- See if there are any errors in looking glass that mention shellshape (press alt-F2, type "`lg`" and then click the "Errors" tab)
- Check the console output (if running in a console) for any messages that mention shellshape
- Check /tmp/shellshape.log after launching with $SHELLSHAPE_DEBUG=all
To report a bug or crash, please see the [github issues page](https://github.com/gfxmonk/shellshape/issues).
## Replace gnome-shell
If you symlink the provided `gnome-shell.desktop` file to `~/.local/share/applications/`, gnome-session will use that to launch gnome-shell instead of the system's gnome-shell. Uninstalling is as simple as removing that file.
## Friends
This extension is best used with the natural window placement extension.
Other extensions I use and recommend:
- alternate status menu (the fact that this is not default bewilders me)
- workspace switcher
All of these should be available from your package manager, or [the gnome shell extensions page](https://live.gnome.org/GnomeShell/Extensions)
## Keyboard shortcuts
Are listed at [http://gfxmonk.net/shellshape/]()
Some helpful folk have created graphical (SVG) versions of the keyboard shortcuts, to serve as a handy reference:
- [Keyboard overlay image](https://github.com/downloads/gfxmonk/shellshape/keyboardshortcuts.svg) - Jordan Klassen
- [Desktop wallpaper](http://dl.dropbox.com/u/1879450/shellshape.svg) - Andreas Wallberg ([source](https://github.com/gfxmonk/shellshape/issues/95))
## Hacking
The core layout stuff is in `tiling.coffee`. This should run in both the shell and in the web browser (see `interactive/index.html`; useful for testing layout changes). The mutter / gnome-shell integration is provided by the other .js files in the root directory (except for `tiling.js`, it is generated from `tiling.coffee`).
## Debugging
If you export `SHELLSHAPE_DEBUG=all`, you will get a debug log written to `/tmp/shellshape.log`. You can set values other than `all` if you want to debug on specific topics (available topics include `extension`, `indicator`, `tiling`, `workspace` and `window`) - they should be set as a comma-delimited string, e.g `SHELLSHAPE_DEBUG=workspace,tiling`.
**Note** debugging like this won't work unless you run using `0launch`.
## Licence
GPLv3
## Changelog
### version 0.5.2
- Updated manifest.json to declare compatibility with gnome-shell 3.4.2
- Include LICENCE and README.md files in tarball
### version 0.5.1
- Added blacklist to prevent "Conky" windows from being tiled.
- Fixed a number of bugs to do with tracking window movement and sizes.
- Switched the "Horizontal" and "Vertical" layouts. You may need to adjust your keyboard shortcuts if you've set them to anything non-default, as the gsettings keys have swapped as well (if you haven't customised shortcuts, the defaults will still do the right thing)..
### version 0.5:
- Removed label from indicator icon.
- Rework icons to be simpler and look/act like other symbolic icons in the panel.
- Added a preferences panel (accessible from the gse website, or `gnome-shell-extension-prefs`).
- Added a "max autotile windows" option.
- Added the ability to customise keyboard shortcuts from the preferences panel.
### version 0.4:
- First release on extensions.gnome.org
[bluetile]: http://bluetile.org/
</description>
<homepage>http://gfxmonk.github.com/shellshape/</homepage>
<rich-description xmlns="http://gfxmonk.net/dist/0install">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1 id="shellshape">shellshape</h1>
<p>A tiling window manager extension for gnome-shell. Many tiling window managers are an all-or-nothing affair, shellshape allows you to tile your windows when it makes sense, and still provides powerful direct manipulation when you need it. You don't have to give up any of the gnome features you like, so it makes for a very smooth learning curve.</p>
<p>This software is in-development. I use it daily, but it might break stuff. Use at your own risk. Multiple monitor support is not really present, and doing fancy things like "always on top" windows may or may not break it.</p>
<p>I must thank <a href="http://bluetile.org/">bluetile</a>, for it was the inspiration for this extension and many features are lifted directly from it (although not code, JS and haskell are vastly different beasts).</p>
<h2 id="running-it-on-gnome-shell-3.4">Running it on gnome-shell 3.4*</h2>
<p>Briefly, <code>0launch http://gfxmonk.net/dist/0install/shellshape.xml</code>. If you don't have <code>0launch</code>, you should install the <code>zeroinstall-injector</code> package first. For more details, please see instructions on <a href="http://gfxmonk.net/shellshape/"><code class="url">http://gfxmonk.net/shellshape/</code></a></p>
<p>To run your own checkout, you should be able to clone this repo and run <code>0launch shellshape-local.xml</code>. As of gnome-shell 3.4.1, you can also / instead install the development version locally. In the root of the repo, run:</p>
<pre>
<code>ln -s "$PWD/shellshape" "~/.local/share/gnome-shell/extensions/shellshape@gfxmonk.net"</code>
</pre>
<h2 id="running-it-on-gnome-shell-3.2">Running it on gnome-shell 3.2*</h2>
<p>Is hard, error-prone, and no longer supported. Sorry!</p>
<h2 id="running-on-arch-linux">running on arch linux</h2>
<p>You may want to try <a href="https://aur.archlinux.org/packages.php?ID=50257">this user-maintained package</a> if the normal method doesn't work for you, but I have no idea what it will do to your system.</p>
<h2 id="it-doesnt-work">"It doesn't work"</h2>
<p>If you don't know why, here's some things to check:</p>
<pre>
<code>- Check the extension is enabled (you can see this in the "Shell Extensions" section of `gnome-tweak-tool`)
- See if there are any errors in looking glass that mention shellshape (press alt-F2, type "`lg`" and then click the "Errors" tab)
- Check the console output (if running in a console) for any messages that mention shellshape
- Check /tmp/shellshape.log after launching with $SHELLSHAPE_DEBUG=all</code>
</pre>
<p>To report a bug or crash, please see the <a href="https://github.com/gfxmonk/shellshape/issues">github issues page</a>.</p>
<h2 id="replace-gnome-shell">Replace gnome-shell</h2>
<p>If you symlink the provided <code>gnome-shell.desktop</code> file to <code>~/.local/share/applications/</code>, gnome-session will use that to launch gnome-shell instead of the system's gnome-shell. Uninstalling is as simple as removing that file.</p>
<h2 id="friends">Friends</h2>
<p>This extension is best used with the natural window placement extension.</p>
<p>Other extensions I use and recommend:</p>
<ul>
<li>alternate status menu (the fact that this is not default bewilders me)</li>
<li>workspace switcher</li>
</ul>
<p>All of these should be available from your package manager, or <a href="https://live.gnome.org/GnomeShell/Extensions">the gnome shell extensions page</a></p>
<h2 id="keyboard-shortcuts">Keyboard shortcuts</h2>
<p>Are listed at <a href="">http://gfxmonk.net/shellshape/</a> Some helpful folk have created graphical (SVG) versions of the keyboard shortcuts, to serve as a handy reference:</p>
<ul>
<li><a href="https://github.com/downloads/gfxmonk/shellshape/keyboardshortcuts.svg">Keyboard overlay image</a> - Jordan Klassen</li>
<li><a href="http://dl.dropbox.com/u/1879450/shellshape.svg">Desktop wallpaper</a> - Andreas Wallberg (<a href="https://github.com/gfxmonk/shellshape/issues/95">source</a>)</li>
</ul>
<h2 id="hacking">Hacking</h2>
<p>The core layout stuff is in <code>tiling.coffee</code>. This should run in both the shell and in the web browser (see <code>interactive/index.html</code>; useful for testing layout changes). The mutter / gnome-shell integration is provided by the other .js files in the root directory (except for <code>tiling.js</code>, it is generated from <code>tiling.coffee</code>).</p>
<h2 id="debugging">Debugging</h2>
<p>If you export <code>SHELLSHAPE_DEBUG=all</code>, you will get a debug log written to <code>/tmp/shellshape.log</code>. You can set values other than <code>all</code> if you want to debug on specific topics (available topics include <code>extension</code>, <code>indicator</code>, <code>tiling</code>, <code>workspace</code> and <code>window</code>) - they should be set as a comma-delimited string, e.g <code>SHELLSHAPE_DEBUG=workspace,tiling</code>.</p>
<p><strong>Note</strong> debugging like this won't work unless you run using <code>0launch</code>.</p>
<h2 id="licence">Licence</h2>
<p>GPLv3</p>
<h2 id="changelog">Changelog</h2>
<h3 id="version-0.5.2">version 0.5.2</h3>
<ul>
<li>Updated manifest.json to declare compatibility with gnome-shell 3.4.2</li>
<li>Include LICENCE and README.md files in tarball</li>
</ul>
<h3 id="version-0.5.1">version 0.5.1</h3>
<ul>
<li>Added blacklist to prevent "Conky" windows from being tiled.</li>
<li>Fixed a number of bugs to do with tracking window movement and sizes.</li>
<li>Switched the "Horizontal" and "Vertical" layouts. You may need to adjust your keyboard shortcuts if you've set them to anything non-default, as the gsettings keys have swapped as well (if you haven't customised shortcuts, the defaults will still do the right thing)..</li>
</ul>
<h3 id="version-0.5">version 0.5:</h3>
<ul>
<li>Removed label from indicator icon.</li>
<li>Rework icons to be simpler and look/act like other symbolic icons in the panel.</li>
<li>Added a preferences panel (accessible from the gse website, or <code>gnome-shell-extension-prefs</code>).</li>
<li>Added a "max autotile windows" option.</li>
<li>Added the ability to customise keyboard shortcuts from the preferences panel.</li>
</ul>
<h3 id="version-0.4">version 0.4:</h3>
<ul>
<li>First release on extensions.gnome.org</li>
</ul>
</div>
</rich-description>
<group main="run-gnome-shell">
<command name="run" path="run-gnome-shell">
<requires interface="http://gfxmonk.net/dist/0install/gnome-shell.xml">
<version not-before="3.0.2"/>
<version before="3.0.3"/>
</requires>
</command>
<requires interface="http://gfxmonk.net/dist/0install/shellshape-mutter.xml">
<version not-before="0.1"/>
<version before="0.2"/>
</requires>
<environment insert="xdg/data" mode="prepend" name="XDG_DATA_DIRS"/>
<implementation id="sha1new=5f32e22e9a90324b873a685235d7b8b96479481f" released="2011-06-24" stability="stable" version="0.1">
<manifest-digest sha256="d1d5239ba82d6fe334194402087b647acddbb9d151ab3fd872b42396065899dc"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.1.tgz" size="19310"/>
</implementation>
</group>
<group>
<command name="run">
<runner interface="http://gfxmonk.net/dist/0install/zeroinstall-plugin-manager.xml">
<arg>http://gfxmonk.net/dist/0install/gnome-shell.xml</arg>
<arg>--plugin-command</arg>
<arg>run</arg>
</runner>
<requires interface="http://gfxmonk.net/dist/0install/gnome-shell.xml">
<version not-before="3.0.2"/>
<version before="3.3"/>
</requires>
</command>
<requires interface="http://gfxmonk.net/dist/0install/shellshape-mutter.xml">
<version not-before="0.2"/>
<version before="0.4"/>
</requires>
<environment insert="xdg/data" mode="prepend" name="XDG_DATA_DIRS"/>
<environment insert="lib" mode="prepend" name="GJS_PATH"/>
<implementation id="sha1new=f9a5118aae1af805a88430956880046733ab2723" released="2011-07-17" version="0.2">
<manifest-digest sha256="1ddd07270621510b0146d878663cb658a82c551d85ae8b7c8340792f1a77adbf"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.2.tgz" size="52106"/>
</implementation>
<implementation id="sha1new=5911b1408350157fe60331346296c32e3f579857" released="2011-11-06" version="0.3">
<manifest-digest sha256="74ad0de60e71ac63577e37e9c7c277fc15eb6622b2a1905f473c86e2d007d2ba"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.3.tgz" size="52270"/>
</implementation>
<implementation id="sha1new=d833b17b5152812a8f7e58ab2848154402b17c46" released="2011-12-21" version="0.3.1">
<manifest-digest sha256="2437376cd245ee4f09b0738e1cc7392a04750a9cec4b0875bf71606703d9ee01"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.3.1.tgz" size="66650"/>
</implementation>
<implementation id="sha1new=89200d31d32d2a7702fa2e6bd753dbd30c2fb69a" released="2012-04-08" version="0.3.2">
<manifest-digest sha256="ed3a600dd0002c492be3250235429822b2668244af49567eeb3b6524ff78c63c"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.3.2.tgz" size="55007"/>
</implementation>
</group>
<group>
<command name="run">
<runner interface="http://gfxmonk.net/dist/0install/zeroinstall-plugin-manager.xml">
<arg>http://gfxmonk.net/dist/0install/gnome-shell.xml</arg>
<arg>--plugin-command</arg>
<arg>run</arg>
</runner>
</command>
<requires interface="http://gfxmonk.net/dist/0install/gnome-shell.xml">
<version not-before="3.4"/>
<version before="3.5"/>
</requires>
<environment insert="xdg/data" mode="prepend" name="XDG_DATA_DIRS"/>
<environment insert="lib" mode="prepend" name="GJS_PATH"/>
<implementation id="sha1new=4813ae4eb4c0233e56647055e912056d0de17827" released="2012-04-28" stability="stable" version="0.4">
<manifest-digest sha256="d2f082bcf626f6b31902fc1438069f922adebff8b2316463ff7d647a2976d8b4"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.4.tgz" size="59715"/>
</implementation>
<implementation id="sha1new=0be855c7fe860ea85f8ee08336d880bcbd56579a" released="2012-05-05" stability="stable" version="0.5">
<manifest-digest sha256="7ba16d6ba7ec202f3e72cc4156d6316fd482bd55c2f327071f37baab81f90eed"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.5.tgz" size="57843"/>
</implementation>
<implementation id="sha1new=d91671fb10f1fb0a490aca73cf1f21b056bf26cb" released="2012-05-11" version="0.5.1">
<manifest-digest sha256="825ef9ed735ee9bed5cad5b7c48bd3c2cc37f2485532a1cc37ffa72c997b37eb"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.5.1.tgz" size="58948"/>
</implementation>
<implementation id="sha1new=38902c46c6d2375b316853ac3eb03d30487ef12f" released="2012-09-05" version="0.5.2">
<manifest-digest sha256="5595f4fbbb6565162fd6f726a7117ec7d97bbc8c63d1322bceadbae71bc658ae"/>
<archive href="http://gfxmonk.net/dist/0install/shellshape/shellshape-0.5.2.tgz" size="65186"/>
</implementation>
</group>
</interface>
Jump to Line
Something went wrong with that request. Please try again.