你如何使用Android平板电脑作为第二个显示器?

我注意到人们使用适用于Windows和Mac的产品称为iDisplay ,它允许您将Android或iPad用作辅助显示器。 这似乎是一个好主意,可以在Ubuntu上完成。 不幸的是,我不知道如何开始。

你怎么能在Ubuntu上重新创建这个设置?

获取Android的VNC客户端,在您的计算机上启动新的VNC服务器会话(不要只共享当前显示 – 使用vnc4server而不是x11vnc),从Android VNC客户端连接到它,并且(聪明的位)共享使用synergy在两个会话之间的PC键盘和鼠标。

所有必要的软件都可以在Ubuntu方面的标准存储库中找到,并且市场上有一些可用于Android的免费VNC客户端。

您将无法使用此方法在显示器上拖动窗口。 为此我认为你需要使用Xdmx来绑定两个会话。 这要困难得多,可能会导致你失去3D加速。

另请注意,synergy和vnc默认情况下不使用加密,因此如果您不在受信任的网络上,则需要隧道连接。

TL; dr: xrandr --fbx11vnc --clip一起制作一个杀手组合。

通过recognitium链接的线程有一个非常有趣的想法,不确定他是否意味着这个,因为我找不到他指出的作者,也因为我在那里的论坛post上跟进,我将单独发布,而不是作为编辑:

  1. 首先,我们假设主机的屏幕分辨率为1280×800,而您希望将桌面扩展到VNC的辅助机器的屏幕分辨率为1280×1024,并且您希望扩展屏幕位于主屏幕的右侧。 虚拟屏幕需要为1280x800 + 1280x1024 = 2560x1024 。 (水平延伸并使垂直分辨率变得更大)所以运行xrandr --fb 2560x1024

  2. 现在,屏幕比主显示器大,你必须确保没有平移或任何其他不需要的“function”激活,并且主显示器左上角的坐标是0x0。

  3. x11vnc -clip 1280x1024+1281+0 plus添加任何其他x11vnc选项来品尝:)

这应该是它。

  1. 安装vnc4servervnc4server
  2. 然后,设置.vnc/xstartup配置文件。 我看起来像这样

     #!/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey #vncconfig -iconic & #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & exec gnome-session 

    它启动了gnome-fallback桌面(我不知道如何在vnc中启动gnome 3)。

  3. 要启动vnc服务器,请使用vnc4server -geometry 800x480命令。 当然,您必须设置平板电脑的分辨率,而不是800×480。
  4. 启动x2x -east -to :1 。 该命令表示您的计算机显示为:1显示在屏幕右侧(如果您希望它位于左侧,则使用-west选项)。 您将无法将应用程序从一个显示器移动到另一个显示器,但您可以使用一个鼠标和一个键盘来控制它们。
  5. 从平板电脑连接到使用vnc4server创建的显示器(端口号为5900 +显示号码(例如显示:1端口号为5901)(显示号码显示在vnc4server的输出中))。
  6. 要退出x2x ,请按Ctrl-C 。 或者,您可以在后台启动它( x2x -east -to :1 & )。 然后你首先需要将它移动到前景( fg ),或用kill $!杀死它kill $! (要小心,它会杀死后台启动的最后一个进程)。
  7. 要删除创建的显示,请调用vnc4server -kill :1 ,而不是:1您可以设置新显示的编号。

无法使其他答案有效,除了这个 ,完美连接。

它允许使用Android作为第二个显示器,共享鼠标,在平板电脑和计算机之间拖动窗口。

以下是评论要求的分步教程。

A.教程

1.创建一个监视器

(注意:更改12801024以更改默认的1280×1024分辨率设置。如果默认监视器的名称不同,您可能还需要更改LVDS1 )。

在终端运行:

  1. $ gtf 1280 1024 60

输出中有一行类似于Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync 。 将单词Modeline (将其排除)后的所有内容复制到下一个命令中。

  1. xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync

  2. xrandr --addmode VIRTUAL1 1280x1024_60.00

  3. xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1

