X 正在使用 Xmonad 将我的两台显示器连接成一个大屏幕 - 如何避免它?

X 正在使用 Xmonad 将我的两台显示器连接成一个大屏幕 - 如何避免它?

当我使用 i3 或 Gnome 时,每个显示器都有一个工作区/桌面,但在 XMonad 下,我的笔记本电脑屏幕和外接显示器连接为一个大屏幕(如图所示xdpyinfo

如何配置 X 使用两个屏幕而不是一个?

答案1

似乎您的 XMonad 未使用 Xinerama 支持进行编译。您可以按照以下说明进行检查:https://wiki.haskell.org/Xmonad/Frequently_asked_questions#Multi_head_or_xinerama_troubles

要诊断问题,请在命令行上执行以下命令:

ghc -e Graphics.X11.Xinerama.compiledWithXinerama

如果输出为 True,请跳至下面的 getScreenInfo 测试。如果输出为 False,则您的 Haskell X11 库不是针对 Xinerama 构建的。

答案2

感谢您告诉我有关 XMonad 的信息。它看起来是一个值得尝试的有趣的窗口管理器。正如我刚刚在您昨天发帖时才了解到的那样,而且我没有双显示器配置,我通常不会回答这个问题,但已经过去一天了,所以我想我至少会有一些答案。

查阅其文档:https://wiki.haskell.org/Xmonad/Frequently_asked_questions,我找到了一个链接https://hackage.haskell.org/package/xmonad-contrib-0.15/docs/XMonad-Layout-IndependentScreens.html这显然告诉你如何真正做你想做的事。

您需要将类似以下内容添加到您的~/.xmonad/xmonad.hs文件中:

import XMonad.Layout.IndependentScreens
myConfig = def { workspaces = withScreens 2 ["name1", "name2"] }

之后,该页面进一步解释如何设置键绑定以引用各个工作区。显然,默认配置文件中有一行用于键绑定:

    [((m .|. modm, k), windows $ f i)

这需要更改为

    [((m .|. modm, k), windows $ onCurrentScreen f i)

这就是我在没有实际使用过该页面的情况下所能了解到的全部内容。

相关内容