在 Manjaro Linux 上将iPad当做无线扩展副屏

设备信息

  • Manjaro Linux KDE
  • Nvidia 显卡
  • 1920x1080 144hz显示屏

需要解决的问题

  1. 怎么创建虚拟显示屏
  2. 怎么自定义刷新率以及分辨率
  3. 通过什么方式进行无线投屏

解决

1. 创建虚拟显示屏

Intel 显卡

可以使用这个软件直接创建,具体步骤见README

AMD

目前没有找到途径,详见https://bugzilla.kernel.org/show_bug.cgi?id=203339

但是也许有上述消息已经过时,可以自行上网检索

Nvidia

https://github.com/dianariyanto/virtual-display-linux/issues/9

  1. 非 Manjaro 用户需要在终端中执行sudo nvidia-xconfig,以生产xorg.conf文件

2.1 非 Manjaro 用户编辑/etc/X11/xorg.conf文件中的Screen Section,添加如下内容:
2.2 注意!!! Manjaro 用户 编辑/etc/X11/mhwd.d/nvidia.conf文件,因为 Manjaro 是由其独立的mhwd程序进行管理

Section "Screen"
     ...
    Option         "MetaModes" "DP-0: 1920x1200_60 +0+0, HDMI-0: 1920x1080_60 +1920+120"
    Option         "ConnectedMonitor" "DP-0, HDMI-0"
     ...
EndSection

配置阐释:

You'll have to change DP-0: 1920x1200_60 +0+0, HDMI-0: 1920x1080_60 +1920+120 to suit your configuration. For me, DP-0 is connected to a primary (physical) monitor, and I and using HDMI-0 to trick the gpu to think there is a monitor connected (which I'll use for vnc secondary display). +0+0 and +1920+120 is the offset from the left topmost corner of the X screen. However, the resolution of the virtual screen does not seem to matter, and will default to the first option in xrandr unless commanded via xrandr --output.

  • DP-0为主显示屏接口,可以通过执行xrandr命令查看。
    • 1920x1200_60: 需根据你的屏幕的分辨率和刷新率进行修改 如1920x1080_144
    • +0+0: 无需更改,该配置项是设置屏幕以左上角为原点的偏移量+x+y
  • HDMI-0为需要作为虚拟显示屏的接口,原理是通过让GPU认为HDMI-0接口接入一个实际存在的显示屏
    • 1920x1080_60: 这里可以不用做修改,实际分辨率与刷新率会是xrandr的默认选项
    • +1920+120: 这里也可以不用做修改,可以自己尝试是否有效果。
    • HDMI-0也可以为其他无占用接口(如DP-0, DP-1, ...) 可以通过xrandr查看

2. 自定义刷新率以及分辨率

这里我以 1920x1080 144.00hz 进行配置

注意刷新率需要和主屏幕刷新率相匹,否则会导致桌面环境(如KDE)以最低刷新率作为最终刷新率,导致桌面动画以最低帧率绘制。

❯ cvt 1920 1080 144
# 1920x1080 143.88 Hz (CVT) hsync: 169.35 kHz; pclk: 452.50 MHz
Modeline "1920x1080_144.00"  452.50  1920 2088 2296 2672  1080 1083 1088 1177 -hsync +vsync
❯ xrandr --newmode "1920x1080_144.00"  452.50  1920 2088 2296 2672  1080 1083 1088 1177 -hsync +vsync
❯ xrandr --addmode HDMI-0 1920x1080_144.00
❯ xrandr --output DP-0 --mode "1920x1080_144.00"

如果运行xrandr --addmode HDMI-0 1920x1080_144.00遇到Bad Match错误,请详见 https://www.cnblogs.com/littleblacklb/p/17985967

3. 通过什么方式进行无线投屏

  • vnc: x11vnc -multiptr -clip 1920x1080+0+1080
    • -clip 1920x1080+0+1080: 这是剪切屏幕的参数,这个参数表达的意思是以主显示屏坐上角为原点,向下偏移1080px个像素作为新的原点,裁剪一个1920x1080的屏幕大小

以下图为示例(上1920x1080 下1184x820):
x11vnc -multiptr -clip 1184x820+0+1080
rt

  • 通过Deskreen进行投屏,这里不多阐述
posted @ 2024-01-25 00:16  littleblackLB  阅读(133)  评论(0编辑  收藏  举报