myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $

    -- launch a terminal
    [ ((modm, xK_Return), spawn $ "in-cwd " ++ XMonad.terminal conf)
    , ((modm .|. shiftMask, xK_Return), spawn $ "in-cwd uxterm")
    , ((mod1Mask, xK_Return), spawn $ "in-cwd " ++ XMonad.terminal conf)
    , ((mod4Mask, xK_Return), spawn $ "LC_ALL=en_US.UTF-8 term -e /bin/bash -l")
    , ((mod4Mask, xK_t), spawn "tmux-choose")

    -- launch dmenu
    , ((mod1Mask, xK_space), spawn "dmenu_run")

    -- other launchers
    ---- process monitoring
    , ((mod4Mask, xK_h), spawn $ XMonad.terminal conf ++ " -e htop")
    , ((mod4Mask, xK_i), spawn $ XMonad.terminal conf ++ " -e sudo iotop")
    , ((mod4Mask, xK_p), spawn $ XMonad.terminal conf ++ " -e sudo powertop")

    ---- web browsers
    , ((modm, xK_c), spawn "chromium --new-window")
    , ((mod4Mask, xK_c), spawn "chromium --incognito")
    , ((mod4Mask, xK_s), spawn "scratch")

    ---- ssh
    , ((modm, xK_u), spawn "ssh-choose -r -1")
    , ((modm, xK_slash), spawn "ssh-choose -r")

    ---- screensaver/sleep
    , ((modm, xK_Scroll_Lock), spawn "xscreensaver-command -activate")
    , ((mod4Mask, xK_Scroll_Lock), spawn "xscreensaver-command -activate")
    , ((mod4Mask, xK_l), spawn "xscreensaver-command -activate")
    , ((0, xF86XK_ScreenSaver), spawn "xscreensaver-command -activate")
    , ((0, xF86XK_Sleep), spawn "slp")
    , ((mod4Mask .|. shiftMask, xK_l), spawn "slp")
    , ((mod4Mask .|. controlMask, xK_l), spawn "blank")

    ---- screenshot
    , ((0, xK_Print), spawn "screenshot")
    , ((mod4Mask, xK_Multi_key), spawn "screenshot")

    ---- monitor toggle
    , ((0, xF86XK_Display), spawn "mon --toggle")
    , ((shiftMask, xF86XK_Display), spawn "mon --cycle")

    ---- mpd
    , ((0, xF86XK_AudioPlay), spawn "music toggle")
    , ((0, xF86XK_AudioPause), spawn "music toggle") {- headset sends "Pause" -}
    , ((0, xF86XK_AudioStop), spawn "music stop")
    , ((0, xF86XK_AudioNext), spawn "music next")
    , ((0, xF86XK_AudioPrev), spawn "music prev")
    , ((0, xF86XK_AudioMute), spawn "toggle-pulse-mute")
    , ((mod4Mask, xF86XK_AudioRaiseVolume), spawn "sound-check")
    , let speakerTest = spawn "speaker-test -t wav -c2 -l1"
       in ((mod4Mask .|. shiftMask, xF86XK_AudioRaiseVolume), speakerTest)
    , ((0, xF86XK_AudioLowerVolume), spawn "pavucontrol")

    ---- brightness
    , ((modm, xK_F5), spawn "brightness = 1")
    , ((modm, xF86XK_MonBrightnessDown), spawn "brightness = 1")
    , ((modm .|. shiftMask, xK_F5), spawn "brightness down")
    , ((modm, xK_F6), spawn "brightness max")
    , ((modm, xF86XK_MonBrightnessUp), spawn "brightness max")
    , ((modm .|. shiftMask, xK_F6), spawn "brightness up")

    ---- pickers
    -- `run` a command
    , ((mod4Mask, xK_r), spawn "pick run")
    -- `vim` by file(s) being edited
    , ((mod4Mask, xK_v), spawn "pick kak")
    , ((mod4Mask .|. shiftMask, xK_v), spawn "pick vim")
    -- `zsh` by command or working directory
    , ((mod4Mask, xK_z), spawn "pick zsh")
    -- `mpc` by song
    , ((mod4Mask, xK_m), spawn "pick mpc")
    -- `window`
    , ((mod4Mask, xK_w), spawn "pick window")
    -- `wifi` ('shift+' because it's less common)
    , ((mod4Mask .|. shiftMask, xK_w), spawn "wifi-chooser")

    -- launch gmrun
    , ((modm .|. shiftMask, xK_p), spawn "gmrun")

    -- close focused window
    , ((modm .|. shiftMask, xK_c), kill)

    -- Rotate through the available layout algorithms
    , ((mod4Mask, xK_space), sendMessage NextLayout)

    --  Reset the layouts on the current workspace to default
    , ((mod4Mask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf)

    -- Resize viewed windows to the correct size
    , ((modm, xK_n), refresh)

    -- Swap the focused window and the master window
    , ((mod4Mask .|. shiftMask, xK_Return), windows W.swapMaster)

    -- Increment the number of windows in the master area
    , ((modm .|. shiftMask, xK_comma), sendMessage (IncMasterN 1))

    -- Deincrement the number of windows in the master area
    , ((modm .|. shiftMask, xK_period), sendMessage (IncMasterN (-1)))

    -- Quit xmonad
    , ((modm .|. shiftMask, xK_q), io (exitWith ExitSuccess))

    -- Restart xmonad
    , ((modm, xK_q), spawn "xmonad --recompile && xmonad --restart")
    , ((modm, xK_r), spawn "xmonad --recompile")
    ]
    ++

    -- Directional movement
    [ ((modm, xK_h), sendMessage $ Go L)
    , ((modm, xK_j), windowDown)
    , ((modm, xK_k), windowUp)
    , ((modm, xK_l), sendMessage $ Go R)
    , ((modm .|. shiftMask, xK_j), sendMessage $ Swap D)
    , ((modm .|. shiftMask, xK_j), swapDown)
    , ((modm .|. shiftMask, xK_k), sendMessage $ Swap U)
    , ((modm .|. shiftMask, xK_k), swapUp)
    ]
    ++

    -- wmii style layouts
    [ ((modm, xK_s), groupToTabbedLayout)
    , ((modm, xK_m), groupToFullLayout)
    , ((modm, xK_f), groupToNextLayout)
    , ((modm, xK_d), groupToVerticalLayout)
    , ((modm .|. shiftMask, xK_h), moveToGroupUp False)
    , ((modm .|. shiftMask, xK_l), moveToGroupDown False)
    , ((modm, xK_space), withFocused float)
    , ((modm .|. shiftMask, xK_space), withFocused $ windows . W.sink)
    ]
    ++

    -- named workspaces
    [ ((modm, xK_t), selectWorkspace myPrompt)
    , ((modm .|. shiftMask, xK_t), withWorkspace myPrompt (windows . W.shift))
    , ((modm, xK_p), moveTo Prev NonEmptyWS)
    , ((modm .|. shiftMask, xK_p), swapTo Prev)
    , ((modm, xK_n), moveTo Next NonEmptyWS)
    , ((modm .|. shiftMask, xK_n), swapTo Next)
    , ((modm .|. shiftMask, xK_minus), removeEmptyWorkspace)
    ]
    ++

    -- fix issue with Xinerama when (dis-/)connecting laptop dock
    [ ((mod4Mask, xK_q), fixXinerama) ]
    ++

    --
    -- mod-[1..9,0,i], Switch to workspace N
    -- mod-shift-[1..9,0,i], Move client to workspace N
    -- "0" maps to N=10
    -- "i" for "IM" maps to N=7 (force of habit)
    --
    let workspaces = show <$> [1 .. 9] ++ [10, 7]
        keys = [xK_1 .. xK_9] ++ [xK_0, xK_i]
    in [ ((modm .|. mask, key), action workspace)
       | (workspace, key) <- zip workspaces keys
       , (mask, action) <- [ (0, warpView)
                           , (shiftMask, windows . W.shift)
                           , (mod4Mask, windows . W.greedyView)
                           , (mod4Mask .|. shiftMask, shiftAll)
                           ]
       ]
    ++
    -- Toggle the state for warpView actions
    [ ((mod4Mask .|. shiftMask, xK_1), XS.modify warpViewCycle >> refresh) ]
    ++

    -- Ctrl+Win+[q,w,e,r,t,...] = warp to screen 0,1,2,...
    [ ((mod4Mask .|. controlMask, key), warpToScreen screen 0.5 0.5)
      | (key, screen) <- zip [xK_q, xK_w, xK_e, xK_r, xK_t, xK_y] [0..]]
    ++

    -- Grid Select
    [ ((mod4Mask, xK_g), goToSelected def) ]
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $

    -- launch a terminal
    [ ((modm, xK_Return), spawn $ "in-cwd " ++ XMonad.terminal conf)
    , ((modm .|. shiftMask, xK_Return), spawn $ "in-cwd uxterm")
    , ((mod1Mask, xK_Return), spawn $ "in-cwd " ++ XMonad.terminal conf)
    , ((mod4Mask, xK_Return), spawn $ "LC_ALL=en_US.UTF-8 term -e /bin/bash -l")
    , ((mod4Mask, xK_t), spawn "tmux-choose")

    -- launch dmenu
    , ((mod1Mask, xK_space), spawn "dmenu_run")

    -- other launchers
    ---- process monitoring
    , ((mod4Mask, xK_h), spawn $ XMonad.terminal conf ++ " -e htop")
    , ((mod4Mask, xK_i), spawn $ XMonad.terminal conf ++ " -e sudo iotop")
    , ((mod4Mask, xK_p), spawn $ XMonad.terminal conf ++ " -e sudo powertop")

    ---- web browsers
    , ((modm, xK_c), spawn "chromium --new-window")
    , ((mod4Mask, xK_c), spawn "chromium --incognito")
    , ((mod4Mask, xK_s), spawn "scratch")

    ---- ssh
    , ((modm, xK_u), spawn "ssh-choose -r -1")
    , ((modm, xK_slash), spawn "ssh-choose -r")

    ---- screensaver/sleep
    , ((modm, xK_Scroll_Lock), spawn "xscreensaver-command -activate")
    , ((mod4Mask, xK_Scroll_Lock), spawn "xscreensaver-command -activate")
    , ((mod4Mask, xK_l), spawn "xscreensaver-command -activate")
    , ((0, xF86XK_ScreenSaver), spawn "xscreensaver-command -activate")
    , ((0, xF86XK_Sleep), spawn "slp")
    , ((mod4Mask .|. shiftMask, xK_l), spawn "slp")
    , ((mod4Mask .|. controlMask, xK_l), spawn "blank")

    ---- screenshot
    , ((0, xK_Print), spawn "screenshot")
    , ((mod4Mask, xK_Multi_key), spawn "screenshot")

    ---- monitor toggle
    , ((0, xF86XK_Display), spawn "mon --toggle")
    , ((shiftMask, xF86XK_Display), spawn "mon --cycle")

    ---- mpd
    , ((0, xF86XK_AudioPlay), spawn "music toggle")
    , ((0, xF86XK_AudioPause), spawn "music toggle") {- headset sends "Pause" -}
    , ((0, xF86XK_AudioStop), spawn "music stop")
    , ((0, xF86XK_AudioNext), spawn "music next")
    , ((0, xF86XK_AudioPrev), spawn "music prev")
    , ((0, xF86XK_AudioMute), spawn "toggle-pulse-mute")
    , ((mod4Mask, xF86XK_AudioRaiseVolume), spawn "sound-check")
    , let speakerTest = spawn "speaker-test -t wav -c2 -l1"
       in ((mod4Mask .|. shiftMask, xF86XK_AudioRaiseVolume), speakerTest)
    , ((0, xF86XK_AudioLowerVolume), spawn "pavucontrol")

    ---- brightness
    , ((modm, xK_F5), spawn "brightness = 1")
    , ((modm, xF86XK_MonBrightnessDown), spawn "brightness = 1")
    , ((modm .|. shiftMask, xK_F5), spawn "brightness down")
    , ((modm, xK_F6), spawn "brightness max")
    , ((modm, xF86XK_MonBrightnessUp), spawn "brightness max")
    , ((modm .|. shiftMask, xK_F6), spawn "brightness up")

    ---- pickers
    -- `run` a command
    , ((mod4Mask, xK_r), spawn "pick run")
    -- `vim` by file(s) being edited
    , ((mod4Mask, xK_v), spawn "pick kak")
    , ((mod4Mask .|. shiftMask, xK_v), spawn "pick vim")
    -- `zsh` by command or working directory
    , ((mod4Mask, xK_z), spawn "pick zsh")
    -- `mpc` by song
    , ((mod4Mask, xK_m), spawn "pick mpc")
    -- `window`
    , ((mod4Mask, xK_w), spawn "pick window")
    -- `wifi` ('shift+' because it's less common)
    , ((mod4Mask .|. shiftMask, xK_w), spawn "wifi-chooser")

    -- launch gmrun
    , ((modm .|. shiftMask, xK_p), spawn "gmrun")

    -- close focused window
    , ((modm .|. shiftMask, xK_c), kill)

    -- Rotate through the available layout algorithms
    , ((mod4Mask, xK_space), sendMessage NextLayout)

    --  Reset the layouts on the current workspace to default
    , ((mod4Mask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf)

    -- Resize viewed windows to the correct size
    , ((modm, xK_n), refresh)

    -- Swap the focused window and the master window
    , ((mod4Mask .|. shiftMask, xK_Return), windows W.swapMaster)

    -- Increment the number of windows in the master area
    , ((modm .|. shiftMask, xK_comma), sendMessage (IncMasterN 1))

    -- Deincrement the number of windows in the master area
    , ((modm .|. shiftMask, xK_period), sendMessage (IncMasterN (-1)))

    -- Quit xmonad
    , ((modm .|. shiftMask, xK_q), io (exitWith ExitSuccess))

    -- Restart xmonad
    , ((modm, xK_q), spawn "xmonad --recompile && xmonad --restart")
    , ((modm, xK_r), spawn "xmonad --recompile")
    ]
    ++

    -- Directional movement
    [ ((modm, xK_h), sendMessage $ Go L)
    , ((modm, xK_j), windowDown)
    , ((modm, xK_k), windowUp)
    , ((modm, xK_l), sendMessage $ Go R)
    , ((modm .|. shiftMask, xK_j), sendMessage $ Swap D)
    , ((modm .|. shiftMask, xK_j), swapDown)
    , ((modm .|. shiftMask, xK_k), sendMessage $ Swap U)
    , ((modm .|. shiftMask, xK_k), swapUp)
    ]
    ++

    -- wmii style layouts
    [ ((modm, xK_s), groupToTabbedLayout)
    , ((modm, xK_m), groupToFullLayout)
    , ((modm, xK_f), groupToNextLayout)
    , ((modm, xK_d), groupToVerticalLayout)
    , ((modm .|. shiftMask, xK_h), moveToGroupUp False)
    , ((modm .|. shiftMask, xK_l), moveToGroupDown False)
    , ((modm, xK_space), withFocused float)
    , ((modm .|. shiftMask, xK_space), withFocused $ windows . W.sink)
    ]
    ++

    -- named workspaces
    [ ((modm, xK_t), selectWorkspace myPrompt)
    , ((modm .|. shiftMask, xK_t), withWorkspace myPrompt (windows . W.shift))
    , ((modm, xK_p), moveTo Prev NonEmptyWS)
    , ((modm .|. shiftMask, xK_p), swapTo Prev)
    , ((modm, xK_n), moveTo Next NonEmptyWS)
    , ((modm .|. shiftMask, xK_n), swapTo Next)
    , ((modm .|. shiftMask, xK_minus), removeEmptyWorkspace)
    ]
    ++

    -- fix issue with Xinerama when (dis-/)connecting laptop dock
    [ ((mod4Mask, xK_q), fixXinerama) ]
    ++

    --
    -- mod-[1..9,0,i], Switch to workspace N
    -- mod-shift-[1..9,0,i], Move client to workspace N
    -- "0" maps to N=10
    -- "i" for "IM" maps to N=7 (force of habit)
    --
    let workspaces = show <$> [1 .. 9] ++ [10, 7]
        keys = [xK_1 .. xK_9] ++ [xK_0, xK_i]
    in [ ((modm .|. mask, key), action workspace)
       | (workspace, key) <- zip workspaces keys
       , (mask, action) <- [ (0, warpView)
                           , (shiftMask, windows . W.shift)
                           , (mod4Mask, windows . W.greedyView)
                           , (mod4Mask .|. shiftMask, shiftAll)
                           ]
       ]
    ++
    -- Toggle the state for warpView actions
    [ ((mod4Mask .|. shiftMask, xK_1), XS.modify warpViewCycle >> refresh) ]
    ++

    -- Ctrl+Win+[q,w,e,r,t,...] = warp to screen 0,1,2,...
    [ ((mod4Mask .|. controlMask, key), warpToScreen screen 0.5 0.5)
      | (key, screen) <- zip [xK_q, xK_w, xK_e, xK_r, xK_t, xK_y] [0..]]
    ++

    -- Grid Select
    [ ((mod4Mask, xK_g), goToSelected def) ]
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $

    -- launch a terminal
    [ ((modm, xK_Return), spawn $ "in-cwd " ++ XMonad.terminal conf)
    , ((modm .|. shiftMask, xK_Return), spawn $ "in-cwd uxterm")
    , ((mod1Mask, xK_Return), spawn $ "in-cwd " ++ XMonad.terminal conf)
    , ((mod4Mask, xK_Return), spawn $ "LC_ALL=en_US.UTF-8 term -e /bin/bash -l")
    , ((mod4Mask, xK_t), spawn "tmux-choose")

    -- launch dmenu
    , ((mod1Mask, xK_space), spawn "dmenu_run")

    -- other launchers
    ---- process monitoring
    , ((mod4Mask, xK_h), spawn $ XMonad.terminal conf ++ " -e htop")
    , ((mod4Mask, xK_i), spawn $ XMonad.terminal conf ++ " -e sudo iotop")
    , ((mod4Mask, xK_p), spawn $ XMonad.terminal conf ++ " -e sudo powertop")

    ---- web browsers
    , ((modm, xK_c), spawn "chromium --new-window")
    , ((mod4Mask, xK_c), spawn "chromium --incognito")
    , ((mod4Mask, xK_s), spawn "scratch")

    ---- ssh
    , ((modm, xK_u), spawn "ssh-choose -r -1")
    , ((modm, xK_slash), spawn "ssh-choose -r")

    ---- screensaver/sleep
    , ((modm, xK_Scroll_Lock), spawn "xscreensaver-command -activate")
    , ((mod4Mask, xK_Scroll_Lock), spawn "xscreensaver-command -activate")
    , ((mod4Mask, xK_l), spawn "xscreensaver-command -activate")
    , ((0, xF86XK_ScreenSaver), spawn "xscreensaver-command -activate")
    , ((0, xF86XK_Sleep), spawn "slp")
    , ((mod4Mask .|. shiftMask, xK_l), spawn "slp")
    , ((mod4Mask .|. controlMask, xK_l), spawn "blank")

    ---- screenshot
    , ((0, xK_Print), spawn "screenshot")
    , ((mod4Mask, xK_Multi_key), spawn "screenshot")

    ---- monitor toggle
    , ((0, xF86XK_Display), spawn "mon --toggle")
    , ((shiftMask, xF86XK_Display), spawn "mon --cycle")

    ---- mpd
    , ((0, xF86XK_AudioPlay), spawn "music toggle")
    , ((0, xF86XK_AudioPause), spawn "music toggle") {- headset sends "Pause" -}
    , ((0, xF86XK_AudioStop), spawn "music stop")
    , ((0, xF86XK_AudioNext), spawn "music next")
    , ((0, xF86XK_AudioPrev), spawn "music prev")
    , ((0, xF86XK_AudioMute), spawn "toggle-pulse-mute")
    , ((mod4Mask, xF86XK_AudioRaiseVolume), spawn "sound-check")
    , let speakerTest = spawn "speaker-test -t wav -c2 -l1"
       in ((mod4Mask .|. shiftMask, xF86XK_AudioRaiseVolume), speakerTest)
    , ((0, xF86XK_AudioLowerVolume), spawn "pavucontrol")

    ---- brightness
    , ((modm, xK_F5), spawn "brightness = 1")
    , ((modm, xF86XK_MonBrightnessDown), spawn "brightness = 1")
    , ((modm .|. shiftMask, xK_F5), spawn "brightness down")
    , ((modm, xK_F6), spawn "brightness max")
    , ((modm, xF86XK_MonBrightnessUp), spawn "brightness max")
    , ((modm .|. shiftMask, xK_F6), spawn "brightness up")

    ---- pickers
    -- `run` a command
    , ((mod4Mask, xK_r), spawn "pick run")
    -- `vim` by file(s) being edited
    , ((mod4Mask, xK_v), spawn "pick kak")
    , ((mod4Mask .|. shiftMask, xK_v), spawn "pick vim")
    -- `zsh` by command or working directory
    , ((mod4Mask, xK_z), spawn "pick zsh")
    -- `mpc` by song
    , ((mod4Mask, xK_m), spawn "pick mpc")
    -- `window`
    , ((mod4Mask, xK_w), spawn "pick window")
    -- `wifi` ('shift+' because it's less common)
    , ((mod4Mask .|. shiftMask, xK_w), spawn "wifi-chooser")

    -- launch gmrun
    , ((modm .|. shiftMask, xK_p), spawn "gmrun")

    -- close focused window
    , ((modm .|. shiftMask, xK_c), kill)

    -- Rotate through the available layout algorithms
    , ((mod4Mask, xK_space), sendMessage NextLayout)

    --  Reset the layouts on the current workspace to default
    , ((mod4Mask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf)

    -- Resize viewed windows to the correct size
    , ((modm, xK_n), refresh)

    -- Swap the focused window and the master window
    , ((mod4Mask .|. shiftMask, xK_Return), windows W.swapMaster)

    -- Increment the number of windows in the master area
    , ((modm .|. shiftMask, xK_comma), sendMessage (IncMasterN 1))

    -- Deincrement the number of windows in the master area
    , ((modm .|. shiftMask, xK_period), sendMessage (IncMasterN (-1)))

    -- Quit xmonad
    , ((modm .|. shiftMask, xK_q), io (exitWith ExitSuccess))

    -- Restart xmonad
    , ((modm, xK_q), spawn "xmonad --recompile && xmonad --restart")
    , ((modm, xK_r), spawn "xmonad --recompile")
    ]
    ++

    -- Directional movement
    [ ((modm, xK_h), sendMessage $ Go L)
    , ((modm, xK_j), windowDown)
    , ((modm, xK_k), windowUp)
    , ((modm, xK_l), sendMessage $ Go R)
    , ((modm .|. shiftMask, xK_j), sendMessage $ Swap D)
    , ((modm .|. shiftMask, xK_j), swapDown)
    , ((modm .|. shiftMask, xK_k), sendMessage $ Swap U)
    , ((modm .|. shiftMask, xK_k), swapUp)
    ]
    ++

    -- wmii style layouts
    [ ((modm, xK_s), groupToTabbedLayout)
    , ((modm, xK_m), groupToFullLayout)
    , ((modm, xK_f), groupToNextLayout)
    , ((modm, xK_d), groupToVerticalLayout)
    , ((modm .|. shiftMask, xK_h), moveToGroupUp False)
    , ((modm .|. shiftMask, xK_l), moveToGroupDown False)
    , ((modm, xK_space), withFocused float)
    , ((modm .|. shiftMask, xK_space), withFocused $ windows . W.sink)
    ]
    ++

    -- named workspaces
    [ ((modm, xK_t), selectWorkspace myPrompt)
    , ((modm .|. shiftMask, xK_t), withWorkspace myPrompt (windows . W.shift))
    , ((modm, xK_p), moveTo Prev NonEmptyWS)
    , ((modm .|. shiftMask, xK_p), swapTo Prev)
    , ((modm, xK_n), moveTo Next NonEmptyWS)
    , ((modm .|. shiftMask, xK_n), swapTo Next)
    , ((modm .|. shiftMask, xK_minus), removeEmptyWorkspace)
    ]
    ++

    -- fix issue with Xinerama when (dis-/)connecting laptop dock
    [ ((mod4Mask, xK_q), fixXinerama) ]
    ++

    --
    -- mod-[1..9,0,i], Switch to workspace N
    -- mod-shift-[1..9,0,i], Move client to workspace N
    -- "0" maps to N=10
    -- "i" for "IM" maps to N=7 (force of habit)
    --
    let workspaces = show <$> [1 .. 9] ++ [10, 7]
        keys = [xK_1 .. xK_9] ++ [xK_0, xK_i]
    in [ ((modm .|. mask, key), action workspace)
       | (workspace, key) <- zip workspaces keys
       , (mask, action) <- [ (0, warpView)
                           , (shiftMask, windows . W.shift)
                           , (mod4Mask, windows . W.greedyView)
                           , (mod4Mask .|. shiftMask, shiftAll)
                           ]
       ]
    ++
    -- Toggle the state for warpView actions
    [ ((mod4Mask .|. shiftMask, xK_1), XS.modify warpViewCycle >> refresh) ]
    ++

    -- Ctrl+Win+[q,w,e,r,t,...] = warp to screen 0,1,2,...
    [ ((mod4Mask .|. controlMask, key), warpToScreen screen 0.5 0.5)
      | (key, screen) <- zip [xK_q, xK_w, xK_e, xK_r, xK_t, xK_y] [0..]]
    ++

    -- Grid Select
    [ ((mod4Mask, xK_g), goToSelected def) ]