<div dir="ltr">Thanks for the response!<div><br></div><div>Cycling through workspaces and then cycling focus isn't exactly what I was looking for, neither is GridSelect. Ideally, the behavior would be just be to move the currently focused window to the next window on any visible screen and cycle through (changing workspaces as necessary), whereas right now Alt-Tab is limited to cycling focus through windows on the focused workspace. There wouldn't be any screen swapping, just basically being able to Alt-Tab across the two physical screens that I have.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 23, 2017 at 1:49 PM, Linus Arver <span dir="ltr"><<a href="mailto:linusarver@gmail.com" target="_blank">linusarver@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Feb 23, 2017 at 09:19:18AM -0600, <a href="mailto:alexsu04@gmail.com">alexsu04@gmail.com</a> wrote:<br>
><br>
> Hi all,<br>
><br>
> I’ve been trying to get XMonad set up for dual monitor, but have been struggling with finding a way to cycle focus through every window (not workspace) visible on either screen. The behavior would be similar to XMonad.Actions.<wbr>WindowNavigation (the experimental module), but the cycling wouldn’t be bound to any direction, just cycle through all visible windows in the normal Alt-Tab sequence (left to right, top to bottom).<br>
><br>
> I’ve found some code in a previous thread that supposedly manipulates the StackSet, but it didn’t work for me:<br>
><br>
> > -- top of config<br>
> > import qualified XMonad.StackSet as W<br>
><br>
> > -- somewhere at top level<br>
> > onAllWS f = windows $ \ws@W.StackSet{ W.current = c, W.visible = vs } -><br>
> >    let screenNext x = W.current . f $ ws { W.current = x }<br>
> >        c':vs' = map screenNext (c:vs)<br>
> >    in ws{ W.current = c', W.visible = vs' }<br>
><br>
> ...<br>
><br>
> >  -- in keybindings: there are much more W.swap* W.focus* and W.shift* functions to use.<br>
> >  ,((modm, xK_f), onAllWS W.focusDown)<br>
> >  ,((modm, xK_d), onAllWS W.focusUp)<br>
> >  ,((modm, xK_g), onAllWS W.swapMaster)<br>
><br>
><br>
> Unfortunately, I’m still too terrible at Haskell to fix whatever is wrong with the above code, and haven’t found any other modules that have the functionality I want. Any help would be appreciated!<br>
<br>
</span>Have you looked at XMonad.Actions.CycleWS? I use it to cycle through all<br>
workspaces with windows in them. My config is customized beyond the<br>
standard XMonad config so you'd have to adapt it to your needs:<br>
<a href="https://github.com/listx/syscfg/blob/master/xmonad/xmonad.hs#L150" rel="noreferrer" target="_blank">https://github.com/listx/<wbr>syscfg/blob/master/xmonad/<wbr>xmonad.hs#L150</a><br>
<br>
Another alternative might be XMonad.Actions.GridSelect as it gives you a<br>
popup of all open windows (not workspaces).<br>
<br>
Best,<br>
Linus<br>
<br>
><br>
> Thanks!<br>
><br>
> Alex<br>
<br>
> ______________________________<wbr>_________________<br>
> xmonad mailing list<br>
> <a href="mailto:xmonad@haskell.org">xmonad@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/xmonad</a><br>
<br>
</blockquote></div><br></div>