普通屏幕
连根线就行, 跳过
如何将手机/平板/其它电脑作为扩展屏幕
一些可行的方案
如果只是为了演示屏幕,方案很多, 使用各种远程工具啥的都可以如anydesk, 向日葵等.
如果是扩展, 那必须要是要支持部分内容到扩展屏幕
可以配置活动窗口如deskreen
采用vnc的工具如 VirtScreen
前提
基于Intel集显中的Virtualheads功能, 目前笔记本也是集显,没试其他方案
这里也是采用vnc技术来搞, 如果是用现成的推荐virtscreen
扩展屏在 右
环境
archlinux(主) + i3wm桌面管理器
android(扩展) 小米平板
xrandr设置屏幕扩展
将笔记本屏幕扩展到android平板上, 并且采用分屏方式
查看现有配置
~: xrandr
Screen 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
1600x900 60.00 59.95 59.82
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)
该命令显示了电脑当前的显示状态,Screen 0
是当前正在显示的屏幕的分辨率参数,eDP1是笔记本内置显示屏当前的分辨率参数,下面的一堆数字是该显示屏所支持的分辨率及刷新率,最底下的三行分别是
HDMI 接口输出及虚拟输出,如果没有连接则会显示disconnect
增加虚拟屏幕
-
使用cvt命令获取所需分辨率的相应配置信息,
如我想让扩展屏幕分辨率为1920x1080~: cvt 1920 1080
# 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部分,
Screen 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变成了connectedVIRTUAL1 connected (normal left inverted right x axis y axis) 1920x1080_60.00 59.96
xrandr --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
-rfbport:指定了连接所用的端口,默认为5900也可以自行设置。
-clip:该命令设置x11vnc映射屏幕的范围,可以使用-clip WxH+X+Y来手动设置映射范围,也可以使用-clip xinerama0来自动映射显示器,其中xinerama0为屏幕设置中从左往右数第一个显示器,以此类推xinerama1为第二个,如果你的主屏幕在左边虚拟屏幕在右边,那如果设置为xinerama0就会将主屏幕的显示内容复制到虚拟屏幕上,也就是两个屏幕的内容一样了,这时就应该设置为xinerama1。
-wait:是两次屏幕抓取的时间间隔,默认为 20 ms 效果比较卡顿,设置为 1 的话会尽可能降低抓取时间减少延迟。
-defer:向vnc客户端发送更新的间隔,默认也为 20 ms,设置为 1 可以尽可能提高发送频率(但对网速的要求就高了)。
-nowf:在移动窗口到虚拟屏幕时显示内容,否则会显示为一个框。
-sb:设置休眠时间,默认为 60s 也就是如果屏幕 60s 内没有活动的话就停止数据传送,这样会导致有时鼠标从主屏移动到虚拟屏幕时会卡顿,设置为 0 后就不会休眠了
客户端连接工具
安卓下可以使用bvnc
默认配置地址如192.168.1.xx:5900即可
adb工具(usb连接才需要)
打开手机的开发者模式, 并且选择usb调试
电脑端安装adb工具
使用adb reverse tcp:5900 tcp:5900 创建代理
扩展端配置host地址为127.0.0.1:5900即可
参考
https://blog.youkuaiyun.com/u010750137/article/details/104277527
测试
将活动程序移动到扩展屏
Win+Shift+Right
光标定位扩展屏
Win+Right 注意观察鼠标光标