2.启动VNC

  1. x11vnc -clip 1280x1024+0+0

3.连接Android(LAN(Wi-Fi)或USB(电缆))

  1. 使用ifconfig查找计算机的IP(从LAN连接时)。

  2. 下载VNC应用程序并使用应用程序中的IP(并选择端口5900 )连接到计算机。

通告

  • 致谢: kjans ,内容编辑。
  • 警告 :数据未加密! (与Wi-Fi和非LAN使用相关)
  • 警告 :您连接的任何可以到达端口5900的网络都可以连接到您的显示器! (如果使用USB并限制接口向x11vnc添加-listen 选项(其中是您要为其提供独占访问权限的网络中的计算机地址),则不会出现问题)
  • 两次运行任何1-4步可能会输出错误。
  • 成功使用后,必须重复5.步骤以进行另一次连接。

B.脚本

本教程是作为脚本实现的(更改用于USB电缆的IP或删除它​​并取消注释用于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 

原则上这可以使用xdmx(分布式多头X),它允许您使用在不同计算机上运行的两个X服务器创建单个桌面。

原则上有三种情况是可能的,但没有一种情况像iDisplay一样无缝,因为它们都需要至少重新启动你的X-session。 我无法完美地工作,但我正在运行Ubuntu 10.10并且由于各种原因无法升级。 这三个是:

1:在Android上运行一个X-server(现在应用程序商店中有两个可用)并使用xdmx与您的台式机或笔记本电脑显示器结合使用。 – 对我来说不起作用,因为当指针移动到桌面的平板电脑部分时xdmx崩溃了。

2:在你的计算机上运行第二个带有vnc后端的X服务器,使用xdmx将它与计算机屏幕合并到一个桌面,然后在平板电脑上用vnc查看器查看虚拟部分 – 因为xdmx不能用于我要求所有x-servers都具有相同的颜色视觉效果,这与vncserver和真实显示不同,我无法说服vncserver进行更改。

3:运行两个vncservers,每个屏幕一个,然后用xdmx连接它们,并在相应的机器上用vncviewer查看每个部分。 – 这对我来说最接近工作,不幸的是inpout搞砸了。 在wifi上的真彩色也很慢。 我用这个脚本启动xdmx和vncs:

 #!/bin/sh vncserver :2 -geometry 1024x768 -depth 24 && \ vncserver :3 -geometry 1920x1120 -depth 24 && \ startx -- \ /usr/bin/X11/Xdmx :1 \ -input :2 \ -display :2 \ -display :3 \ -ignorebadfontpaths \ -norender \ -noglxproxy \ +xinerama \ -nomulticursor vncserver -kill :2 vncserver -kill :3 

因人而异

我使用xorg虚拟驱动程序和x11vnc -clip。 鼠标点未粘在边缘上。

 sudo apt-get install xserver-xorg-video-dummy 

第二个屏幕上有用于虚拟驱动程序的/etc/X11/xorg.conf

 “设备”部分
        标识符“已配置的video设备”
    司机“radeon”#CHANGE THIS
 EndSection

 “监视器”部分
        标识符“已配置的监视器”
 EndSection

 “屏幕”部分
        标识符“默认屏幕”
        监控“已配置的监视器”
        设备“已配置的video设备”
 EndSection


 ## Xdummy:##
 “设备”部分
  标识符“Videocard0”
  司机“假”
   #VideoRam 4096000
   VideoRam 256000
 EndSection

 ## Xdummy:##
 “监视器”部分
  标识符“Monitor0”
 #HorizSync 10.0  -  300.0
 #VertRefresh 10.0  -  200.0
 #DisplaySize 4335 1084
 EndSection

 ## Xdummy:##
 “屏幕”部分
  标识符“Screen0”
  设备“Videocard0”
  监控“Monitor0”
 EndSection



 “ServerLayout”部分
  标识符“dummy_layout”
  屏幕0“默认屏幕”
  屏幕1“screen0”右侧“默认屏幕”
    选项“Xinerama”“1”
 EndSection

然后登录X会话并运行:

 x11vnc -clip 1024x768+1280+0 

我制作了一个简单的bash脚本,使平板电脑成为第二个显示器。 在我的博客文章中复制ipad_monitor.sh (别担心。它也适用于Android)。

与其他post的不同之处在于,您可以非常轻松地使用附加参数设置第二个屏幕的位置。

编辑:我在这里包含了原始的ipad_monitor.sh 。 运行此命令,如:

  • ./ipad_monitor.sh --right./ipad_monitor.sh --left
  • ./ipad_monitor.sh --right --portrait
  • ./ipad_monitor.sh --right --portrait --hidpi

这个脚本的基本思想与其他脚本相同,运行xrandrx11vnc但我包含了你想要附加屏幕的选项。

 #!/bin/sh # ---------------------------------------------------------------------------- # "THE BEER-WARE LICENSE" (Revision 42): #  wrote this file. As long as you retain this notice you # can do whatever you want with this stuff. If we meet some day, and you think # this stuff is worth it, you can buy me a beer in return. - Bumsik Kim # ---------------------------------------------------------------------------- # Configuration WIDTH=1024 # 1368 for iPad Pro HEIGHT=768 # 1024 for iPad Pro MODE_NAME="mode_ipad" # Set whatever name you like, you may need to change # this when you change resolution, or just reboot. DIS_NAME="VIRTUAL1" # Don't change it unless you know what it is RANDR_POS="--right-of" # Default position setting for xrandr command # Parse arguments while [ "$#" -gt 0 ]; do case $1 in -l|--left) RANDR_POS="--left-of" ;; -r|--right) RANDR_POS="--right-of" ;; -a|--above) RANDR_POS="--above" ;; -b|--below) RANDR_POS="--below" ;; -p|--portrait) TMP=$WIDTH; WIDTH=$HEIGHT; HEIGHT=$TMP MODE_NAME="$MODE_NAME""_port" ;; -h|--hidpi) WIDTH=$(($WIDTH * 2)); HEIGHT=$(($HEIGHT * 2)) MODE_NAME="$MODE_NAME""_hidpi" ;; *) echo "'$1' cannot be a monitor position"; exit 1 ;; esac shift done # Detect primary display PRIMARY_DISPLAY=$(xrandr | perl -ne 'print "$1" if /(\w*)\s*connected\s*primary/') # Add display mode RANDR_MODE=$(cvt "$WIDTH" "$HEIGHT" 60 | sed '2s/^.*Modeline\s*\".*\"//;2q;d') xrandr --addmode $DIS_NAME $MODE_NAME 2>/dev/null # If the mode doesn't exist then make mode and retry if ! [ $? -eq 0 ]; then xrandr --newmode $MODE_NAME $RANDR_MODE xrandr --addmode $DIS_NAME $MODE_NAME fi # Show display first xrandr --output $DIS_NAME --mode $MODE_NAME # Then move display sleep 5 # A short delay is needed. Otherwise sometimes the below command is ignored. xrandr --output $DIS_NAME $RANDR_POS $PRIMARY_DISPLAY # Cleanup before exit function finish { xrandr --output $DIS_NAME --off xrandr --delmode $DIS_NAME $MODE_NAME echo "Second monitor disabled." } trap finish EXIT # Get the display's position CLIP_POS=$(xrandr | perl -ne 'print "$1" if /'$DIS_NAME'\s*connected\s*(\d*x\d*\+\d*\+\d*)/') echo $CLIP_POS # Share screen x11vnc -multiptr -repeat -clip $CLIP_POS # Possible alternative is x0vncserver but it does not show the mouse cursor. # x0vncserver -display :0 -geometry $DIS_NAME -overlaymode -passwordfile ~/.vnc/passwd if ! [ $? -eq 0 ]; then echo x11vnc failed, did you \'apt-get install x11vnc\'? fi 

这些说明是使用平板电脑或任何计算机通过VNC客户端为您的Linux机器创建“附加”屏幕。

我在Mageia3 32Bit中做了这些步骤(还没试过64bit)但是对于其他发行版也应该是类似的(即Ubuntu)。

确保使用以下terminal命令获得所有必需的包:

 sudo apt-get install gcc autoconf automake x11-font-util libtool libxi-devel ibopenssl-devel libxfont1-devel libpam-devel x11-util-macros x11-xtrans-devel x11-server-xvfb x11-server-xdmx x11-server-devel x11-server-source 

获得上述所有包后,请发出以下命令:

 cd /usr/share/x11-server-sources/ ./autogen.sh ./configure --with-fontrootdir=/usr/share/fonts --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/usr/share/X11/xkb/compiled --enable-dmx make 

如果你没有收到任何错误,请修补Xdmx(简单地说,它已被“破坏”一段时间):

打开/usr/share/x11-server-sources/hw/dmx/input/dmxevents.c ,并更改第730行:更改此内容:

 POINTER_ABSOLUTE | POINTER_SCREEN, &mask); 

