我注意到人们使用名为iDisplay的 Windows 和 Mac 产品,它可以让您将 Android 或 iPad 用作辅助显示器。这似乎是一个好主意,并且可以在 Ubuntu 上完成。不幸的是,我不知道如何开始。
你怎么能在 Ubuntu 上重新创建这个设置?
我注意到人们使用名为iDisplay的 Windows 和 Mac 产品,它可以让您将 Android 或 iPad 用作辅助显示器。这似乎是一个好主意,并且可以在 Ubuntu 上完成。不幸的是,我不知道如何开始。
你怎么能在 Ubuntu 上重新创建这个设置?
以下是如何将 Android 用作第二台显示器、共享鼠标、在平板电脑和电脑屏幕之间拖动窗口。
教程的原始来源可以在这里找到。
A. 教程
步骤 1. 创建一个新的虚拟监视器
我的平板电脑的分辨率是 1280x1024。(如果您的平板电脑的分辨率不同,您可以更改
1280
命令1024
中的任何位置。LVDS1
如果默认显示器的名称不同,您可能还需要更改)。在终端中运行:
$
gtf 1280 1024 60
.输出中有一行类似于
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
。将单词后面的所有内容Modeline
(排除它)复制到下一个命令中。xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
(注意,在下一步中,您可能还需要将 VIRTUAL1 更改为您在 xrandr 输出中找到的内容作为新模式的输出)
xrandr --addmode VIRTUAL1 1280x1024_60.00
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1
步骤 2. 为虚拟显示器启用远程桌面
启动 VNC:
x11vnc -clip 1280x1024+0+0
步骤 3. 连接到远程桌面
在与计算机相同的本地网络上获取平板电脑。通过连接到同一个 Wi-Fi 或使用一个设备创建热点,然后将另一个设备连接到该设备(USB Tethering)。
ifconfig
使用(从 LAN 连接时)查找计算机的 IP 。将 VNC 应用程序下载到平板电脑,然后使用应用程序中的计算机 IP(并选择端口
5900
)连接到计算机。通知
-listen <IP_ADDR>
选项完全阻止本地网络x11vnc
(<IP_ADDR>
USB 网络接口在哪里))。B. 脚本
本教程作为脚本实现(更改 IP 以与 USB 电缆一起使用或删除它并取消注释与 Wi-Fi 一起使用的行)。
获取适用于 Android 的 VNC 客户端,在您的计算机上启动一个新的 VNC 服务器会话(不要只共享当前显示 - 使用 vnc4server 而不是 x11vnc),从 Android VNC 客户端连接到它,然后(聪明的一点)共享PC 键盘和鼠标在两个会话之间使用协同作用。
执行此操作所需的所有软件都可以在 Ubuntu 端的标准存储库中获得,并且市场上有一些适用于 Android 的免费 VNC 客户端。
您将无法使用此方法在显示器上拖动窗口。为此,我认为您需要使用 Xdmx 来绑定两个会话。这要困难得多,并且可能会导致您失去 3D 加速。
另请注意,默认情况下 synergy 和 vnc 不使用加密,因此如果您不在受信任的网络上,则需要建立隧道连接。
tl; 博士:
xrandr --fb
一起x11vnc --clip
做一个杀手锏。更多 X11vnc 选项:
-find
,-clip
,-display
...-opts
recognitium链接的帖子有一个非常有趣的想法,不确定他是否指的是这个,因为我找不到他指出的作者,也因为我跟进了那里的论坛帖子,我将单独发布而不是作为编辑:
首先,我们假设:主机的屏幕分辨率为 1280x800,您希望将桌面扩展到 VNC 的辅助机器的屏幕分辨率为 1280x1024,并且您希望扩展屏幕位于主屏幕的右侧。
虚拟屏幕需要
1280x800 + 1280x1024 = 2560x1024
。(将其水平扩展并使垂直分辨率在两者中较大)所以运行xrandr --fb 2560x1024
。现在屏幕比你的主显示器大,你必须确保没有平移或任何其他不需要的“功能”被激活,并且你的主显示器左上角的坐标是 0x0。
x11vnc -clip 1280x1024+1281+0
加上任何其他 x11vnc 选项来品尝 :)这应该是它。
vnc4server
和x2x
.然后,设置一个
.vnc/xstartup
配置文件。我的看起来像这样它启动 gnome-fallback 桌面(我不知道如何在 vnc 中启动 gnome 3)。
vnc4server -geometry 800x480
命令。当然,您必须设置平板电脑的分辨率,而不是 800x480。x2x -east -to :1
。该命令表示您的计算机就像 display :1 位于屏幕右侧一样(-west
如果您希望它位于左侧,请使用选项)。您将无法将应用程序从一台显示器移动到另一台显示器,但您可以使用一个鼠标和一个键盘来控制它们。vnc4server
从您的平板电脑创建的显示器(端口号是 5900 + 显示器号(例如对于显示器:1 端口号将是 5901)(显示器号显示在vnc4server
的输出中))。x2x
,请按Ctrl-C
。或者,您可以在后台启动它 (x2x -east -to :1 &
)。然后,您首先需要将其移至前台 (fg
),或使用kill $!
(小心,它会杀死在后台启动的最后一个进程) 将其杀死。vnc4server -kill :1
,而不是:1
您可以设置新显示的编号。这原则上可以使用
xdmx
(分布式多头 X),它允许您使用在不同机器上运行的两个 X 服务器创建单个桌面。原则上三种情况是可能的,但没有一个像 iDisplay 那样无缝,因为它们都至少需要重新启动您的 X-session。我无法让任何一个完美运行,但我运行的是 Ubuntu 10.10,并且由于各种原因无法升级。
这三个是:
在 Android 上运行 X-server(应用商店中现在有两个可用)并用于
xdmx
与您的台式机或笔记本电脑显示器结合使用。- 对我不起作用,因为xdmx
当指针移动到桌面的平板电脑部分时崩溃。在您的计算机上运行带有 vnc 后端的第二个 X 服务器,
xdmx
用于将其与您的计算机屏幕组合成一个桌面,然后在平板电脑上使用 vnc 查看器查看虚拟部分 - 对我不起作用,因为xdmx
需要所有 X-服务器具有相同的颜色视觉效果,而 VNC 服务器和真实显示器的情况并非如此,我无法说服vncserver
进行更改。运行两个 VNC 服务器,每个屏幕一个,然后将它们连接起来,
xdmx
并在各自的机器上使用 VNC 查看器查看每个部分。- 这最接近为我工作,不幸的是输入被搞砸了。它在 Wi-Fi 上的真彩色也很慢。我使用这个脚本来启动xdmx
和两个实例vncserver
:YMMV
我制作了一个简单的 bash 脚本来让平板电脑成为第二个显示器。在我的博文中复制
ipad_monitor.sh
(别担心。它也适用于 Android)。与其他帖子的不同之处在于您可以非常轻松地使用附加参数设置第二个屏幕的位置。
编辑:我在这里包括了原件
ipad_monitor.sh
。像这样运行这个命令:./ipad_monitor.sh --right
或者./ipad_monitor.sh --left
./ipad_monitor.sh --right --portrait
./ipad_monitor.sh --right --portrait --hidpi
该脚本的基本思想与其他脚本相同,正在运行
xrandr
,x11vnc
但我包含了诸如您希望将屏幕附加到哪一侧的选项。只是想补充一点,如果您想在您的 android 设备和计算机之间建立更好的连接,您可以使用 USB:
确保您已启用 USB 调试 ( https://developer.android.com/studio/debug/dev-options )
然后通过安装 adb
sudo apt-get install android-tools-adb
然后,如果您的 VNC 服务器在您的计算机上的端口 5900 上运行,请使用 adb 和:
这样,您的计算机 5900 端口也可以通过您的 android 设备访问,
localhost:5900
因此配置您的 android VNC 客户端以连接到localhost:5900
而不是your-computer-IP-addres:5900
TL;博士:
现在,只需单击您要共享的窗口。
满:
我有一台 iPad 和 Chromebook,我想将它们用作我的显示器,以使用一些终端命令
htop
、、、iptstate
等nmon
。所以,我很懒惰,并使用:包安装:
sudo apt-get install x11vnc
打开一些终端,
xwininfo | awk '/Window.id/{print $4}'
然后在要共享的窗口中单击。输出将类似于:现在你可以开始你的
x11vnc
会话了:调整窗口大小 (0x4402f34) 以尽可能获得最佳图像。
请注意会话的关联端口:, , ...
5900 -> :0
5901 -> :1
5902 -> :2
适用于 X11 应用程序:Firefox、OpenOffice 等。
我使用 xorg 虚拟驱动程序和 x11vnc -clip。鼠标点没有卡在边缘。
/etc/X11/xorg.conf
第二个屏幕上有虚拟驱动程序:然后登录到 X 会话并运行:
这些说明是通过 VNC 客户端使用平板电脑或任何计算机为您的 linux 机器创建一个“附加”屏幕。
我在 Mageia3 32 位(尚未尝试 64 位)中完成了这些步骤,但对于其他发行版(即 Ubuntu)也应该类似。
使用以下终端命令确保您拥有所有必需的软件包:
拥有上述所有软件包后,发出以下命令:
如果您没有收到任何错误,请修补 Xdmx(简单地说,它已经“损坏”了一段时间):
打开
/usr/share/x11-server-sources/hw/dmx/input/dmxevents.c
,并更改第 730 行:更改此:对此:
如果第 730 行不同,请使用此部分查找正确的行:原始部分 - 更改为标有 * 的行
通过运行检查您的 Xdmx 版本
./configure --version
,/usr/share/x11-server-source/
对于Xdmx 1.13和更早版本,您还必须进行这些更改(对于 1.14 和更新版本,您可以跳到下面的“制作”步骤):打开
/usr/share/x11-server-sources/dix/getevents.c
,第 1395 行:更改:对此:
(原始部分 - 标有 * 的更改行)
打开
/usr/share/x11-server-sources/Xext/xtest.c
,第 311 行:更改:对此:
(原始部分 - 用 * 标记的更改行)
/usr/share/x11-server-sources/include/input.h
,第 73 行:在以 开头的行之后添加此行#define POINTER_EMULATED
:进行上述修改后,重新执行(in
/usr/share/x11-server-sources/
):你应该有一个新的 Xdmx 文件
/usr/share/x11-server-sources/hw/dmx/
。为了方便起见,我们需要在全球范围内安装它,所以我建议重命名您现有的:并复制新的代替它:
现在您已准备好进行第一次试用,以下命令允许您保持主/现有显示器 (
:0
) 运行并打开具有多显示器支持的新显示器。我将 icewm 与这些命令一起使用以使其更轻量级(我在主显示器上使用 KDE,:0
并在新的多头显示器中打开任何大型多显示器应用程序)。您绝对可以编写这些命令以便于使用(这就是我所做的)——这些命令中的任何一个都可以在任何显示器的控制台和/或终端窗口上执行,唯一的要求是它们按顺序执行。此命令将您的新显示器创建为 VNC 显示器的帧缓冲区
:2
(根据需要调整屏幕大小):这将在您的物理显示器上启动一个新的轻量级 X 会话作为显示器
:1
(有不同的方法可以做到这一点):此命令启动物理屏幕和虚拟屏幕之间的多显示器,并为窗口管理器启动 icewm:
现在打开一个终端窗口并启动 vnc 服务器(根据需要更改密码):
现在唯一要做的就是启动您的 VNC 客户端并连接到您的 VNC——您可能需要禁用或添加防火墙例外到端口 5900,以便您可以连接到它。要记住的另一件事是,一些 VNC 客户端不显示远程光标位置,我证明如果您关闭选项“本地鼠标”,适用于 iOS 的“Mocha VNC”效果很好。
享受在主显示器和新的虚拟第二显示器之间拖动窗口的乐趣(同时还可以使用平板电脑在第二显示器中单击/键入内容)。
要关闭 Xdmx,请按Ctrl+ Alt+Backspace两次。
自动化:
我使用这个 bash 脚本来启动整个过程(在退出时也会杀死 Xvfb):
然后我有一个自定义
~/.xinitrc
文件:故障排除:
运行 Xdmx 时,如果您收到错误提示
sh: /usr/local/bin/xkbcomp: No such file or directory
您可能需要执行 execute:cd /usr/local/bin" and "ln -s /bin/xkbcomp
,然后再次尝试 Xdmx。Ctrl+ Alt+ F1throughF7应该可以在 Xdmx 中工作以切换到其他控制台/xsession,但由于某种原因它不起作用,我所做的只是执行
sudo chvt X
(其中 X 是控制台/xsession 编号)以切换到我的主显示器。此外,当您切换回 Xdmx 时,您可能会在任何打开的窗口上遇到一些绘图问题,我只需单击任务栏以再次隐藏/显示窗口,从而强制重绘。