如何将手机/平板/其它电脑作为扩展屏?
普通屏幕
连根线就行, 跳过
如何将手机/平板/其它电脑作为扩展屏幕
一些可行的方案
如果只是为了演示屏幕,方案很多, 使用各种远程工具啥的都可以如anydesk, 向日葵等.
如果是扩展, 那必须要是要支持部分内容到扩展屏幕
可以配置活动窗口如deskreen
采用vnc的工具如 VirtScreen
前提
基于Intel集显中的Virtualheads功能, 目前笔记本也是集显,没试其他方案
这里也是采用vnc技术来搞, 如果是用现成的推荐virtscreen
扩展屏在 右
环境
archlinux(主) + i3wm桌面管理器
android(扩展) 小米平板
xrandr设置屏幕扩展
将笔记本屏幕扩展到android平板上, 并且采用分屏方式
查看现有配置
~: xrandr
1 | Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 |
该命令显示了电脑当前的显示状态,Screen 0
是当前正在显示的屏幕的分辨率参数,eDP1是笔记本内置显示屏当前的分辨率参数,下面的一堆数字是该显示屏所支持的分辨率及刷新率,最底下的三行分别是
HDMI 接口输出及虚拟输出,如果没有连接则会显示disconnect
增加虚拟屏幕
使用cvt命令获取所需分辨率的相应配置信息,
如我想让扩展屏幕分辨率为1920x1080~: cvt 1920 1080
1
2# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync其中第二行 Modeline 后面的内容 是接下来需要的
产生新的分辨率模式 xrandr –newmode
~: xrandr –newmode
上述Modelline后边部分,或者直接使用下面命令一步到位~: xrandr –newmode `cvt 1920 1080|tail -n1 |sed 's/Modeline
//' |sed 's/"//g'`此时通过查看xrandr, 多出了Virtual1部分,
1
2
3
4
5
6
7
8
9
10
11
12
13Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
1920x1080 60.02*+ 59.93
1680x1050 59.88
1400x1050 59.98
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
1920x1080_60.00 (0x20a) 173.000MHz -HSync +VSync
h: width 1920 start 2048 end 2248 total 2576 skew 0 clock 67.16KHz
v: height 1080 start 1083 end 1088 total 1120 clock 59.96Hz启用新的显示器
~: xrandr –addmode VIRTUAL1 "1920x1080_60.00"
注意VIRTUAL1变成了connected1
2VIRTUAL1 connected (normal left inverted right x axis y axis)
1920x1080_60.00 59.96xrandr –output VIRTUAL1 –right-of eDP1 –auto eDP1为主屏幕,
扩展屏幕在右边,所以使用right-of,
该命令最好执行两次,否则可能不生效关闭扩展屏设置
~: xrandr –output VIRTUAL1 –off
X11vnc
启动x11vnc server服务并设置扩展屏
x11vnc -rfbport 5900 -clip 1920x1080+1920+0 -wait 1 –defer 1 -nowf -sb
0
x11vnc -rfbport 5900 -clip xinerama1 -wait 1 –defer 1 -nowf -sb 0
1 | -rfbport:指定了连接所用的端口,默认为5900也可以自行设置。 |
客户端连接工具
安卓下可以使用bvnc
默认配置地址如192.168.1.xx:5900即可
adb工具(usb连接才需要)
打开手机的开发者模式, 并且选择usb调试
电脑端安装adb工具
使用adb reverse tcp:5900 tcp:5900 创建代理
扩展端配置host地址为127.0.0.1:5900即可
参考
https://blog.csdn.net/u010750137/article/details/104277527
测试
将活动程序移动到扩展屏
Win+Shift+Right
光标定位扩展屏
Win+Right 注意观察鼠标光标
问题处理
安装virtscreen以来python-quamash提示编译不通过(弃用)
python版本过高,考虑降低版本
找不到xrandr: cannot find mode "1920x1080_60.00"
执行该命令时提示上述错误xrandr –delmode VIRTUAL1 "1920x1080_60.00"
1 | VIRTUAL1 disconnected (normal left inverted right x axis y axis) |
注意这里的mode不能有双引号, 必须是1920x1080_60.00
而不是"1920x1080_60.00"
bvnc客户端连接失败
确认服务端已经启动,客户端连接失败, 一般为防火墙导致
关闭防火墙systemctl stop iptables.service
增加防火墙规则(推荐)
扩展没效果?
该命令最好执行两次,否则可能不生效
xrandr –output VIRTUAL1 –right-of eDP1 –auto