Sharing window between workspaces in Xmonad

xmonad

I sometimes need to share the same terminal window between two workspaces. Is it possible to set this in xmonad configuration?

Currently I'm solving this with "move to workspace 2" and "move to workspace 1" for that window but this is cumbersome.

Best Answer

Displaying a window on more than one workspace is usually called making it sticky. There was talk of supporting sticky windows in XMonad, and it seems to have been implemented but with limitations.

If you want to display a particular window on a particular set of workspaces, this seems to be possible with an extension: Actions.CopyWindow.


If you're looking for alternatives to XMonad, one (relatively) popular tiling window manager is Awesome. Where XMonad is written and extended in Haskell, Awesome is tied to Lua. Awesome supports sticky windows through awful.client.sticky (at least in Awesome 3.4.6 under Debian squeeze; the online documentation looks incomplete). Awesome also supports organizing windows with tags, and a window can be in more than one tag as a matter of course.

Another alternative is Sawfish. It's written and extended in Scheme. Sawfish isn't a tiling window manager, but it's highly configurable, so you could probably build one¹ (I don't know if it's been done). It definitely supports displaying a window on an arbitrary set of workspaces.

¹ In the same way Emacs can emulate vi.

Related Question