คุณใช้แท็บเล็ต Android เป็นจอแสดงผลที่สองได้อย่างไร


63

ฉันสังเกตเห็นผู้คนที่ใช้ผลิตภัณฑ์สำหรับ Windows และ Mac ชื่อiDisplayซึ่งให้คุณใช้ Android หรือ iPad เป็นจอแสดงผลรอง ดูเหมือนว่าเป็นความคิดที่ดีและบางสิ่งที่สามารถทำได้บน Ubuntu น่าเสียดายที่ฉันไม่รู้วิธีเริ่มต้นใช้งาน

คุณจะสร้างการตั้งค่านี้ใหม่บน Ubuntu ได้อย่างไร


2
คำถามที่คล้ายกันในขณะนี้ภายใต้การอภิปรายในฟอรั่ม: ใช้ VNC เป็นจอภาพที่สอง
ændrük

1
คำถามเดียวกันกับผู้ใช้ขั้นสูง: ใช้ VNC เพื่อสร้างหน้าจอที่สอง
ændrük

1
ตกลงวิธีแก้ปัญหาที่นำเสนอนี้เป็นรายการเครือข่าย แต่มีโอกาสที่จะประสบความสำเร็จโดยเพียงแค่แกล้งทำจอภาพผ่าน usb เพื่อรับประสบการณ์เช่นเดียวกับจอภาพเหมือนDuetหรือไม่
Augustin Riedinger

ดังนั้น Duet อาจเป็นแบบจำลองชิป DisplayLink ในซอฟต์แวร์ - ฉันไม่รู้ แต่นั่นคือการเดาของฉัน ฉันจะไม่ลองด้วยซ้ำ สิ่งที่ฉันจะลอง (และมันก็ไม่ยาก) คือเครือข่าย USB: โยง (หรือโยงกลับ) แท็บเล็ตและเครือข่ายของคุณออกไป
chx

คำตอบ:


28

รับไคลเอนต์ VNC สำหรับ Android เริ่มต้นเซสชันเซิร์ฟเวอร์ VNC ใหม่บนคอมพิวเตอร์ของคุณ (อย่าเพิ่งแชร์หน้าจอปัจจุบัน - ใช้ vnc4server ไม่ใช่ x11vnc) เชื่อมต่อกับมันจากไคลเอนต์ Android VNC และ (บิตที่ฉลาด) แชร์ แป้นพิมพ์ PC และเมาส์ระหว่างสองเซสชันโดยใช้การทำงานร่วมกัน

ซอฟต์แวร์ที่จำเป็นทั้งหมดในการทำเช่นนี้มีอยู่ใน repos มาตรฐานสำหรับฝั่ง Ubuntu และมีลูกค้า VNC ฟรีไม่กี่ตัวสำหรับ Android ในตลาด

คุณจะไม่สามารถลากหน้าต่างข้ามจอแสดงผลโดยใช้วิธีนี้ สำหรับฉันคิดว่าคุณจะต้องใช้ Xdmx เพื่อผูกมัดสองเซสชัน นี่ยากกว่ามากและอาจทำให้คุณเร่งความเร็ว 3D เสีย

โปรดทราบว่า synergy และ vnc ไม่ได้ใช้การเข้ารหัสตามค่าเริ่มต้นดังนั้นคุณจำเป็นต้องเชื่อมต่อการเชื่อมต่อหากคุณไม่ได้อยู่ในเครือข่ายที่เชื่อถือได้


9
สามารถเพิ่มตัวอย่างได้โปรด
rkmax

18
มันจะมีประโยชน์ที่จะมีตัวอย่างทีละขั้นตอนที่เราสามารถติดตามได้
OganM

2
สิ่งนี้จะทำให้แท็บเล็ตเป็นหน้าจอที่สองได้อย่างไร - เหมือนในพื้นที่หน้าจอที่มากขึ้น?
NoBugs

