For cycling through workspaces (in my setup with Win-PgUp/PgDown, you can achieve what you want using moveTo Prev HiddenWS and moveTo Next HiddenWS (defined in X.A.CycleWS).  For switching to workspaces, say 1..10, directly without messing with their assignment to monitors, XMonad has XMonad.StackSet.view.  With the behaviour you describe, I suspect that your workspace switching keys are bound to XMonad.StackSet.greedyView.  XMonad.StackSet.view simply focuses the requested workspace if it is already visible on some monitor and otherwise behaves the same as greedyView.

Cheers,
Norbert

On Mon, Aug 22, 2016 at 7:09 PM, Eyal Erez <oneself@gmail.com> wrote:
Hi,

I use xmonad with two monitors.  I love that I can switch workspaces
in each monitor independently.  I don't believe any other WM supports
this feature.  However, if a workspace is visible on one monitor and I
hit its number on another monitor, xmonad will swap the two
workspaces.

For example:

*focus
mon  A   B
SW  [1] [2]*

If I hit M-1, I get

*focus
mon  A   B
ws  [2] [1]*

I was hoping that there's a way to change this behavior.  I would like
xmonad to either not do anything in this case or better yet, switch
the focus on the other monitor without swapping workspaces.

Thank you,

-- 
There are 10 types of people, those who know binary and those who don't.







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




--
Norbert Zeh
Professor and Canada Research Chair
Faculty of Computer Science, Dalhousie University
E: nzeh@cs.dal.ca - T: +1-902-494-3154 - F: +1-902-492-1517