[xmonad] Shifting client-instances to workspaces

Wirt Wolff wirtwolff at gmail.com
Tue Dec 20 13:57:06 CET 2011


Excerpts from 1126's message of Tue Dec 20 04:05:00 -0700 2011:
>
> I added the ability to shift clients automatically to a workspace. So,
> when I start Firefox it is opened on my www-workspace automatically.
>
> I want the same for Irssi and Alpine and my Emacs. I want them opened
> on the communiaction-workspace, or the coding-workspace ;)
>
> But all of them are running withing URxvt, so the class is always
> URxvt.
>
> In i3 you are able to shift a client-instance to a workspace, like so:
>
>      assign [class="URxvt" instance="irssi"] -> 2|com
>
> Is something similar possible in xmonad? And if so, how?
>

This will be similar to your Firefox manageHook.  In xmonad-speak
`instance' is called `resource' or `appName'. They're identical; one's
an alias for the other. To combine them use <&&> and <||> (see
XMonad.ManageHook.) Also, there are several examples in the mailing list
archives of how to put together fancier regexp-like matches if you end
up needing them.

So your example would look like:

  className =? "URxvt" <&&> appName =? "irssi" --> doShift "2|com"

There's a section about finding window properties midway through
http://xmonad.org/faq (the xprop wrapper window-properties.sh script
mentioned there makes life easier. It yields copy pasteable property
matchers (Query Bool's).

Welcome to the list. (Don't worry. Most of the time everyone here and
in #xmonad on chat.freenode.org is friendly and helpful.)

-- wmw



More information about the xmonad mailing list