ฉันมีปัญหากับ vncserver และ Gnome 3 ทุกครั้งที่ฉันพยายามเปิด vncserver หน้าจอจะเป็นสีดำ ฉันลงเอยด้วยการใช้ tightvncserver (รวมถึงใน repos ของ Ubuntu) และใช้งานได้เป็นครั้งแรกโดยไม่มีการกำหนดค่าอย่างแน่นอน
บุคคลที่สาม

นี่เป็นเหมือนสวิตช์ KVM หรือโซลูชันการควบคุมระยะไกลมากกว่าจอแสดงผลที่สอง ใช่มันให้อินพุตอีกชุดหนึ่ง แต่เอาท์พุทเหมือนกันในอุปกรณ์ทั้งสอง - คุณไม่สามารถแม้แต่จะเปลี่ยนแท็บเล็ตเป็นเดสก์ท็อปเสมือนที่แตกต่างจากหน้าจอหลักของคุณ ไม่ตอบคำถาม คำถามเกี่ยวกับการใช้อุปกรณ์พกพาเพื่อเพิ่มพื้นที่เอาต์พุตไม่ใช่เกี่ยวกับอินพุตเลย
cprn

17

TL; dr: xrandr --fbและx11vnc --clipทำคอมโบด้วยกัน

กระทู้ที่เชื่อมโยงโดย recognitium มีความคิดที่น่าสนใจจริง ๆ ไม่แน่ใจว่าเขาหมายถึงสิ่งนี้หรือไม่เพราะฉันไม่พบผู้เขียนที่เขาระบุและเพราะฉันติดตามในโพสต์ฟอรัมที่นั่นฉันจะโพสต์แยกต่างหากและไม่เป็นการแก้ไข :

  1. ก่อนอื่นสมมติว่าเครื่องหลักมีความละเอียดหน้าจอ 1280x800 และเครื่องรองที่คุณต้องการขยายเดสก์ท็อปของคุณให้มากกว่า VNC มีความละเอียดหน้าจอ 1280x1024 และคุณต้องการให้หน้าจอขยายเป็นหน้าจอหลักของคุณ 1280x800 + 1280x1024 = 2560x1024หน้าจอเสมือนจริงจะต้องมีการ (ขยายในแนวนอนและให้ความละเอียดแนวตั้งที่ใหญ่กว่าของทั้งสอง) xrandr --fb 2560x1024ดังนั้นทำงาน

  2. ตอนนี้หน้าจอใหญ่กว่าจอแสดงผลหลักของคุณคุณต้องตรวจสอบให้แน่ใจว่าไม่มีการแพนกล้องหรือเปิดใช้งาน "ฟีเจอร์" ที่ไม่พึงประสงค์อื่น ๆ รวมถึงพิกัดของมุมซ้ายบนของจอภาพหลักคือ 0x0

  3. x11vnc -clip 1280x1024+1281+0 บวกเพิ่มตัวเลือก x11vnc อื่น ๆ เพื่อลิ้มรส :)

นี้ควรจะเป็น


2
ดูเหมือนจะเป็นวิธีที่ไร้รอยต่อที่จะทำมากกว่าเคล็ดลับของซินเนอร์จี้! ฉันอยากรู้ว่าพื้นที่เสมือนพิเศษจะโต้ตอบกับตัวจัดการหน้าต่างแบบเรียงต่อกันอย่างไร จะให้ช็อตนี้สักครู่แล้วรายงานกลับ
อิบราฮิม

