To be more precise, here is the function with its inferred type:
tagOrFocus :: (Eq i, Eq s) =>
                i -> W.StackSet i l a s sd -> W.StackSet i l a s sd
tagOrFocus t ss = if (W.tag . W.workspace . W.current) ss == t then W.focusUp ss else W.view t ss


On Sun, 3 Sept 2023 at 08:10, Jean-Baptiste Mestelan <mestelan@gmail.com> wrote:
Many thanks, Brandon, this helps greatly!

I am not quite there yet: the 'move to workspace' part works OK, but the 'focus' part does not. It would seem the condition
(W.tag . W.workspace . W.current) ss == t
is never triggered? Still working on it.

I too use EZConfig, and have added the key definition as provided, along with the function
tagOrFocus t ss = if (W.tag . W.workspace . W.current) ss == t then W.focusUp ss else W.view t ss

On Sat, 2 Sept 2023 at 22:11, Brandon Allbery <allbery.b@gmail.com> wrote:
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.)



On Sat, Sep 2, 2023 at 8:08 AM Jean-Baptiste Mestelan <mestelan@gmail.com> wrote:
Hello XMonad,

How could one extend the behaviour of Mod - [1..9], so that an initial keypress switches to workspace n, but further keypresses toggle between windows in that workspace?
(It is the default behaviour of groups in AutoHotKey, and I must admit it has grown on me: it saves one move reaching for Mod-K).

Thanks for any Haskell hints.

_______________________________________________
xmonad mailing list
xmonad@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad


--
brandon s allbery kf8nh