Allows to have several floating scratchpads running different applications.
Bind a key to namedScratchpadSpawnAction.
Pressing it will spawn configured application, or bring it to the current
workspace if it already exists.
Pressing the key with the application on the current workspace will
send it to a hidden workspace called NSP.
If you already have a workspace called NSP, it will use that.
NSP will also appear in xmobar and dzen status bars. You can tweak your
dynamicLog settings to filter it out if you like.
Create named scratchpads configuration in your xmonad.hs like this:
import XMonad.StackSet as W
scratchpads = [
-- run htop in xterm, find it by title, use default geometry
NS "htop" "xterm -e htop" (title =? "htop") Nothing ,
-- run stardict, find it by class name, place the window
-- 1/6 of screen width from the left, 1/6 of screen height
-- from the top, 2/3 of screen width by 2/3 of screen height
NS "stardict" "stardict" (className =? "Stardict")
(Just $ W.RationalRect (1/6) (1/6) (2/3) (2/3))
, ((modMask x .|. controlMask .|. shiftMask, xK_t), namedScratchpadAction scratchpads "htop")
, ((modMask x .|. controlMask .|. shiftMask, xK_s), namedScratchpadAction scratchpads "stardict")
... and a manage hook:
, manageHook = namedScratchpadManageHook scratchpads
For detailed instruction on editing the key binding see