我注意到有人使用一款适用于 Windows 和 Mac 的产品,叫做显示器它可让您将 Android 或 iPad 用作辅助显示器。这似乎是个好主意,可以在 Ubuntu 上实现。不幸的是,我不知道如何开始。
如何在 Ubuntu 上重新创建此设置?
答案1
以下是如何使用 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 网络共享)。
ifconfig
使用(从 LAN 连接时)查找您的计算机的 IP 。5900
将 VNC 应用程序下载到平板电脑,然后使用应用程序中的计算机 IP(并选择端口)连接到计算机。
通告
- 致谢:基扬斯,内容已编辑。
- 警告:数据未加密!(与 Wi-Fi 和非 LAN 使用相关)
- 警告:您所连接的所有网络的设备都可能到达端口 5900,从而连接到您的显示器!路由器后面通常会限制它只能在您的本地网络内访问(如果您使用 USB 连接,则可以使用选项
-listen <IP_ADDR>
(x11vnc
USB<IP_ADDR>
网络接口在哪里)完全阻止本地网络)。 - 运行1 - 4步骤中的任意一步两次都可能会输出错误。
- 成功使用后,必须重复第 5 步以进行另一次连接。
B. 脚本
本教程以脚本形式实现(更改 IP 以使用 USB 电缆,或者删除它并取消注释用于 Wi-Fi 的行)。
#!/bin/bash
W=1280
H=800
O=VIRTUAL1
if [ "$1" == "create" ]; then
gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | xargs xrandr --newmode
# sed: get third line, delete 'Modeline', get first word, remove first and last characters
gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --addmode $O
gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --output $O --left-of LVDS1 --mode
elif [ "$1" == "on" ]; then
x11vnc -listen 192.168.42.149 -clip ${W}x${H}+0+0
# For use in Wi-Fi LAN.
#x11vnc -clip ${W}x${H}+0+0 #**WARNING** Unencrypted stream. VNC accessible without password through port 5900 in all internet interfaces.
else
echo "missing argument: [create | on]"
fi
答案2
获取适用于 Android 的 VNC 客户端,在您的计算机上启动一个新的 VNC 服务器会话(不要只共享当前显示 - 使用 vnc4server 而不是 x11vnc),从 Android VNC 客户端连接到它,并且(聪明的是)使用协同作用在两个会话之间共享 PC 键盘和鼠标。
所有必要的软件都可以在 Ubuntu 的标准存储库中找到,并且市场上有一些适用于 Android 的免费 VNC 客户端。
使用此方法,您将无法在显示器之间拖动窗口。为此,我认为您需要使用 Xdmx 来绑定两个会话。这要困难得多,可能会导致您失去 3D 加速。
还请注意,synergy 和 vnc 默认不使用加密,因此如果您不在受信任的网络上,则需要建立隧道连接。
答案3
tl ; dr:xrandr --fb
一起x11vnc --clip
组成一个杀手组合。
更多 X11vnc 选项:-find
,,...-clip
-display
-opts
链接至承认有一个非常有趣的想法,不确定他是否指的是这个,因为我找不到他所指出的作者,也因为我跟进了那里的论坛帖子,所以我将单独发布这个而不是作为编辑:
首先,我们假设:主机的屏幕分辨率为 1280x800,您想要通过 VNC 扩展桌面的辅助机器的屏幕分辨率为 1280x1024,并且您希望扩展屏幕位于主屏幕的右侧。
虚拟屏幕需要为1280x800 + 1280x1024 = 2560x1024
。(水平扩展,使垂直分辨率取两者中较大的一个)因此运行xrandr --fb 2560x1024
。现在屏幕比主显示器大,您必须确保没有激活平移或任何其他不需要的“功能”,并且主显示器左上角的坐标为 0x0。
x11vnc -clip 1280x1024+1281+0
加上任何其他 x11vnc 选项以供选择:)
就這樣吧。
答案4
只是想补充一下,如果您希望您的 Android 设备和计算机之间有更好的连接,您可以使用 USB:
确保已启用 USB 调试(https://developer.android.com/studio/debug/dev-options)
然后通过安装 adbsudo apt-get install android-tools-adb
然后,如果您的 VNC 服务器正在计算机的 5900 端口上运行,请使用 adb :
adb 反向 tcp:5900 tcp:5900
这样,你的电脑 5900 端口也将可以通过你的 Android 设备访问,localhost:5900
因此配置你的 Android VNC 客户端来连接,localhost:5900
而不是your-computer-IP-addres:5900