所以我的问题是:

所以我的问题是:

我想设置 i3 在我的三个屏幕中的特定一个上自动启动(全部连接到一张 Nvidia 卡)。事实证明这比预想的要困难。

  • 我的第一个选择是通过 GRUB 选项将特定屏幕 (HDMI) 设置为主屏幕。然而,对于我需要使用的专有 Nvidia 驱动程序来说,这似乎是不可能的。所以我放弃了这一点,只将其作为背景包含在这里。 https://forums.developer.nvidia.com/t/can-i-choose-which-monitor-is-primary-as-in-gets-the-tty-login-for-gt710/197021

  • 我的第二个选择是startx在启动时自动启动并在我选择的屏幕上启动 i3。我已经配置了 X 屏幕,以便我可以处理我的显示器,例如:0.0, 0.1, 0.2

  • 起初,我尝试通过 使 i3 出现在我选择的显示器上DISPLAY=:0.2 startx,但显然这不起作用,因为显示器尚未分配,因为X尚未启动。

  • 我想我应该尝试通过修改调用的脚本来指定显示i3,这也是我所期望的/etc/X11/xinit/xinitrc。然而,我在那里看不到任何有关 i3 的信息,或者在我期望找到它的任何其他地方(例如/etc/profile或 )/etc/X11/Xsession。在内部/etc/X11和我的主文件夹中查找exec i3没有任何结果。那么当我运行时 i3 实际上在哪里被调用呢startx

  • 接下来,我尝试了DISPLAY=:0.2 sudo xinit i3。这会在主显示屏上打开 i3,但带有 i3 进程的 xterm 窗口。如果我退出此窗口,i3 就会关闭。所以这会浪费我不会与之交互的窗口上的屏幕空间。

所以我的问题是:

  1. 如何i3从命令开始并以与运行时相同的结果打开它startx
  2. startx在哪里可以找到用于调用 i3 的命令?

解决方案(但不是答案)

我通过使用 . 创建 ~/.xinitrc 获得了所需的效果DISPLAY=0.2 exec i3。不过我还是很好奇i3之前是如何被调用的。我宁愿在那里做出这个改变。为什么需要以 i3 开头exec而不是xinit

相关内容