You can use this module with the following in your ~/.xmonad/xmonad.hs file:
import XMonad.Actions.CopyWindow
Then add something like this to your keybindings:
-- mod-[1..9] @@ Switch to workspace N
-- mod-shift-[1..9] @@ Move client to workspace N
-- mod-control-shift-[1..9] @@ Copy client to workspace N
[((m .|. modMask x, k), windows $ f i)
| (i, k) <- zip (workspaces x) [xK_1 ..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask), (copy, shiftMask .|. controlMask)]]
To use the above key bindings you need also to import
XMonad.StackSet:
import qualified XMonad.StackSet as W
You may also wish to redefine the binding to kill a window so it only
removes it from the current workspace, if it's present elsewhere:
, ((modMask x .|. shiftMask, xK_c ), kill1) -- @@ Close the focused window
For detailed instructions on editing your key bindings, see
XMonad.Doc.Extending#Editing_key_bindings.
|