我正在使用具有以下配置的 Ubuntu 15.10:LightDM、XFCE,设置为跨两个物理显示器的一个屏幕,通过单个 NVIDIA 卡上的两个输出运行。
这是我的正常环境,我可以在显示器之间拖动窗口/应用程序/等,玩 Steam 游戏(大多数让我选择在哪个显示器上玩)以及执行一般办公事务,例如在一个屏幕上收发电子邮件,在另一个屏幕上查看文字处理器文档
我还有 X-Plane 飞行模拟器,其中跨两个屏幕运行的理想方式是运行两个 X-Plane 实例,每个实例访问自己的物理监视器。
对于 X-Plane,我喜欢使用 CTRL-ALT-F1 打开一个新终端,然后运行以下命令。这将运行没有桌面环境的 X-Plane:
xplane工具
#!/bin/bash
sudo service lightdm stop
xinit /home/ashley/Launch_Scripts/XP64.sh
echo "Restart desktop ? (y/n)"
read response
if [ "$reponse" = "y" ]
then
sudo service lightdm start
fi
# end of script
XP64.sh 如下所示:
#!/bin/bash
xsetroot -cursor_name left_ptr
xset -dpms
xset s off
xset s noblank
/home/ashley/X-Plane\ 10/X-Plane-x86_64 > /dev/null 2>&1
#
# Replace the above with these for two instances
#DISPLAY=":0.0" /home/ashley/X-Plane\ 10/X-Plane-x86_64 > /dev/null 2>&1 &
#DISPLAY=":0.1" /home/ashley/X-Plane-Slave/X-Plane-x86_64 > /dev/null 2>&1
#endofscript
由于飞行模拟器本身非常活跃,因此提出该脚本的 X-Plane 用户建议使用管道传输到 /dev/null。
一切运行良好,X-Plane 的运行方式与桌面相同(1 个屏幕分布在 2 个显示器上),而且看起来很棒。然而,这有点不切实际 - 两个屏幕的中心位于飞机左侧或右侧座位视野的中心,而不是您实际飞行时看到的那样。
因此建议两个独立的屏幕应该有两个独立的 X-Plane 实例,一个供学生飞行员或副驾驶使用,另一个(通常)供教练飞行员或机长使用。
我又创建了另一个xorg配置文件这次有两个独立的屏幕,并通过替换我通常的 xorg.conf 来确认这有效 - 两个完全独立的屏幕,我可以在它们之间移动光标,但不能拖动窗口。
我无法弄清楚的是,在上面的 X-Plane bash 脚本中,是否以及如何在通过 xinit 启动时调用单独的 xorg.conf。
我试过了:
xinit /home/ashley/Launch_Scripts/XP64.sh -config /path/to/modified.xorg.conf
但它就是忽略我 — — 无论我将修改后的 xorg.conf 放在哪里,无论我赋予它什么权限。
我的第一个问题是我是否以正确的方式处理此事?
最终,我希望能够运行两个 X-Plane 实例,每个实例都在一个单独的屏幕/监视器上,但也能恢复到单个屏幕(跨两个监视器)以进行我的日常工作。
我的第二个问题是,如果是这样,我做错了什么?(我认为它从 /etc/X11/ 加载默认的 xorg.conf,无论我在脚本中指定什么)
我也应该在这里发布我的 xorg.conf 文件吗?
如果这样更容易管理的话,我并不反对创建另一个会话(即:从登录屏幕中选择 XFCE 或 Unity)并采用自己的设置。
答案1
语法错误:
xinit /home/ashley/Launch_Scripts/XP64.sh -config /path/to/modified.xorg.conf
应该:
xinit /home/ashley/Launch_Scripts/XP64.sh -- -config modified.xorg.conf
两个都xorg配置文件和修改的.xorg.conf位于/etc/X11/