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+0
ifconfig
(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 800x480
command를 사용하십시오 . 물론 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.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;
실행하여 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/xkbcomp
Xdmx를 다시 시도하십시오.
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
한 다음 명령을 실행하십시오. 예를 들어, 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 &
이제 공유하려는 창을 클릭하십시오.
전체 :
나는 아이 패드와 크롬 북을 가지고 있고, 내 모니터로 사용하기 좀 터미널 명령을 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 장치의 연결도 지원합니다.