2
เอาชนะความพ่ายแพ้จากกรามแห่งชัยชนะ ตัวชี้เมาส์ไม่ได้รับอนุญาตให้ออกจากหน้าจอหลัก :(
Gringo Suave

1
ดูเหมือนว่าน่าสนใจ จริง ๆ แล้วฉันจัดการเพื่อให้มีสองหน้าจอที่นั่น แต่น่าเสียดายที่คำสั่งxrandr --fb 2560x1024ดูเหมือนจะไม่มีผลใด ๆ ซึ่งหมายความว่าฉันไม่สามารถมีหน้าจอที่ใหญ่กว่าขนาดหน้าจอหลักของฉัน ... :(
Augustin Riedinger

1
ผมอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ มี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ฉันเดาว่าแล็ปท็อปของฉันไม่สนับสนุนความละเอียดสูงกว่าพื้นเมือง ความหมายวิธีนี้ไม่สามารถใช้งานได้ ฉันจะต้องหาวิธีแก้ปัญหาสองหน้าจอแทน
Augustin Riedinger

3
ในที่สุดฉันก็ทำให้มันทำงานขอบคุณโพสต์นี้โดยการเรียกใช้: sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0(ฉันไม่มี--panningตัวเลือก)
Augustin Riedinger

16

ไม่สามารถทำให้คำตอบอื่น ๆ ทำงานได้ยกเว้นสิ่งนี้ซึ่งเชื่อมต่ออย่างไม่มีที่ติ

อนุญาตให้ใช้ Android เป็นจอภาพที่สองแชร์เมาส์ลากหน้าต่างระหว่างแท็บเล็ตกับคอมพิวเตอร์

นี่คือการสอนทีละขั้นตอนซึ่งได้รับการร้องขอจากความคิดเห็น

A. การสอน

1. สร้างจอภาพเสมือนใหม่

ความละเอียดแท็บเล็ตของฉันคือ 1280x1024 (คุณอาจเปลี่ยนแปลง1280และ1024ทุกที่ในคำสั่งหากแท็บเล็ตของคุณมีความละเอียดที่แตกต่างกันคุณอาจจำเป็นต้องเปลี่ยนLVDS1หากชื่อของจอภาพเริ่มต้นแตกต่างกัน)

ทำงานใน terminal:

  1. gtf 1280 1024 60$

Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsyncมีเส้นในการส่งออกคล้ายกับเป็น คัดลอกทุกสิ่งหลังจากคำModeline(ไม่รวม) ลงในคำสั่งถัดไป

  1. xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync

  2. xrandr --addmode VIRTUAL1 1280x1024_60.00

  3. xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1

2. เริ่ม VNC

  1. x11vnc -clip 1280x1024+0+0

3. เชื่อมต่อกับ Android (LAN (Wi-Fi) หรือ USB (เคเบิล)

  1. ค้นหา IP ของคอมพิวเตอร์โดยใช้ifconfig(เมื่อเชื่อมต่อจาก LAN)

  2. ดาวน์โหลดแอป VNC และเชื่อมต่อกับคอมพิวเตอร์โดยใช้ IP (และเลือกพอร์ต5900) ในแอพ

การบอกกล่าว

  • เครดิต: kjansเนื้อหาที่แก้ไข
  • คำเตือน : ข้อมูลไม่ได้เข้ารหัส! (เกี่ยวข้องกับการใช้งาน Wi-Fi และไม่ใช้ LAN)
  • คำเตือน : เครือข่ายใด ๆ ที่คุณเชื่อมต่ออยู่ที่สามารถเข้าถึงพอร์ต 5900 สามารถเชื่อมต่อกับจอภาพของคุณได้! (ไม่ใช่ปัญหาหากใช้-listen <IP_ADDR>ตัวเลือกการเพิ่มอินเตอร์เฟส USB และการ จำกัดx11vnc(ที่<IP_ADDR>อยู่ของคอมพิวเตอร์ในเครือข่ายที่คุณต้องการให้เข้าถึงแบบเอกสิทธิ์เฉพาะบุคคล)
  • การรัน 1 - 4 ขั้นตอนสองครั้งอาจส่งผลให้เกิดข้อผิดพลาด
  • หลังจากการใช้งานสำเร็จ 5. ขั้นตอนจะต้องทำซ้ำสำหรับการเชื่อมต่ออื่น

B. สคริปต์

บทช่วยสอนนำมาใช้เป็นสคริปต์ (เปลี่ยน 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

@Prometheus ที่สามารถถูกแทนที่ด้วยx11vnc -clip 1280x1024+0+0 x11vnc -clip xinerama1นอกจากนี้ยัง--left-of LVDS1ไม่จำเป็นอย่างเคร่งครัดหากคุณจะใช้Monitorsแอพการตั้งค่าเพื่อจัดตำแหน่งจอภาพเพิ่มเติมทุกที่ที่คุณต้องการ
LeoRochael

6
xrandr: cannot find output "VIRTUAL1"ถูกส่งกลับเมื่อฉันพิมพ์หมายเลข 3 แนวคิดใด ๆ
ดาด tutbrus

3
xrandr: cannot find output "VIRTUAL1"กลับจากxrandr --addmode VIRTUAL1 1280x800_60.00
Tooniis

ใช้งานได้ยกเว้นคุณจะต้องมีเอาต์พุตที่ไม่ได้ใช้ซึ่งสามารถใช้โหมดวิดีโอเป้าหมายเพื่อให้สามารถใช้งานได้ VIRTUAL1ดูเหมือนว่าจะเป็นตัวแทนสำหรับผลลัพธ์ดังกล่าวไม่ใช่สิ่งที่อยู่ในระบบทั่วไป
Ruslan

1
@cprn ใช่คุณสามารถแชร์เคอร์เซอร์ของเมาส์และลากหน้าต่าง มันเหมือนกับว่าคุณมีการเชื่อมต่อจอที่สอง
Elijas

13
  1. การติดตั้งและvnc4serverx2x
  2. จากนั้นตั้งค่า.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 ได้อย่างไร)

  3. ในการเรียกใช้เซิร์ฟเวอร์ vnc ให้ใช้vnc4server -geometry 800x480คำสั่ง แน่นอนว่าแทนที่จะเป็น 800x480 คุณต้องตั้งค่าความละเอียดของแท็บเล็ต
  4. x2x -east -to :1ยิง คำสั่งนั้นบอกว่าคอมพิวเตอร์ของคุณทำหน้าที่เหมือนกับการแสดงผล: 1 อยู่ทางด้านขวาของหน้าจอ (ใช้-westตัวเลือกถ้าคุณต้องการให้มันอยู่ทางซ้าย) คุณจะไม่สามารถย้ายแอพจากจอแสดงผลหนึ่งไปยังอีกจอหนึ่งได้ แต่คุณสามารถใช้เมาส์หนึ่งตัวและคีย์บอร์ดหนึ่งตัวเพื่อควบคุมทั้งคู่ได้
  5. เชื่อมต่อกับจอแสดงผลที่สร้างด้วยvnc4serverจากแท็บเล็ตของคุณ (หมายเลขพอร์ตคือ 5900 + หมายเลขจอแสดงผล (เช่นสำหรับการแสดงผล: หมายเลขพอร์ต 1 จะเป็น 5901) (หมายเลขที่แสดงจะแสดงในvnc4serverเอาต์พุตของ)
  6. หากต้องการออกจากกดx2x Ctrl-Cหรือคุณอาจเปิดใช้งานในพื้นหลัง ( x2x -east -to :1 &) จากนั้นคุณจะต้องย้ายมันไปยังเบื้องหน้า ( fg) หรือฆ่ามันด้วยkill $!(โปรดระวังมันจะฆ่ากระบวนการสุดท้ายที่เปิดใช้ในพื้นหลัง)
  7. ในการลบการแสดงผลที่สร้างขึ้นโทรvnc4server -kill :1โดยที่:1คุณอาจตั้งค่าหมายเลขการแสดงผลใหม่แทน

1
ขอบคุณสำหรับ x2x ... ทำไมไม่มีใครพูดถึงมันในอินเทอร์เน็ตทั้งหมด ??? ช่วยฉันครั้งใหญ่ ซินเนอร์จี้ต้องใช้ไซยาโนเจนมอดหรือคล้ายกันบนแท็บเล็ตของคุณ ยังไม่มีใครพูดถึงมัน
Stefanos Kalantzis

1
ฉันรู้แล้วx2xค้นหาโพสต์นี้ด้วยการค้นหาx2x androidบน google ... แต่ +1 .vnc/xstartupด้วยโดยเฉพาะสำหรับunset DBUS_SESSION_BUS_ADDRESS!! โพสต์ขนาดเล็ก แต่รวยและมีประโยชน์มากขอบคุณ!
F. Hauri

7

นี่เป็นหลักการที่เป็นไปได้โดยใช้ xdmx (multihead X แบบกระจาย) ซึ่งช่วยให้คุณสร้างเดสก์ท็อปเดียวโดยใช้ X-เซิร์ฟเวอร์สองเครื่องที่ทำงานบนเครื่องที่แยกต่างหาก

โดยหลักการแล้วสามสถานการณ์นั้นเป็นไปได้ แต่ไม่มีสิ่งใดที่ราบรื่นเหมือน iDisplay เพราะทุกอย่างต้องเริ่มต้น X-session ใหม่อย่างน้อยที่สุด ฉันไม่สามารถทำงานได้อย่างสมบูรณ์แบบ แต่ฉันใช้ Ubuntu 10.10 และไม่สามารถอัพเกรดได้ด้วยเหตุผลหลายประการ ทั้งสามคือ:

1: เรียกใช้ X-server บน Android (มีอยู่สองตัวในแอปสโตร์) และใช้ xdmx เพื่อรวมกับหน้าจอเดสก์ท็อปหรือแล็ปท็อปของคุณ - ไม่ทำงานสำหรับฉันเพราะ xdmx หยุดทำงานเมื่อตัวชี้ย้ายไปยังส่วนแท็บเล็ตของเดสก์ท็อป

2: เรียกใช้เซิร์ฟเวอร์ X ตัวที่สองพร้อมแบ็กเอนด์ vnc บนคอมพิวเตอร์ของคุณใช้ 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

YMMV


3

ฉันสร้างสคริปต์ทุบตีง่าย ๆ เพื่อทำให้แท็บเล็ตเป็นจอแสดงผลที่สอง คัดลอก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

1
คุณมีชื่อสคริปต์ / แอพหรือลิงค์อื่น ๆ ที่คุณสามารถโพสต์เพื่อช่วยหลีกเลี่ยงการเน่าลิงค์ได้หรือไม่? โดยทั่วไปแล้วเราพยายามที่จะมีตัวตนของตัวเองให้มากที่สุดเพื่อที่จะไม่พึ่งพาไซต์อื่น ๆ โดยเฉพาะอย่างยิ่งหากไซต์เหล่านั้นมีข้อมูลจำนวนมากที่จะเกี่ยวข้องกับคำตอบที่ข้อมูลนั้นไม่ได้ใส่ลงไปในคำตอบ .
sbergeron

แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงมีการเปลี่ยนแปลง - จากรีวิว
ไม่ระบุชื่อ 2

2
@bergeron ฉันเห็น ฉันรวมรหัสเดิมไว้ที่นี่
Bumsik Kim

1
@ anonymous2 คุณพูดถูก ฉันรวมรหัสทุบตีที่นี่
Bumsik Kim

ดีกว่ามาก ฉันคิดว่านี่น่าจะเป็นแบบนี้ได้
ไม่ระบุชื่อ 2

2

ฉันใช้ xorg dummy driver และ x11vnc -clip จุดเมาส์ไม่ติดที่ขอบ

sudo apt-get install xserver-xorg-video-dummy

มี/etc/X11/xorg.confไดรเวอร์สำหรับ dummy ในหน้าจอที่สอง:

ส่วน "อุปกรณ์"
        ตัวระบุ "อุปกรณ์วิดีโอที่กำหนดค่า"
    ไดร์เวอร์ "radeon" #CHANGE อันนี้
EndSection

ส่วน "จอภาพ"
        ตัวระบุ "จอภาพที่กำหนดค่า"
EndSection

ส่วน "หน้าจอ"
        ตัวระบุ "หน้าจอเริ่มต้น"
        จอภาพ "จอแสดงผลที่กำหนดค่า"
        อุปกรณ์ "อุปกรณ์วิดีโอที่กำหนดค่า"
EndSection


## Xdummy: ##
ส่วน "อุปกรณ์"
  ตัวระบุ "Videocard0"
  ไดร์เวอร์ "dummy"
  #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" rightof "หน้าจอเริ่มต้น"
    ตัวเลือก "Xinerama" "1"
EndSection

จากนั้นเข้าสู่ระบบในเซสชั่น X และเรียกใช้:

x11vnc -clip 1024x768+1280+0

วิธีใดในการทำเช่นนี้โดยไม่ต้อง xorg.conf ถ้าฉันสร้างขึ้นมาบนคอมพิวเตอร์กราฟิกของฉันก็จะเลอะเทอะไปหมด
daboross

Xinerama ยังคงรองรับอยู่หรือไม่? แล้ว xrandr ล่ะ?
Gringo Suave

1

คำแนะนำเหล่านี้คือการสร้างหน้าจอ "เพิ่มเติม" สำหรับเครื่อง linux ของคุณโดยใช้แท็บเล็ตหรือคอมพิวเตอร์ใด ๆ ผ่านไคลเอนต์ VNC

ฉันทำขั้นตอนเหล่านี้ใน Mageia3 32Bit (ยังไม่ได้ลอง 64 บิต) แต่ควรคล้ายกับ distros อื่นเช่นกัน (เช่น 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;

ตรวจสอบรุ่นของ Xdmx โดยการทำงาน./configure --versionใน/usr/share/x11-server-source/สำหรับXdmx 1.13และเก่าที่คุณยังมีเพื่อให้การเปลี่ยนแปลงเหล่านี้ (สำหรับ 1.14 และใหม่กว่าคุณสามารถข้ามไปยัง "ให้" ขั้นตอนด้านล่าง):

open /usr/share/x11-server-sources/dix/getevents.c, line 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

คำสั่งนี้เริ่มต้นการแสดงผลหลายจอระหว่างหน้าจอแบบฟิสิคัลและหน้าจอเสมือนจริงและเริ่มต้นเพียงเล็กน้อยสำหรับตัวจัดการหน้าต่าง:

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 client ของคุณและเชื่อมต่อกับ VNC ของคุณ - คุณอาจต้องปิดการใช้งานหรือเพิ่มข้อยกเว้นไฟร์วอลล์ของคุณไปที่พอร์ต 5900 เพื่อให้คุณสามารถเชื่อมต่อกับมันได้ สิ่งที่ควรทราบอีกอย่างคือไคลเอนต์ VNC บางรายไม่แสดงตำแหน่งเคอร์เซอร์ระยะไกลฉันขอรับรองว่า "Mocha VNC" สำหรับ iOS ใช้งานได้ดีถ้าคุณปิดตัวเลือก "local mouse"

เพลิดเพลินไปกับการลากหน้าต่างระหว่างจอภาพหลักและจอภาพเสมือนใหม่ที่สองของคุณ (ในขณะที่ยังสามารถใช้แท็บเล็ตเพื่อคลิก / พิมพ์ในสิ่งต่าง ๆ ในจอภาพที่สอง)

หากต้องการปิด Xdmx กดCtrl+ Alt+ Backspaceสองครั้ง

ระบบอัตโนมัติ:

ฉันใช้สคริปต์ทุบตีนี้เพื่อเริ่มกระบวนการทั้งหมด (เช่นฆ่า 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 คุณอาจพบปัญหาการวาดภาพในหน้าต่างที่เปิดอยู่ฉันเพียงคลิกที่แถบงานเพื่อซ่อน / แสดงหน้าต่างอีกครั้งเพื่อบังคับให้วาดใหม่


0

ขอบคุณสำหรับบทช่วยสอนฉันจะแชร์สิ่งที่ใช้ได้กับฉันใน Ubuntu 14.04

รับAndroidVNCที่นี่สำหรับแท็บเล็ตของคุณ

รับ x11vnc สำหรับคอมพิวเตอร์ Ubuntu ของคุณโดยเรียกใช้

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-config เพื่อรับ autoconfig ระบบของคุณและเพิ่มส่วนจำลอง (สิ่งที่อยู่ระหว่างเครื่องหมายดอกจัน) ลงในไฟล์ของคุณ ความละเอียดสำหรับหน้าจอ dummy ใน xorg.conf ควรเป็นความกว้างหน้าจอหลักของคุณ + ความกว้างความละเอียดแท็บเล็ตของคุณในกรณีของฉัน 1680 + 1024 = 2704 ให้ความสูงหน้าจอหลักของคุณ 1050 ในกรณีของฉันรีสตาร์ท X server / รีบูต / ดึงปลั๊กไฟ เหมาะกับคุณมากขึ้น :)

เรียกใช้ x11vnc โดยทำ

x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0

ที่นี่ความละเอียดควรเป็นความกว้างแท็บเล็ตของคุณ x ความสูงแท็บเล็ต + ความกว้างของหน้าจอหลัก + 0

เชื่อมต่อกับพีซีของคุณโดยใช้ไคลเอนต์ androidVNC ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานตัวเลือก Localmouse ที่ควรจะเป็นตอนนี้รู้สึกแปลกของการมี linux ทำงานบน Android :)


0

ฉันมีปัญหามากมายกับเทคนิคอื่น ๆ ที่ระบุไว้ที่นี่ ฉันหวังว่าฉันจะมีทางออกที่ดีกว่า แต่โซลูชันที่ช้าและเรียบง่ายของฉันคือจุดเริ่มต้นที่ดี

สำหรับเซิร์ฟเวอร์ VNC ฉันลองใช้vncserverแพคเกจ แต่หน้าจอจะเป็นสีดำและฉันต้องรีสตาร์ทgdmเพื่อให้ทำงานได้อีกครั้ง ฉันเปลี่ยนไปtightvncserverใช้งานได้ครั้งแรกโดยไม่มีการกำหนดค่า

ที่จะแบ่งปันเมาส์ / แป้นพิมพ์ระหว่างหน้าจอผมใช้x2vnc นอกจากนี้ยังสามารถใช้กับwin2vncเพื่อแชร์เมาส์ / คีย์บอร์ดกับ Windows PC ถัดจาก Linux 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

ใช้วิธีนี้หน้าจอที่สองค่อนข้างช้า ยังมีตัวเลือกอื่น ๆ อีกมากมายที่ฉันได้ลองไปสู่ทางตันและตัวเลือกนี้ใช้ได้โดยไม่ต้องตั้งค่าเลย


0

สำหรับทุกคนยังคงสงสัยในหัวข้อนี้: คลิป 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


0

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ฯลฯ ดังนั้นฉันเป็นคนขี้เกียจและทำให้มันใช้:

  1. แพคเกจการติดตั้ง: sudo apt-get install x11vnc
  2. เปิดเทอร์มินัลแล้วใส่xwininfo | awk '/Window.id/{print $4}'และคลิกในหน้าต่างที่คุณต้องการแชร์ ผลลัพธ์จะเป็นดังนี้:

    $ xwininfo | awk '/Window.id/{print $4}'
    0x4402f34
    
  3. ตอนนี้คุณสามารถเริ่มx11vncเซสชันของคุณ:

    $ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
    
  4. ปรับขนาดหน้าต่าง (0x4402f34) เพื่อให้ได้ภาพที่ดีที่สุด

ใจที่เกี่ยวข้องพอร์ตที่คุณเซสชั่น : 5900 -> :0, 5901 -:1, 5902 -> :2...

นอกจากนี้ทำงานได้ดีกับแอป X11: Firefox, OpenOffice เป็นต้น


0

ใช้vnc_virtual_display_linker

เครื่องมือตั้งค่าจอภาพเสมือนที่สองสำหรับเชื่อมต่อกับ VNC ดังที่อธิบายไว้ในคำตอบก่อนหน้านี้หลายข้อ มันยังรองรับการเชื่อมต่อจากอุปกรณ์ Android โดยใช้สาย USB

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.