对此:

 POINTER_RELATIVE | POINTER_DESKTOP, &mask); 

IF线730不同使用此部分找到正确的线:原始线 – 更改线标有*

  case ButtonPress: case ButtonRelease: detail = dmxGetButtonMapping(dmxLocal, detail); valuator_mask_zero(&mask); QueuePointerEvents(p, type, detail, * POINTER_RELATIVE | POINTER_DESKTOP, &mask); return; 

通过在/usr/share/x11-server-source/运行./configure --version检查您的Xdmx版本,对于Xdmx 1.13及更早版本,您还必须进行这些更改(对于1.14和更新版本,您可以跳到“make” “下面的步骤:

打开/usr/share/x11-server-sources/dix/getevents.c ,第1395行:改变这个:

 if (flags & POINTER_SCREEN ) { /* valuators are in screen coords */ 

对此:

 if (flags & ( POINTER_SCREEN | POINTER_DESKTOP) ) { /* valuators are in screen coords */ 

(原始部分 – 用*标记的更改行)

  /* valuators are in driver-native format (rel or abs) */ if (flags & POINTER_ABSOLUTE) { * if (flags & POINTER_SCREEN ) { /* valuators are in screen coords */ sx = valuator_mask_get(&mask, 0); sy = valuator_mask_get(&mask, 1); 

打开/usr/share/x11-server-sources/Xext/xtest.c ,第311行:改变这个:

 flags = POINTER_ABSOLUTE | POINTER_SCREEN; 

对此:

 flags = POINTER_ABSOLUTE | POINTER_DESKTOP; 

(原始部分 – 用*标记的更改行)

  case MotionNotify: dev = PickPointer(client); valuators[0] = ev->u.keyButtonPointer.rootX; valuators[1] = ev->u.keyButtonPointer.rootY; numValuators = 2; firstValuator = 0; if (ev->uudetail == xFalse) * flags = POINTER_ABSOLUTE | POINTER_DESKTOP; break; 

/usr/share/x11-server-sources/include/input.h ,第73行:在以#define POINTER_EMULATED开头的行之后添加此行:

 #define POINTER_DESKTOP (1 << 7) 

进行上述更改后,重新执行(在/usr/share/x11-server-sources/ ):

 make 

您应该在/usr/share/x11-server-sources/hw/dmx/有一个新的Xdmx文件。 我们需要在全球范围内轻松安装,因此我建议您重命名现有的:

 sudo mv /bin/Xdmx /bin/Xdmx-old 

并复制新的代替它:

 cp /usr/share/x11-server-sources/hw/dmx/Xdmx /bin 

现在您已准备好进行首次试用,以下命令允许您保持主/现有显示器( :0 )运行并打开具有多显示器支持的新显示器。 我正在使用icewm和这些命令使它更轻一些(我在主显示器上使用KDE :0并在新的多头显示器中打开任何大型多显示器应用程序)。 您可以使用这些命令编写脚本以便于使用(这就是我所做的) - 任何这些命令都可以在任何显示器的控制台和/或终端窗口上执行,唯一的要求是它们按顺序执行。

此命令将新显示创建为VNC显示的帧缓冲区:2 (根据需要调整屏幕大小):

 Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac & 

这将在您的物理显示器上启动一个新的轻量级X会话作为显示:1 (有不同的方法来执行此操作):

 startx 'icewm' -- :1 

此命令启动物理屏幕和虚拟屏幕之间的多显示,并为窗口管理器启动icewm:

 Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm 

现在打开一个终端窗口并启动vnc服务器(根据需要更改密码):

 x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe & 

现在唯一要做的就是启动你的VNC客户端并连接到你的VNC - 你可能需要禁用或添加防火墙的例外到端口5900,以便你可以连接到它。 另外要记住的是,有些VNC客户端没有显示远程光标位置,我保证如果关闭“本地鼠标”选项,iOS的“Mocha VNC”效果很好。

享受在主显示器和新的虚拟第二台显示器之间拖动窗口(同时还可以使用平板电脑点击/键入第二台显示器中的内容)。

要关闭Xdmx,请按两次Ctrl + Alt + Backspace

自动化:

我使用这个bash脚本来启动整个过程(也在退出时杀死Xvfb):

 Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac & xinit dual -- :1 ps | grep Xvfb | awk '{print $1}' | xargs kill 

然后我有一个自定义的~/.xinitrc文件:

 #!/bin/sh # # ~/.xinitrc # # Executed by startx (run your window manager from here) if [[ $1 == "" ]] then exec startkde elif [[ $1 == "xterm" ]] then exec xterm elif [[ $1 == "dual" ]] then exec Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm & x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe else exec $1 fi 

故障排除:

  • 运行Xdmx时如果收到错误说sh: /usr/local/bin/xkbcomp: No such file or directory你可能需要执行: cd /usr/local/bin" and "ln -s /bin/xkbcomp ,然后再次尝试Xdmx。

  • Ctrl + Alt + F1F7应该在Xdmx中工作以切换到其他控制台/ xsessions但由于某种原因它不起作用,我所做的只是执行sudo chvt X (其中X是控制台/ xsession号码)切换到我的主显示屏。 此外,当您切换回Xdmx时,您可能会在任何打开的窗口上出现一些绘图问题,我只需单击任务栏以隐藏/再次显示窗口强制重绘。

感谢教程人员,我将在Ubuntu 14.04上分享对我有用的内容

获取适用于平板电脑的AndroidVNC

通过运行获取您的Ubuntu pc的x11vnc

 sudo apt-get install x11vnc 

我不得不使用Xorg虚拟驱动程序方法。 这是我的/etc/X11/xorg.conf文件的样子:

 Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 **Screen 1 "Screen1" rightof "Screen0"** InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" **Option "Xinerama" "1"** EndSection Section "Files" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "built-ins" EndSection Section "Module" Load "glx" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" DisplaySize 1680 1050 EndSection **Section "Monitor" Identifier "Monitor1" VendorName "Dummy" ModelName "Dummy" DisplaySize 2704 1050 EndSection** Section "Device" ### Available Driver options are:- ### Values: : integer, : float, : "True"/"False", ### : "String", : " Hz/kHz/MHz", ### : "%" ### [arg]: arg optional #Option "NoAccel" # [] #Option "SWcursor" # [] #Option "EnablePageFlip" # [] #Option "ColorTiling" # [] #Option "ColorTiling2D" # [] #Option "RenderAccel" # [] #Option "SubPixelOrder" # [] #Option "AccelMethod" #  #Option "EXAVSync" # [] #Option "EXAPixmaps" # [] #Option "ZaphodHeads" #  #Option "EnablePageFlip" # [] #Option "SwapbuffersWait" # [] Identifier "Card0" Driver "radeon" BusID "PCI:1:0:0" EndSection **Section "Device" Identifier "Dummy" Driver "dummy" EndSection** Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection **Section "Screen" Identifier "Screen1" Device "Dummy" Monitor "Monitor1 EndSection** 

您可能不需要其中的所有内容,只需运行X -configure即可获得系统autoconfig并将虚拟部分(星号之间的内容)添加到您的文件中。 xorg.conf中虚拟屏幕的分辨率应该是你的主显示器宽度+你的平板电脑分辨率宽度,在我的情况下1680 + 1024 = 2704保持你的主显示器高度,1050在我的情况下.Restart X服务器/重启/拔电源插头,无论如何适合你更多:)。

通过执行运行x11vnc

 x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0 

这里的分辨率应该是您的平板电脑宽度x平板电脑高度+主显示屏宽度+ 0

使用androidVNC客户端连接到您的Pc,确保启用localmouse选项。 那应该是它,现在感觉到linux运行在android上的怪异:)

我在这里列出的其他技术有很多问题。 我希望我有一个更好的解决方案,但我缓慢而简单的解决方案是一个很好的起点。

对于VNC服务器,我尝试了vncserver包,但是屏幕会变黑,我必须重新启动gdm才能让任何东西再次运行。 我切换到tightvncserver ,它第一次没有配置工作。

为了在屏幕之间共享鼠标/键盘,我使用了x2vnc 。 这也可以与win2vnc一起使用,与Linux PC旁边的Windows PC共享鼠标/键盘。

最终命令:

 sudo apt-get install tightvncserver tightvncserver sudo apt-get install x2vnc x2vnc -east localhost:1 

此时,您应该能够通过连接到YOUR_IP_ADDRESS:1来打开VNC程序中的第二个屏幕YOUR_IP_ADDRESS:1 。 要在VNC屏幕上启动程序,请打开终端,设置DISPLAY ,然后运行该命令。 例如,要在VNC“屏幕”上打开xterm ,请运行:

 export DISPLAY=:1 xterm 

使用这种方法,第二个屏幕非常慢。 尽管如此,我尝试过的很多其他选项都遇到了死胡同,而这个选项根本没有任何配置。

对于仍然对此主题感兴趣的人:xrandr和x11vnc剪辑确实有效; 要使鼠标能够到达那里,您需要使用平移参数来设置鼠标跟踪区域:

 xrandr --fb 2560x1024 --output LVDS1 --panning 1280x1024+0+0/2560x1024+0+0 

然后在运行xvnc时使用:

 x11vnc -clip 1280x1024+1281+0 -nocursorshape -nocursorpos 

这会阻止VNC尝试使用它自己的光标跟踪并将光标绘制为屏幕图像的一部分。

我在这里做了笔记http://mikescodeoddities.blogspot.ae/2015/04/android-tablet-as-second-ubuntu-screen.html

TL; DR

  $ sudo apt-get install x11vnc $ WINDOW_ID=$(xwininfo | awk '/Window.id/{print $4}') && x11vnc -viewonly -nopw -avahi -id $WINDOW_ID >/dev/null 2>&1 & 

现在,只需单击要共享的窗口即可。


完全

我有一个iPad和Chromebook,我想用它们作为我的显示器,只是为了一些终端命令htopiptstatenmon等。 所以,我是一个懒惰的家伙,并使用:

  1. 包安装: sudo apt-get install x11vnc
  2. 打开一些终端并放入xwininfo | awk '/Window.id/{print $4}' xwininfo | awk '/Window.id/{print $4}'并单击要共享的窗口。 输出将是这样的:

     $ xwininfo | awk '/Window.id/{print $4}' 0x4402f34 
  3. 现在您可以开始x11vnc会话了:

     $ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 & 
  4. 调整窗口大小(0x4402f34)以获得最佳图像。

注意会话的相关端口5900 -> :0 5901 -:1 5902 -> :2

此外,适用于X11应用程序:Firefox,OpenOffice等。

使用vnc_virtual_display_linker

该工具设置了第二个虚拟监视器,用于连接VNC,如前面的许多答案中所述。 它甚至支持使用USB线连接Android设备。