![Xmonad 在 1 以外的屏幕上启动](https://linux22.com/image/111831/Xmonad%20%E5%9C%A8%201%20%E4%BB%A5%E5%A4%96%E7%9A%84%E5%B1%8F%E5%B9%95%E4%B8%8A%E5%90%AF%E5%8A%A8.png)
最近,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不会从窗口中移除焦点,就像我实际连接了多个显示器一样。
答案1
我刚刚遇到了同样的问题,我的第一个屏幕(笔记本电脑)获得第二个工作区,而我的外部屏幕获得第三个工作区。
在我的情况下,问题是由先前生成xmonad.state
的~/.xmonad/
.删除该文件即可解决问题。
在 xmonad 执行过程中,xmonad.state
每次按重新启动 xmonad 时都会生成该文件。mod+q
该文件引起了很多问题,根据最新的 github 问题跟踪器,应该在下一个版本中修复https://github.com/xmonad/xmonad/pull/91