繁体   English   中英

XMonad 在可见工作区的所有窗口中循环

[英]XMonad cycle through all windows on visible workspaces

我在双屏幕设置上使用 XMonad,并且希望能够在任一屏幕上可见的每个窗口中循环焦点(例如,使用 alt+tab)。 该行为类似于 XMonad.Actions.WindowNavigation,不同之处在于它不会绑定到一个方向,并且只是按照某种有意义的顺序(例如从左到右,从上到下)循环遍历它们。

我在这里找到了一些声称操纵 StackSet 来解决这个问题的代码,我让它编译但它不会做我想要的。 不幸的是,我对 Haskell 的理解非常有限,所以我无法自己编写或修复上面代码的任何错误。

您可以在xmonad-contrib 中使用CycleWS模块

它具有可用于在非空工作区中循环的绑定:

import XMonad.Actions.CycleWS

myKeys homeDir conf@(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)
    ]

如果你想要一个完整的例子,我的完整配置在这里

此功能已通过此拉取请求添加到 xmonad-contrib 中。

用法示例:

import XMonad.Actions.GroupNavigation

在钥匙部分

-- use Alt+Tab and Alt+Shift+Tab to change focus to different windows across workspaces
((alt,           xK_Tab   ), nextMatch Forward isOnAnyVisibleWS),
((alt .|. shift, xK_Tab   ), nextMatch Backward isOnAnyVisibleWS),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM