2017-02-22 2 views
0

Ich benutze XMonad auf einem Dual-Bildschirm eingerichtet, und möchte in der Lage sein, Fokus durch jedes Fenster auf beiden Bildschirm sichtbar (sagen wir mit Alt + Tab). Das Verhalten wäre ähnlich zu XMonad.Actions.WindowNavigation, außer dass es nicht an eine Richtung gebunden wäre, und einfach in einer Reihenfolge durch sie hindurchgehen, die sinnvoll ist (zum Beispiel von links nach rechts, von oben nach unten).XMonad Zyklus durch alle sichtbaren Bildschirme

Ich habe einen Code here gefunden, der behauptet, den StackSet zu manipulieren, um dieses Problem zu lösen, und ich habe es kompilieren, aber es würde nicht tun, was ich wollte. Leider ist mein Verständnis von Haskell ziemlich begrenzt, so dass ich weder meine eigenen schreiben noch reparieren konnte, was auch immer mit dem obigen Code falsch ist.

Antwort

1

können Sie das CycleWS Modul in xmonad-contrib

verwenden Es Bindungen hat, die Sie, um durch die nicht-leeren Workspaces verwenden:

import XMonad.Actions.CycleWS 

myKeys homeDir [email protected](XConfig {XMonad.modMask = modm}) = M.fromList $ 
    [ -- (your own bindings here) 
    -- Cycle non-empty workspaces with mod+tab or mod+shift+tab 
    , ((modm    , xK_Tab ), moveTo Next NonEmptyWS) 
    , ((modm .|. shiftMask, xK_Tab ), moveTo Prev NonEmptyWS) 
    ] 

Meine volle Config ist here, wenn Sie ein vollständiges Beispiel wollen.

+0

Danke für die Antwort! Ich denke, dass CycleWS es mir ermöglicht, durch Arbeitsbereiche zu fahren, aber was ich eigentlich tun möchte, ist, dass ich den Fokus über die Fenster bewegen kann, ohne die Arbeitsbereiche tatsächlich zu wechseln. Wenn ich also zwei Bildschirme hätte, Arbeitsbereich 1 und 2 sichtbar wäre und ich mich momentan auf ein Fenster in Arbeitsbereich 1 konzentriere, würde ich gerne Alt-Tab binden können, um den Fokus auf alle geöffneten Fenster in Arbeitsbereich 1 und 2 zu verschieben. Ist das sinnvoll? – asu04