你如何使用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 --fb
和x11vnc --clip
一起制作一个杀手组合。
通过recognitium链接的线程有一个非常有趣的想法,不确定他是否意味着这个,因为我找不到他指出的作者,也因为我在那里的论坛post上跟进,我将单独发布,而不是作为编辑:
-
首先,我们假设主机的屏幕分辨率为1280×800,而您希望将桌面扩展到VNC的辅助机器的屏幕分辨率为1280×1024,并且您希望扩展屏幕位于主屏幕的右侧。 虚拟屏幕需要为
1280x800 + 1280x1024 = 2560x1024
。 (水平延伸并使垂直分辨率变得更大)所以运行xrandr --fb 2560x1024
。 -
现在,屏幕比主显示器大,你必须确保没有平移或任何其他不需要的“function”激活,并且主显示器左上角的坐标是0x0。
-
x11vnc -clip 1280x1024+1281+0
plus添加任何其他x11vnc选项来品尝:)
这应该是它。
- 安装
vnc4server
和vnc4server
。 -
然后,设置
.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)。
- 要启动vnc服务器,请使用
vnc4server -geometry 800x480
命令。 当然,您必须设置平板电脑的分辨率,而不是800×480。 - 启动
x2x -east -to :1
。 该命令表示您的计算机显示为:1显示在屏幕右侧(如果您希望它位于左侧,则使用-west
选项)。 您将无法将应用程序从一个显示器移动到另一个显示器,但您可以使用一个鼠标和一个键盘来控制它们。 - 从平板电脑连接到使用
vnc4server
创建的显示器(端口号为5900 +显示号码(例如显示:1端口号为5901)(显示号码显示在vnc4server
的输出中))。 - 要退出
x2x
,请按Ctrl-C
。 或者,您可以在后台启动它(x2x -east -to :1 &
)。 然后你首先需要将它移动到前景(fg
),或用kill $!
杀死它kill $!
(要小心,它会杀死后台启动的最后一个进程)。 - 要删除创建的显示,请调用
vnc4server -kill :1
,而不是:1
您可以设置新显示的编号。
无法使其他答案有效,除了这个 ,完美连接。
它允许使用Android作为第二个显示器,共享鼠标,在平板电脑和计算机之间拖动窗口。
以下是评论要求的分步教程。
A.教程
1.创建一个监视器
(注意:更改1280
和1024
以更改默认的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
-
xrandr --addmode VIRTUAL1 1280x1024_60.00
-
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1
2.启动VNC
-
x11vnc -clip 1280x1024+0+0
3.连接Android(LAN(Wi-Fi)或USB(电缆))
-
使用
ifconfig
查找计算机的IP(从LAN连接时)。 -
下载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
这个脚本的基本思想与其他脚本相同,运行xrandr
和x11vnc
但我包含了你想要附加屏幕的选项。
#!/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 + F1到F7应该在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,我想用它们作为我的显示器,只是为了一些终端命令htop
, iptstate
, nmon
等。 所以,我是一个懒惰的家伙,并使用:
- 包安装:
sudo apt-get install x11vnc
-
打开一些终端并放入
xwininfo | awk '/Window.id/{print $4}'
xwininfo | awk '/Window.id/{print $4}'
并单击要共享的窗口。 输出将是这样的:$ xwininfo | awk '/Window.id/{print $4}' 0x4402f34
-
现在您可以开始
x11vnc
会话了:$ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
-
调整窗口大小(0x4402f34)以获得最佳图像。
注意会话的相关端口 : 5900 -> :0
5901 -:1
5902 -> :2
…
此外,适用于X11应用程序:Firefox,OpenOffice等。
使用vnc_virtual_display_linker
该工具设置了第二个虚拟监视器,用于连接VNC,如前面的许多答案中所述。 它甚至支持使用USB线连接Android设备。