最近,Xmonad 在启动时开始将我置于工作区 #3。我经常会因为这个而措手不及,因为我会去#2 做某事,当我切换回#1 时什么都没有。
根据我对文档的理解,默认情况下,工作区 #1 应该在屏幕 #1 上,工作区 #2 应该在屏幕 #2(如果存在)等上。我在笔记本电脑上,据我所知,就在之后X 启动 xrandr 只报告一个连接的屏幕。然而出于某种原因,Xmonad 认为唯一连接的屏幕是屏幕 #3。
从 xmonad 联机帮助页:
使用多台显示器 (Xinerama) 运行时,每个屏幕正好有 1 个可见的工作区。mod-{w,e,r} 在屏幕之间切换焦点,而 shift-mod-{w,e,r} 将当前窗口移动到该屏幕。当 xmonad 启动时,工作区 1 在屏幕 1 上,工作区 2 在屏幕 2 上,等等。当将工作区切换到已经可见的工作区时,当前工作区和可见工作区会交换。
因此,当我第一次启动 xmonad 时,我打开的第一个窗口位于工作区 #3(我将通过按 mod-3 返回到它),上面指出只有在我盯着屏幕 #3 时才会发生,但按mod-w, mod-e, 或mod-r不会像我实际上连接了几台显示器那样从窗口移开焦点。
我遇到了同样的问题,我的第一个屏幕(笔记本电脑)获得了第二个工作区,而我的外部屏幕获得了第三个工作区。
在我的情况下,问题是由之前生成xmonad.state的~/.xmonad/. 删除该文件可以解决问题。
xmonad.state每次mod+q在执行期间按下重新启动 xmonad 时都会生成该文件。该文件引起了很多问题,应根据最新的 github 问题跟踪器https://github.com/xmonad/xmonad/pull/91在下一个版本中修复