2017-06-04 44 views
1

在多显示器设置工作区:骑自行车通过我目前使用ALT + CTRL左和ALT-CTRL左循环工作区之间的XMonad

, ((altModMask .|. controlMask, xK_Left), 
    prevWS) 
    , ((altModMask .|. controlMask, xK_Right), 
    nextWS) 

也能正常工作的单显示器设置。但是,使用双显示器设置时有点令人困惑。这是因为如果当前在另一个屏幕上可见,要显示的工作区将改变屏幕。举例来说,如果我有在屏幕上1,在屏幕0 WS 1和WS 2和具有焦点,在屏幕0:

1:term (2:web) 3:txt 

当我现在在做一个“nextWS”,WS 2,这是目前在画面1将被吸引到屏幕0,而画面1将显示WS 1.

(1:term) 2:web 3:txt 

我想是一种行为,其中prexWS和nextWS将跃过当前在另一台显示器上显示的工作区和只选择当前未显示的工作区。

是否有这样的命令已经存在,或者是否有一些xmonad.hs实现这个实例?

回答

2

使用XMonad.Actions.DynamicWorkspaceOrder从xmonad-贡献:​​

import qualified XMonad.Actions.DynamicWorkspaceOrder as DO 

    , ((altModMask .|. controlMask, xK_Left), 
    DO.moveTo Prev HiddenNonEmptyWS) 
    , ((altModMask .|. controlMask, xK_Right), 
    DO.moveTo Next HiddenNonEmptyWS)