iDisplay 라는 Windows 및 Mac 용 제품을 사용하는 사람들이 Android 또는 iPad를 보조 디스플레이로 사용할 수 있다는 것을 알게 되었습니다. 이것은 좋은 아이디어와 우분투에서 할 수있는 것 같습니다. 불행히도 시작하는 방법을 모르겠습니다.
Ubuntu에서이 설정을 어떻게 다시 만들 수 있습니까?
iDisplay 라는 Windows 및 Mac 용 제품을 사용하는 사람들이 Android 또는 iPad를 보조 디스플레이로 사용할 수 있다는 것을 알게 되었습니다. 이것은 좋은 아이디어와 우분투에서 할 수있는 것 같습니다. 불행히도 시작하는 방법을 모르겠습니다.
Ubuntu에서이 설정을 어떻게 다시 만들 수 있습니까?
답변:
Android 용 VNC 클라이언트를 가져 와서 컴퓨터에서 새 VNC 서버 세션을 시작하고 (현재 디스플레이를 공유하지 말고 x11vnc가 아닌 vnc4server를 사용하십시오) Android VNC 클라이언트에서 연결하십시오 (영리한 비트). 시너지를 이용한 두 세션 사이의 PC 키보드와 마우스.
이 작업을 수행하는 데 필요한 모든 소프트웨어는 Ubuntu 측의 표준 리포지토리에서 사용할 수 있으며 시장에 Android 용 무료 VNC 클라이언트가 몇 개 있습니다.
이 방법으로는 디스플레이를 가로 질러 창을 끌 수 없습니다. 이를 위해 Xdmx를 사용하여 두 세션을 결합해야한다고 생각합니다. 이것은 훨씬 어렵고 아마도 3D 가속을 잃을 수 있습니다.
또한 시너지와 vnc는 기본적으로 암호화를 사용하지 않으므로 신뢰할 수있는 네트워크에 있지 않은 경우 연결을 터널링해야합니다.
tl; dr : 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 오류가 발생했습니다. 내 노트북은 native보다 높은 해상도를 지원하지 않는다고 생각 1600*900합니다. 이 솔루션은 작동하지 않습니다. 대신 이중 화면 솔루션을 찾아야합니다.
sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0(I 누락 된 --panning옵션)
완벽하게 연결된 this을 제외하고 다른 답변을 작동시킬 수 없습니다 .
그것은 안드로이드를 두 번째 모니터로 사용하고 마우스를 공유하며 태블릿과 컴퓨터간에 창을 드래그 할 수 있습니다.
다음은 주석이 요청하는 단계별 자습서입니다.
내 태블릿의 해상도는 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+0ifconfig(LAN에서 연결할 때)를 사용하여 컴퓨터의 IP를 찾으십시오 .
VNC 앱을 다운로드하고 앱에서 해당 IP (및 포트 선택 5900)를 사용하여 컴퓨터에 연결 하십시오.
-listen <IP_ADDR>옵션을 제한하는 경우 문제가되지 않습니다 x11vnc( <IP_ADDR>네트워크에서 컴퓨터 주소가 독점 액세스를 제공하려는 위치)튜토리얼이 스크립트로 구현되었습니다 (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
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
그놈 폴백 데스크탑을 시작합니다 (vnc에서 그놈 3을 시작하는 방법을 모르겠습니다).
vnc4server -geometry 800x480command를 사용하십시오 . 물론 800x480 대신 태블릿의 해상도를 설정해야합니다.x2x -east -to :1. 이 명령은 컴퓨터가 display : 1이 화면 오른쪽에있는 것처럼 작동하도록 지시합니다 (왼쪽에 표시하려면 -west옵션을 사용 하십시오). 한 디스플레이에서 다른 디스플레이로 앱을 옮길 수는 없지만 마우스와 키보드 하나를 사용하여 둘 다를 제어 할 수 있습니다.vnc4server태블릿에서 생성 한 디스플레이에 연결하십시오 (포트 번호는 5900 + 디스플레이 번호입니다 (예 : 디스플레이의 경우 : 1 포트 번호는 5901입니다) (디스플레이 번호는 vnc4server의 출력에 표시됨).x2x누릅니다 Ctrl-C. 또는 백그라운드에서 시작할 수도 있습니다 ( x2x -east -to :1 &). 그런 다음 먼저 포 그라운드로 이동 fg하거나 ( ) 종료 kill $!해야합니다 (주의해서 백그라운드에서 시작된 마지막 프로세스를 종료합니다).vnc4server -kill :1. 대신 :1새 디스플레이의 번호를 설정할 수 있습니다.x2x 에서 x2x android 를 검색 하여이 게시물을 찾으십시오 ...하지만 +1 for .vnc/xstartup, 특히 for unset DBUS_SESSION_BUS_ADDRESS!! 작지만 풍부하고 매우 유용한 게시물입니다. 감사합니다!
이것은 원칙적으로 별도의 컴퓨터에서 실행되는 두 개의 X 서버를 사용하여 단일 데스크탑을 만들 수있는 xdmx (분산 멀티 헤드 X)를 사용하여 가능합니다.
원칙적으로 세 가지 시나리오가 가능하지만 적어도 X- 세션을 다시 시작해야하기 때문에 iDisplay만큼 완벽한 것은 없습니다. 나는 완벽하게 작동 할 수 없었지만 우분투 10.10을 실행 중이며 여러 가지 이유로 업그레이드 할 수 없습니다. 세 가지는 :
1 : 안드로이드에서 X 서버를 실행하고 (앱 스토어에 두 가지가 있음) xdmx를 사용하여 데스크탑 또는 랩톱 디스플레이와 결합하십시오. -포인터가 데스크탑의 태블릿 부분으로 움직일 때 xdmx가 충돌했기 때문에 저에게는 효과가 없었습니다.
2 : 컴퓨터에서 vnc 백엔드로 두 번째 X 서버를 실행하고 xdmx를 사용하여 컴퓨터 화면이있는 하나의 데스크탑으로 결합 한 다음 태블릿의 vnc 뷰어로 가상 부분을 살펴보십시오 .xdmx 때문에 작동하지 않았습니다. 모든 x 서버에 동일한 색상의 비주얼이 있어야하는데 이는 vncserver와 실제 디스플레이의 경우에는 해당되지 않으며 vncserver가 바뀌도록 설득 할 수 없었습니다.
3 : 각 화면마다 하나씩 두 개의 vncserver를 실행 한 다음 xdmx로 연결하고 각 시스템에서 vncviewer로 각 부분을 확인하십시오. -이것은 나를 위해 일하는 것에 가장 가까워졌지만 불행히도 inpout이 엉망이되었습니다. 그것은 와이파 이보다 트루 컬러에서 상당히 느 렸습니다. 이 스크립트를 사용하여 xdmx와 vnc를 시작했습니다.
#!/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
YMMV
태블릿을 두 번째 디스플레이로 만들기 위해 간단한 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두 번째 화면에 더미 드라이버는 :
"장치"섹션
식별자 "구성된 비디오 장치"
드라이버 "radeon"#CHANGE THIS
끝 섹션
"모니터"섹션
식별자 "구성된 모니터"
끝 섹션
"화면"섹션
식별자 "기본 화면"
"구성된 모니터"모니터
장치 "구성된 비디오 장치"
끝 섹션
## Xdummy : ##
"장치"섹션
식별자 "Videocard0"
드라이버 "더미"
# 비디오 램 4096000
VideoRam 256000
끝 섹션
## Xdummy : ##
"모니터"섹션
식별자 "Monitor0"
# HorizSync 10.0-300.0
# VertRefresh 10.0-200.0
# 디스플레이 크기 4335 1084
끝 섹션
## Xdummy : ##
"화면"섹션
식별자 "Screen0"
"Videocard0"장치
"Monitor0"모니터
끝 섹션
"서버 레이아웃"섹션
식별자 "dummy_layout"
화면 0 "기본 화면"
"기본 화면"의 화면 1 "screen0"
옵션 "Xinerama" "1"
끝 섹션
그런 다음 X 세션에 로그인하고 다음을 실행하십시오.
x11vnc -clip 1024x768+1280+0
이 지침은 태블릿 또는 VNC 클라이언트를 통한 컴퓨터를 사용하여 Linux 시스템에 대한 "추가"화면을 작성하는 것입니다.
Mageia3 32Bit (64 비트를 시도하지는 않았 음)에서이 단계를 수행했지만 다른 배포판 (예 : 우분투)에서도 비슷해야합니다.
다음 터미널 명령으로 필요한 패키지가 모두 있는지 확인하십시오.
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.c730 행을 변경하십시오.
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;
실행하여 Xdmx의 버전을 확인 ./configure --version에 /usr/share/x11-server-source/대한, Xdmx 1.13 이상 당신은 또한 이러한 변경을해야 (1.14과 새로운 당신이 "확인"단계 이하로 건너 뛸 수 있습니다) :
개방 /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);
open /usr/share/x11-server-sources/Xext/xtest.c, line 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해야 할 수도 있다는 오류 메시지가 표시되면 cd /usr/local/bin" and "ln -s /bin/xkbcompXdmx를 다시 시도하십시오.
Ctrl+ Alt+ F1through F7는 다른 콘솔 / xsession으로 전환하기 위해 Xdmx에서 작동해야하지만 어떤 이유로 작동하지 않으면 sudo chvt X기본 실행 화면으로 전환하기 위해 X 를 실행하는 것입니다 (여기서 X는 콘솔 / xsession 번호). 또한 Xdmx로 다시 전환하면 열려있는 모든 창에서 그리기 문제가 발생할 수 있습니다. 작업 표시 줄을 클릭하여 창을 다시 숨기거나 다시 표시하여 다시 그리기를 강제합니다.
튜토리얼에 감사드립니다. 우분투 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을 유지하십시오. 더 적합합니다 :).
수행하여 x11vnc 실행
x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0
해상도는 태블릿 너비 x 태블릿 높이 + 기본 디스플레이 너비 + 0이어야합니다.
androidVNC 클라이언트를 사용하여 PC에 연결하고 localmouse 옵션을 활성화하십시오. 그것은 리눅스가 안드로이드에서 실행되는 이상한 점을 느끼는 것입니다. :)
여기에 나열된 다른 기술과 관련하여 많은 문제가있었습니다. 더 나은 솔루션을 원했지만 느리고 간단한 솔루션이 좋은 출발점입니다.
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한 다음 명령을 실행하십시오. 예를 들어, xtermVNC "화면" 을 열려면 다음 을 실행하십시오.
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 &
이제 공유하려는 창을 클릭하십시오.
전체 :
나는 아이 패드와 크롬 북을 가지고 있고, 내 모니터로 사용하기 좀 터미널 명령을 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 장치의 연결도 지원합니다.