In place of `
W.greedyView` or `
W.view` you would use
`\t ss -> if (W.tag . W.workspace . W.current) ss == t then W.focusUp ss else W.greedyView t ss`
or define that as a function. Swap `W.greedyView` for `W.view` and/or `W.focusDown` for `W.focusUp` if you wish.
If you define this as a function (let's say `tagOrFocus`), then the key definition becomes (assuming `EZConfig`):
++
[ (otherModMasks ++ "M-" ++ key, action tag)
| (tag, key) <- zip workspacen (words "1 2 3 4 5 6 7 8 9 0 - = <F1> <F2> <F3> <F4>")
, (otherModMasks, action) <- [("", windows . tagOrFocus)
,("S-", windows . W.shift)
]
]
(This is lifted from my own config, adjust as appropriate.)