我注意到有人在使用Windows和Mac产品iDisplay,使您可以将Android或iPad用作辅助显示器。这似乎是一个好主意,并且可以在Ubuntu上完成。不幸的是,我不知道如何开始。
您如何在Ubuntu上重新创建此设置?
我注意到有人在使用Windows和Mac产品iDisplay,使您可以将Android或iPad用作辅助显示器。这似乎是一个好主意,并且可以在Ubuntu上完成。不幸的是,我不知道如何开始。
您如何在Ubuntu上重新创建此设置?
Answers:
获取适用于Android的VNC客户端,在计算机上启动新的VNC服务器会话(不要只共享当前显示-使用vnc4server而不是x11vnc),从Android VNC客户端连接到该客户端,然后(聪明一点)共享PC键盘和鼠标在两个会话之间使用了协同作用。
在Ubuntu端的标准存储库中提供了用于执行此操作的所有必需软件,并且市场上有一些免费的VNC客户端可用于Android。
使用此方法将无法在显示中拖动窗口。为此,我认为您需要使用Xdmx绑定两个会话。这要困难得多,可能会导致您失去3D加速度。
另请注意,默认情况下,synergy和vnc不使用加密,因此,如果不在受信任的网络上,则需要建立连接隧道。
tl; 医生:xrandr --fb
和x11vnc --clip
在一起做一个杀手组合。
由Recognitium链接的线程有一个非常有趣的主意,不确定他是否是这个意思,因为我找不到他指出的作者,也因为我在那里的论坛帖子中进行了跟踪,因此我将其单独发布而不是作为编辑。 :
首先,假设主计算机的屏幕分辨率为1280x800,而您要将桌面扩展到VNC的辅助计算机的屏幕分辨率为1280x1024,并且您希望扩展屏幕位于主屏幕的右边。虚拟屏幕必须为1280x800 + 1280x1024 = 2560x1024
。(将其水平扩展,并使垂直分辨率扩大两者之和)xrandr --fb 2560x1024
。
现在,屏幕大于主显示器,您必须确保没有平移或激活任何其他不需要的“功能”,并且主显示器左上角的坐标为0x0。
x11vnc -clip 1280x1024+1281+0
加上添加任何其他x11vnc选项以品尝:)
应该是这样。
xrandr --fb 2560x1024
似乎没有任何作用。这意味着我的屏幕不能超过我的主显示器大小……:(
X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 29 Current serial number in output stream: 30
错误。我的猜测是我的笔记本电脑不支持比本机更高的分辨率1600*900
。意味着此解决方案无法正常工作。我必须找到一种双屏解决方案。
sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0
(我错过了--panning
选项)
除了this以外,其他答案无法正常工作。
它允许使用Android作为第二台显示器,共享鼠标,在平板电脑和计算机之间拖动窗口。
这是循序渐进的教程,需要评论。
我的平板电脑的分辨率为1280x1024。(你可以改变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
x11vnc -clip 1280x1024+0+0
使用ifconfig
(从LAN连接时)查找计算机的IP 。
下载VNC应用程序,并使用应用程序中其IP(并选择port 5900
)连接到计算机。
-listen <IP_ADDR>
选项x11vnc
(这<IP_ADDR>
是您要授予独占访问权的网络中的计算机地址在哪里),这不是问题)本教程以脚本的形式实现(更改IP以用于USB电缆或删除它,并取消注释该行以用于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
x11vnc -clip 1280x1024+0+0
可用替换x11vnc -clip xinerama1
。另外,--left-of LVDS1
如果您以后要使用Monitors
设置应用程序将多余的显示器放置在任何位置,则也不是必须的。
xrandr: cannot find output "VIRTUAL1"
当我输入数字3时返回。有什么想法吗?
xrandr: cannot find output "VIRTUAL1"
从xrandr --addmode VIRTUAL1 1280x800_60.00
VIRTUAL1
似乎是此类输出的占位符,而不是典型系统中存在的内容。
vnc4server
和x2x
。然后,设置一个.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桌面(我不知道如何使gnome 3在vnc中启动)。
vnc4server -geometry 800x480
命令。当然,您必须设置平板电脑的分辨率,而不是800x480。x2x -east -to :1
。该命令表明您的计算机的显示就像在屏幕的右侧显示了:1一样(-west
如果需要,请使用选项在屏幕的左侧)。您将无法将应用程序从一个显示移动到另一个显示,但是您可以使用一个鼠标和一个键盘来控制它们。vnc4server
平板电脑创建的显示器(端口号为5900 +显示号(例如,对于显示器:1,端口号将为5901)(显示号显示在vnc4server
的输出中))。x2x
,请按Ctrl-C
。或者,您可以在后台(x2x -east -to :1 &
)启动它。然后,您首先需要将其移动到前台(fg
),或使用杀死它kill $!
(谨慎,它会杀死在后台启动的最后一个进程)。vnc4server -kill :1
,:1
您可以在此处设置新显示器的号码,而不是它。x2x
,可以通过在Google上搜索x2x android找到这篇文章...但是+1 .vnc/xstartup
,尤其是unset DBUS_SESSION_BUS_ADDRESS
!! 小而丰富但非常有用的帖子,谢谢!
原则上,使用xdmx(分布式多头X)是可行的,它使您可以使用在不同计算机上运行的两个X服务器来创建单个桌面。
从原则上讲,这是三种可能的方案,但没有任何一种方案能像iDisplay一样无缝,因为它们都至少需要重新启动X会话。我无法使两者均能完美运行,但是我正在运行Ubuntu 10.10,并且由于各种原因而无法升级。这三个是:
1:在android上运行X服务器(应用商店中现在有两个),然后使用xdmx与台式机或笔记本电脑的显示器结合使用。-不适用于我,因为当指针移到桌面的数位板部分时xdmx崩溃了。
2:在计算机上运行第二台带有vnc后端的X服务器,使用xdmx将其与计算机屏幕组合到一个桌面中,然后在平板电脑上使用vnc查看器查看虚拟部件-对我不起作用,因为xdmx要求所有X服务器具有相同的颜色视觉效果,而vncserver和实际显示情况并非如此,而且我无法说服vncserver进行更改。
3:运行两个vncserver,每个屏幕一个,然后将它们与xdmx连接,并使用相应计算机上的vncviewer查看每个部件。-这是最适合我的工作,不幸的是输液被弄乱了。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
青年汽车
我做了一个简单的bash脚本,使平板电脑成为第二台显示器。ipad_monitor.sh
在我的博客文章中复制(不用担心。它也适用于Android)。
与其他文章的不同之处在于,您可以轻松地通过附加参数来设置第二个屏幕的位置。
编辑:我在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):
# <k.bumsik@gmail.com> 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
我使用xorg虚拟驱动程序和x11vnc -clip。鼠标点没有卡在边缘上。
sudo apt-get install xserver-xorg-video-dummy
/etc/X11/xorg.conf
第二个屏幕上有for虚拟驱动程序:
“设备”部分 标识符“配置的视频设备” 驱动程序“ radeon” #CHANGE THIS 结束部分 “监视器”部分 标识符“已配置的监视器” 结束部分 “屏幕”部分 标识符“默认屏幕” 监视器“配置的监视器” 设备“配置的视频设备” 结束部分 ## Xdummy:## “设备”部分 标识符“ Videocard0” 驾驶员“假人” #VideoRam 4096000 VideoRam 256000 结束部分 ## Xdummy:## “监视器”部分 标识符“ Monitor0” #HorizSync 10.0-300.0 #VertRefresh 10.0-200.0 #DisplaySize 4335 1084 结束部分 ## Xdummy:## “屏幕”部分 标识符“ Screen0” 设备“视频卡0” 监视“ Monitor0” 结束部分 “ ServerLayout”部分 标识符“ dummy_layout” 屏幕0“默认屏幕” “默认屏幕”右侧的屏幕1“屏幕0” 选项“ Xinerama”“ 1” 结束部分
然后登录到X会话并运行:
x11vnc -clip 1024x768+1280+0
这些说明旨在使用平板电脑或任何通过VNC客户端的计算机为linux计算机创建“其他”屏幕。
我在Mageia3 32Bit(没有尝试过64bit)中进行了这些步骤,但对于其他发行版(例如Ubuntu)也应该类似。
使用以下终端命令确保您具有所有必需的软件包:
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);
如果730行不同,请使用此部分查找正确的行:原始部分-要更改的行,标有*
case ButtonPress:
case ButtonRelease:
detail = dmxGetButtonMapping(dmxLocal, detail);
valuator_mask_zero(&mask);
QueuePointerEvents(p, type, detail,
* POINTER_RELATIVE | POINTER_DESKTOP, &mask);
return;
通过./configure --version
在中运行来检查Xdmx的版本/usr/share/x11-server-source/
,对于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->u.u.detail == 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
您应该在中有一个新的Xdmx文件/usr/share/x11-server-sources/hw/dmx/
。为了方便起见,我们需要在全球范围内进行安装,因此我建议重命名您现有的名称:
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
您可能需要执行execute cd /usr/local/bin" and "ln -s /bin/xkbcomp
:,然后重试Xdmx。
Ctrl+ Alt+ F1through F7应该可以在Xdmx中工作以切换到其他控制台/ xsession,但是由于某种原因它不起作用,我要做的就是简单地执行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: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
### <percent>: "<f>%"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "EnablePageFlip" # [<bool>]
#Option "ColorTiling" # [<bool>]
#Option "ColorTiling2D" # [<bool>]
#Option "RenderAccel" # [<bool>]
#Option "SubPixelOrder" # [<str>]
#Option "AccelMethod" # <str>
#Option "EXAVSync" # [<bool>]
#Option "EXAPixmaps" # [<bool>]
#Option "ZaphodHeads" # <str>
#Option "EnablePageFlip" # [<bool>]
#Option "SwapbuffersWait" # [<bool>]
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即可进行系统自动配置,然后将虚拟部分(星号之间的内容)添加到文件中。xorg.conf中虚拟屏幕的分辨率应为您的主显示器宽度+平板电脑的分辨率宽度,在我的情况下为1680 + 1024 = 2704,在您的情况下保持主显示器的高度为1050。重新启动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
此时,您应该可以通过连接到来在VNC程序中打开第二个屏幕YOUR_IP_ADDRESS:1
。要在VNC屏幕上启动程序,请打开终端,设置DISPLAY
,然后运行命令。例如,要xterm
在VNC“屏幕”上打开,请运行:
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,然后我想用他们作为我的显示器,只是USO一些终端命令htop
,iptstate
,nmon
,等。因此,我是个懒惰的人,并使用:
sudo apt-get install x11vnc
打开一些终端,然后放置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连接,如先前许多答案中所述。它甚至支持使用USB电缆从Android设备进行连接。