我的目标
我想将运行 Fedora 24 的笔记本电脑用作同样运行 Fedora 24 的台式电脑的第二台显示器。
我尝试过什么以及什么没有完全解决问题,或者:为什么这不是一个重复的问题
西德克萨斯
在互联网和本网站搜索后,我发现了不少类似的帖子这个,所有这些基本上都包含相同的几个步骤:
Xdmx
在两台计算机上安装。ssh
从一台计算机进入另一台计算机,并-X
选择继续。- 使用以下命令
Xdmx
将接收端的计算机转变为监视器:ssh
startx -- /usr/bin/Xdmx :1 +xinerama -display :0.0 -display localhost:10.0 -norender -noglxproxy
这样做首先会导致两台计算机的屏幕变黑几秒钟,然后给我一条很长的错误信息,结尾是:
xinit: XFree86_VT property unexpectedly has 0 items instead of 1
xinit: connection to X server lost
waiting for X server to shut down
Couldn't get a file descriptor referring to the console
谷歌搜索错误返回这篇博文2015 年 7 月,一位用户按照与我完全相同的步骤操作,只是使用 Ubuntu 而不是 Fedora,结果和我完全一样。截至 2016 年 10 月,该帖子下有六条评论,所有六条评论都声称自己按照相同的步骤操作,但遇到了相同的错误。
Fedora 远程桌面
虽然这确实允许我从另一台计算机控制一台计算机,但它要求我使用主机上的 GUI 来控制笔记本电脑。要有效地使用 GUI,它必须占用一台显示器上的大量空间。因此,当我想使用主机显示器时,我必须按 Alt-Tab 键退出远程桌面。因此,我实际上并没有获得显示器,因为我无法同时使用两台显示器执行两个不同的任务。这更类似于切换工作区,这是我已经能够做到的事情。此外,我无法在屏幕之间移动程序。
SSH-X
同上。是的,我可以控制我的另一台电脑,但我必须主动使用主机显示器来控制我的笔记本电脑显示器。
协同作用。
该程序确实有效,但它只允许共享鼠标和键盘。程序无法在显示器之间移动,所以它不是我所寻找的。另外,我是一个吝啬的大学生,许可证费用是 20 美元。以这个价格,我可以直接买一台二手显示器,会允许我在显示器之间移动程序。Fedoradnf
存储库中有一个 FOSS 版本,但该版本已过时。
答案1
我使用 Ubuntu 18.10 和这个 shell 工具 https://github.com/mrenrich84/vnc_virtual_display_linker
如果您在 Fedora 24 中使用 x11 和 x11vnc,您可以尝试一下。
我使用它来为我的 Android 平板电脑制作第二个屏幕(你只需要在第二个屏幕设备上安装一个 vnc 客户端)。
我的电脑的鼠标和键盘也可以在第二个屏幕上使用。
答案2
通过 VNC 进行虚拟监控
西德明对我来说也没有用,但是我能够使用x11vnc通过使用我自己的代码VNC 虚拟显示链接器python 代码。我在使用这段代码时遇到了一些问题,但我设法让它正常工作,如下所示。
简化说明:
请注意本答案末尾的注释和注意事项。
- 定义:“服务器”将是您想要扩展屏幕的计算机,“客户端”将是您想要用作屏幕的计算机(或平板电脑,任何能够部署 VNC 客户端的设备)。
- 所需软件:在服务器上安装
x11vnc
,gtf
在客户端上安装 vnc 客户端。 - 您需要知道客户端的屏幕尺寸(我们称之为:
CLIENT_WIDTH
,CLIENT_HEIGHT
)和服务器的屏幕尺寸(我们称之为:SERVER_WIDTH
,SERVER_HEIGHT
)。 - 在服务器中,在终端中运行
gtf CLIENT_WIDTH CLIENT_HEIGHT 60
(将CLIENT_WIDTH
和替换为相应的CLIENT_HEIGHT
值)。例如gtf CLIENT_WIDTH CLIENT_HEIGHT 60
# 1384x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 86.62 MHz
Modeline "1384x768_60.00" 86.62 1384 1456 1600 1816 768 769 772 795 -HSync +Vsync
- 从上一个结果中复制 前面的内容
Modeline
(在本例中为"1384x768_60.00" 86.62 1384 1456 1600 1816 768 769 772 795 -HSync +Vsync
),并将其用作命令的参数xrandr --newmode
。例如,在本例中,我们必须在服务器中运行xrandr --newmode "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
- 在5中我们已经创建了一个新的模式
xrandr
,现在我们需要将它添加到虚拟屏幕中,如下所示xrandr --addmode VIRTUAL1 "1368x768_60.00"
(请记住使用自己新创建的模式名称,也就是5中包括引号的值)。 - 运行
x11vnc -usepw -nocursorshape -nocursorpos -noxinerama -solid -repeat -forever -clip CLIENT_WIDTHxCLIENT_HEIGHT+SERVER_WIDTH+0
。例如: 。这将在您可以连接的x11vnc -usepw -nocursorshape -nocursorpos -noxinerama -solid -repeat -forever -clip 1368x768+1920+0
端口中创建一个 VNC 服务器。5900
- 最后,从另一台计算机(或任何 VNC 客户端,推荐用于 Linux 计算机)连接到服务器
krdc
。现在您应该可以享受扩展屏幕了。
注意事项和考虑事项:
- 在步骤 8 中,使用 krdc 时,建议使用“中等质量”选项,即使您使用电缆:“低”和“高”质量选项都会产生错误。
- 我尝试通过 WiFi 网络进行此操作,并且它运行正常,但在有线网络上则更顺畅。
- 在第 7 步启动 VNC 服务器时,我遇到了问题,屏幕开始闪烁,我看不到屏幕上正在做什么。为了解决这个问题,我通过 VNC 服务器连接(此时扩展屏幕已经可以工作),打开该
Displays
工具(系统附带的工具,您可以在其中看到已连接的显示器),Unify Outputs
然后Break Unified Outputs
(下面显示了 Kubuntu 中此选项的示例)。然后一切正常。