[xmonad] Move window to slave on another workspace

Toby Cubitt tsc25 at cantab.net
Sun Sep 18 18:45:00 CEST 2011


I have keybindings along the lines of

  [ ((modMask .|. mod1Mask, k), windows (W.shift i))
    | (i, k) <- zip myWorkspaces [xK_F1 .. xK_F12] ]

for calling "windows (W.shift i)" to move the current window to a given
workspace using Mod+Fn.

The problem is, this usually moves the window to the master slot on the
target workspace. Whereas I almost invariably want it moved to a slave

There must be a way of modifying the command so that it always moves the
window to the slave, but my Haskell chops aren't up to figuring out

As far as I understand it, shift always inserts the moved window directly
above the focused window on the target workspace. If the focused window
was the master, then the shifted window becomes the new master I think
inserting it directly below the focuses window would probably have the
desired effect, since presumably a new window below the focused one can
never end up as the master. But I don't understand XMonad stacksets
anywhere near well enough to figure out how to write a version of shift
that does what I want. Or am I barking up the wrong tree?

Can anyone help with this?

Dr T. S. Cubitt
Mathematics and Quantum Information group
Department of Mathematics
Complutense University
Madrid, Spain

email: tsc25 at cantab.net
web:   www.dr-qubit.org

More information about the xmonad mailing list