Mar*_*k B 86 multiple-monitors android
我注意到有人在使用名为iDisplay 的Windows 和 Mac 产品,它可以让您将 Android 或 iPad 用作辅助显示器。这似乎是一个好主意,并且可以在 Ubuntu 上完成。不幸的是,我不知道如何开始。
你怎么能在 Ubuntu 上重新创建这个设置?
Eli*_*kas 40
下面介绍如何将 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 输出中找到的内容更改 VIRTUAL1 作为新模式的输出)
xrandr --addmode VIRTUAL1 1280x1024_60.00
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1
启动 VNC:
x11vnc -clip 1280x1024+0+0在与计算机相同的本地网络上获取平板电脑。通过连接到同一个 Wi-Fi 或使用一个设备创建一个热点,然后再连接到另一个设备(USB 网络共享)。
使用ifconfig(从 LAN 连接时)查找计算机的 IP 。
将 VNC 应用程序下载到平板电脑,然后使用应用程序中的计算机 IP(并选择端口5900)连接到计算机。
-listen <IP_ADDR>选择完全阻止本地网络x11vnc(<IP_ADDR>USB 网络接口在哪里))。本教程作为脚本实现(更改用于 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
Run Code Online (Sandbox Code Playgroud)
Ali*_*ton 34
获取适用于 Android 的 VNC 客户端,在您的计算机上启动一个新的 VNC 服务器会话(不要只共享当前显示 - 使用 vnc4server 而不是 x11vnc),从 Android VNC 客户端连接到它,并且(聪明的一点)共享PC 键盘和鼠标在两个会话之间使用协同作用。
Ubuntu 端的标准存储库中提供了执行此操作所需的所有软件,市场上有一些适用于 Android 的免费 VNC 客户端。
您将无法使用此方法在显示器上拖动窗口。为此,我认为您需要使用 Xdmx 来绑定两个会话。这要困难得多,并且可能会导致您失去 3D 加速。
另请注意,默认情况下,synergy 和 vnc 不使用加密,因此如果您不在受信任的网络上,则需要建立连接隧道。
小智 19
tl; 医生:xrandr --fb和x11vnc --clip在一起做一个杀手组合。
由 recognitium 链接的线程有一个非常有趣的想法,不确定他是否是这个意思,因为我找不到他指出的作者,也因为我跟进了那里的论坛帖子,我将单独发布而不是作为编辑:
首先,假设主机的屏幕分辨率为 1280x800,而您想要将桌面扩展到 VNC 的辅助机器的屏幕分辨率为 1280x1024,并且您希望扩展屏幕位于主屏幕的右侧。虚拟屏幕需要1280x800 + 1280x1024 = 2560x1024。(水平扩展它并使垂直分辨率两者中的较大者) 所以运行xrandr --fb 2560x1024.
现在,屏幕比您的主显示器大,您必须确保没有平移或任何其他不需要的“功能”被激活,并且您的主显示器左上角的坐标是 0x0。
x11vnc -clip 1280x1024+1281+0 加上任何其他 x11vnc 选项来品尝:)
应该是这样。
小智 15
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
Run Code Online (Sandbox Code Playgroud)
它启动 gnome-fallback 桌面(我不知道如何在 vnc 中启动 gnome 3)。
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您可以在其中设置新显示的编号。小智 8
这原则上可以使用 xdmx(分布式多头 X)实现,它允许您使用在不同机器上运行的两个 X 服务器来创建单个桌面。
原则上可能存在三种情况,但没有一种情况像 iDisplay 那样无缝,因为它们都至少需要重新启动 X-session。我无法让它们完美运行,但我正在运行 Ubuntu 10.10 并且由于各种原因无法升级。这三个是:
1:在android上运行一个X服务器(应用商店现在有两个可用)并使用xdmx与您的台式机或笔记本电脑显示器结合。- 对我不起作用,因为当指针移动到桌面的平板电脑部分时 xdmx 崩溃了。
2:在您的计算机上运行第二个带有 vnc 后端的 X 服务器,使用 xdmx 将其与您的计算机屏幕组合成一个桌面,然后在平板电脑上使用 vnc 查看器查看虚拟部分 - 对我不起作用,因为 xdmx要求所有 x 服务器具有相同的颜色视觉效果,而 vncserver 和真实显示器并非如此,我无法说服 vncserver 进行更改。
3:运行两个vncservers,每个屏幕一个,然后用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
Run Code Online (Sandbox Code Playgroud)
青年会
我制作了一个简单的 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
Run Code Online (Sandbox Code Playgroud)
只想补充一点,如果您想在 android 设备和计算机之间建立更好的连接,可以使用 USB:
确保您已启用 USB 调试(https://developer.android.com/studio/debug/dev-options)
然后通过安装 adb sudo apt-get install android-tools-adb
然后,如果您的 VNC 服务器在您的计算机上的 5900 端口上运行,请使用 adb 和:
adb 反向 tcp:5900 tcp:5900
这样你的电脑 5900 端口也可以通过你的 android 设备访问,localhost:5900所以配置你的 android VNC 客户端来连接localhost:5900而不是your-computer-IP-addres:5900
| 归档时间: |
|
| 查看次数: |
143282 次 |
| 最近记录: |