xmonad如何为屏幕分配数字,以及屏幕分配给(两个)监视器

时间:2014-04-24 14:21:26

标签: haskell xmonad

我正在使用xmonad(配置最少,main = xmonad gnomeConfig{ modMask = mod4Mask, terminal = "gnome-terminal" }),我的计算机有两台显示器,我正在使用xinerama。

这很有效,但是我常常对xmonad屏幕到显示器的映射感到惊讶, 将窗口推到屏幕(shift-mod-N)或将焦点移动到屏幕(mod-N)时。

此外,配合面板在虚拟屏幕上显示窗口符号 - 但有些东西不正确(这些虚拟屏幕似乎有双倍宽度,我猜因为它是一个X屏幕)

这是什么样的心理模型?

(是否有一个魔术键显示当前(聚焦)窗口的屏幕编号?)

注意(由以下答案建议):在xmonad术语中,窗口位于工作空间,工作空间映射到(物理)屏幕。

2 个答案:

答案 0 :(得分:5)

XMonad.Actions.PhysicalScreens文档说明如下:

  

此模块允许您使用XMonad命名Xinerama屏幕   相对于彼此的物理位置(由Xinerama报告),   而不是他们的ScreenID,由你的任意决定   X服务器和图形硬件。

     

屏幕按从上到下的最左上角排序   然后从左到右。

我相信"相对于彼此的物理位置"是指ServerLayout section of Xinerama's configuration file指定的布局。我在这里做了一些猜测,因为我对Xinerama不太熟悉,但似乎该模块可以帮助解决不可预测的屏幕数字问题。

答案 1 :(得分:5)

以下是here的答案副本。我将通过一个术语澄清来说明这一点:你称之为" screen"被称为"工作空间"用xmonad的说法,你所说的"监视"被称为"屏幕"。

默认情况下,会发生这种情况:

  1. 有10个不同的工作区,编号为1-10。
  2. 为每个屏幕分配十个工作区中的一个。
  3. 有两种导航方式:您可以选择聚焦特定屏幕(通过mod + w,e,r)或聚焦特定工作区(mod + 1,2,...,0)。
  4. 如果您关注特定屏幕,屏幕到工作区的分配不会改变,但所选屏幕会获得输入焦点。
  5. 如果您关注特定工作区,并且该工作区当前在其中一个屏幕上不可见,则当前聚焦的屏幕将其映射更改为该工作区。
  6. 如果您关注特定工作区,并且该工作区 当前在其中一个屏幕上可见,则当前关注的屏幕和显示该工作区的屏幕将交换其映射。
  7. 有两种常见的调整此行为的方法。一种方法是更改​​大小写(6)以保持映射不变,但将输入焦点更改为显示所选工作区的屏幕。见view。另一种方法是串联更改(1)和(3):创建(10 *个屏幕数)工作空间,并安排mod + 1,2,...,0键绑定选择要跳转到哪个工作空间在两个您按下了哪个键以及当前关注的屏幕。这种修改的结果是创造了一种错觉,即每个屏幕都有一组独立的工作空间,这些工作空间永远不会相互干扰 - 渲染案例(6),令人困惑的情况,是不可能的。请参阅IndependentScreens