[xmonad] Repeated presses on Mod - [1..9] to toggle between windows in workspace

Jean-Baptiste Mestelan mestelan at gmail.com
Sun Sep 3 06:37:32 UTC 2023


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 at 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 at 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 at 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 at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
>>>
>>
>>
>> --
>> brandon s allbery kf8nh
>> allbery.b at gmail.com
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/xmonad/attachments/20230903/2771fd08/attachment-0001.html>


More information about the xmonad mailing list