XMonad经典Alt+Tab

5

XMonad是否可以像许多窗口管理器一样,使用Alt-Tab键来切换活动窗口?经过一些搜索,我尝试了以下方法:

((mod1Mask, xK_Tab), cycleRecentWindows [xK_Alt_L] xK_Tab xK_Tab)

源自XMonad.Actions.CycleWindows模块。这个配置“几乎”可以正常工作。一个问题是我必须慢慢执行这个序列(我认为只需要不到1秒)。其他的窗口管理器没有遇到这种输入延迟。另一个问题是它会打乱窗口的位置,我希望使用alt-tab只是将焦点切换到上一个窗口。


我这里没有我的配置文件,但我所做的就是简单地在当前屏幕中的窗口之间循环焦点。如果这是你要找的,明天我会发布相关行。 - njzk2
1
默认与 meta-j 绑定的命令 ((modm, xK_j), windows W.focusDown) 看起来是你想要的,但我猜你已经因为某些原因拒绝了这个选项。你能更准确地描述一下,focusDown 命令没有做到你想要的事情吗? - Neil Forrester
1
想一想,我所说的“previous”的意思是“经典”实现方式让你从隐式窗口堆栈中选择。切换通过将选定的窗口拉到顶部来完成。在单次按下的情况下,您可以在堆栈顶部的窗口和下面的窗口之间切换。如果不连续按两次切换组合键(保持Alt键按下),则无法将第三个窗口置于前台。实际上,当选择仅通过循环所有窗口进行时,我发现这非常反直觉。 - Rumca
3个回答

1
我正在使用GroupNavigation来实现类似的功能。
下面的示例可以在所有工作区之间循环窗口:
import XMonad.Actions.GroupNavigation

...

((modm , xK_Tab), nextMatch Backward (return True))

...

0

只需使用:

…
-- Move focus to the next window.
, ((mod1Mask,                     xK_Tab), windows W.focusDown)
-- Move focus to the previous window.
, ((mod1Mask .|. shiftMask,       xK_Tab), windows W.focusUp  )
…

在同一桌面中循环浏览窗口,如Neil Forrester所示。


0
你可以使用独立应用程序:https://github.com/sagb/alttab。它将选定的窗口拉到顶部,而不是洗牌,并具有特殊的xmonad自述文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接