Pertanyaan Bagaimana Anda menggunakan tablet android sebagai tampilan kedua?


Saya telah memperhatikan orang yang menggunakan produk untuk Windows dan Mac yang dipanggil iDisplay yang memungkinkan Anda menggunakan Android atau iPad Anda sebagai layar sekunder. Ini sepertinya ide yang bagus, dan sesuatu yang bisa dilakukan di Ubuntu. Sayangnya, saya tidak tahu bagaimana memulainya.

Bagaimana Anda bisa membuat ulang pengaturan ini di Ubuntu?


53
2018-03-01 17:55


asal


Pertanyaan serupa saat ini sedang dibahas di forum: Gunakan VNC sebagai monitor kedua - ændrük
Pertanyaan yang sama pada Pengguna Super: Gunakan VNC untuk membuat Layar kedua - ændrük
Oke, solusi yang disajikan di sini adalah jaringan. Tetapi apakah ada kesempatan untuk mencapai ini dengan hanya memalsukan monitor melalui usb, untuk mendapatkan pengalaman yang sama seperti monitor Duet tidak? - Augustin Riedinger
Jadi Duet mungkin (pada dasarnya) meniru chip DisplayLink dalam perangkat lunak - saya tidak tahu tapi itu tebakan saya. Saya bahkan tidak akan mencoba. Apa yang akan saya coba (dan tidak sulit) adalah jaringan USB: menambatkan (atau membalikkan kembali) tablet dan jaringan Anda. - chx


Jawaban:


Dapatkan klien VNC untuk Android, memulai sesi server VNC baru di komputer Anda (jangan hanya berbagi tampilan saat ini - gunakan vnc4server bukan x11vnc), sambungkan ke perangkat tersebut dari klien Android VNC, dan (bit pintar) bagikan Keyboard dan mouse PC antara dua sesi menggunakan sinergi.

Semua perangkat lunak yang diperlukan untuk melakukan ini tersedia di repositori standar untuk sisi Ubuntu, dan ada beberapa klien VNC gratis yang tersedia untuk Android di pasar.

Anda tidak akan dapat menyeret jendela di seluruh layar menggunakan metode ini. Untuk itu saya pikir Anda perlu menggunakan Xdmx untuk mengikat kedua sesi. Ini jauh lebih sulit dan mungkin akan menyebabkan Anda kehilangan akselerasi 3D.

Juga perhatikan bahwa sinergi dan vnc tidak menggunakan enkripsi secara default sehingga Anda perlu melakukan tunnel koneksi jika Anda tidak berada di jaringan tepercaya.


27
2018-03-18 04:11



dapat menambahkan contoh, silakan - rkmax
itu akan berguna untuk memiliki contoh langkah demi langkah yang bisa kita ikuti - OganM
Bagaimana ini akan membuat tablet kedua layar - seperti di ruang layar lainnya? - NoBugs
Saya mengalami masalah dengan vncserver dan Gnome 3. Setiap kali saya mencoba meluncurkan vncserver, layar akan menjadi hitam. Saya akhirnya menggunakan tightvncserver (juga di repositori Ubuntu) dan itu berhasil dalam percobaan pertama tanpa konfigurasi sama sekali. - thirdender
Ini lebih seperti switch-seperti KVM atau solusi remote control dari layar kedua. Ya, ini memberi Anda satu set input lagi tetapi keluarannya sama pada kedua perangkat - Anda bahkan tidak dapat mengalihkan tablet ke desktop virtual yang berbeda dari layar utama Anda, menyalakan satu sakelar keduanya. Itu tidak menjawab pertanyaan. Pertanyaannya adalah tentang menggunakan perangkat seluler untuk ruang output ekstra, bukan tentang masukan sama sekali. - cprn


tl; dr: xrandr --fb dan x11vnc --clip bersama-sama membuat kombo pembunuh.

Benang yang dihubungkan oleh recognitium memiliki ide yang sangat menarik, tidak yakin apakah yang dia maksudkan ini karena saya tidak dapat menemukan pengarang yang dia tunjuk dan juga karena saya menindaklanjuti pos forum di sana, saya akan memposting ini secara terpisah dan tidak sebagai pengeditan :

  1. Pertama, mari kita asumsikan mesin utama memiliki resolusi layar 1280x800 dan mesin sekunder yang Anda ingin memperluas desktop Anda ke lebih dari VNC memiliki resolusi layar 1280x1024 dan Anda ingin layar tambahan berada di kanan layar utama Anda. Layar virtual perlu 1280x800 + 1280x1024 = 2560x1024. (Bentangkan secara horizontal dan buat resolusi vertikal yang lebih besar dari keduanya) Jadi jalankan xrandr --fb 2560x1024.

  2. Sekarang, bahwa layar lebih besar dari monitor utama Anda, Anda harus memastikan tidak ada panning atau "fitur" lain yang tidak diinginkan diaktifkan dan juga bahwa koordinat sudut kiri atas monitor utama Anda adalah 0x0.

  3. x11vnc -clip 1280x1024+1281+0 plus tambahkan opsi x11vnc lainnya untuk dicicipi :)

Ini harusnya.


15
2018-01-13 00:34



Ini sepertinya cara yang lebih mulus untuk melakukannya daripada trik Synergy, bagus! Saya ingin tahu bagaimana ruang virtual tambahan akan berinteraksi dengan manajer jendela ubin saya sekalipun. Akan memberikan ini tembakan sebentar dan melaporkan kembali. - Ibrahim
Kekalahan disambar dari rahang kemenangan. Penunjuk mouse tidak diizinkan meninggalkan layar utama. :( - Gringo Suave
Terlihat menarik. Saya benar-benar berhasil memiliki layar ganda di sana, tapi sayangnya, perintahnya xrandr --fb 2560x1024 tampaknya tidak memiliki efek apa pun. Yang berarti saya tidak bisa memiliki layar yang lebih besar dari ukuran monitor utama saya ... :( - Augustin Riedinger
saya membaca lebih lanjut tentang ini. Punya a 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  kesalahan. Dugaan saya adalah laptop saya tidak mendukung resolusi yang lebih tinggi daripada yang asli 1600*900. Artinya solusi ini tidak bisa berfungsi. Saya harus menemukan solusi layar ganda sebagai gantinya. - Augustin Riedinger
Saya akhirnya berhasil berkat itu posting ini dengan menjalankan: sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0 (Saya merindukan --panning pilihan) - Augustin Riedinger


  1. Memasang vnc4server dan x2x.
  2. Kemudian, atur a .vnc/xstartup file konfigurasi. Milikku terlihat seperti ini

    #!/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
    

    Ini meluncurkan desktop gnome-fallback (saya tidak tahu cara membuat gnome 3 diluncurkan di vnc).

  3. Untuk meluncurkan server vnc, gunakan vnc4server -geometry 800x480 perintah. Tentu saja, daripada 800x480 Anda harus mengatur resolusi tablet Anda.
  4. Meluncurkan x2x -east -to :1. Perintah itu mengatakan komputer Anda untuk bertindak seperti tampilan: 1 berada di sebelah kanan layar (gunakan -west pilihan jika Anda ingin berada di sebelah kiri). Anda tidak akan dapat memindahkan aplikasi dari satu tampilan ke tampilan lainnya, tetapi Anda dapat menggunakan satu mouse dan satu keyboard untuk mengontrol keduanya.
  5. Sambungkan ke tampilan yang dibuat dengan vnc4server dari tablet Anda (nomor port adalah 5900 + nomor tampilan (misalnya untuk tampilan: 1 nomor port akan 5901) (nomor tampilan ditampilkan di vnc4serveroutput)).
  6. Untuk keluar dari x2x, tekan Ctrl-C. Atau, Anda dapat meluncurkannya di latar belakang (x2x -east -to :1 &). Maka Anda harus terlebih dahulu memindahkannya ke latar depan (fg), atau bunuh dengan kill $! (hati-hati, itu membunuh proses terakhir yang diluncurkan di latar belakang).
  7. Untuk menghapus tampilan yang dibuat, panggil vnc4server -kill :1, di mana bukan :1 Anda dapat mengatur nomor tampilan baru Anda.

12
2018-06-11 07:19



Terima kasih untuk x2x ... Mengapa tidak ada orang lain yang menyebutkannya di seluruh internet ??? Menyelamatkan saya waktu besar. Sinergi membutuhkan cyanogenmod atau sejenisnya di tablet Anda. Juga tidak ada yang menyebutkannya. - Stefanos Kalantzis
saya sudah tahu x2x, cari posting ini dengan mencari x2x android di google ... Tapi +1 untuk .vnc/xstartup, khususnya untuk unset DBUS_SESSION_BUS_ADDRESS!! Posting kecil tapi kaya dan sangat bermanfaat, terima kasih! - F. Hauri


Tidak dapat membuat jawaban yang lain berfungsi, kecuali ini, yang terhubung dengan sempurna.

Hal ini memungkinkan untuk menggunakan Android sebagai monitor kedua, bagikan mouse, tarik jendela antara tablet dan komputer.

Berikut adalah tutorial langkah demi langkah, diminta oleh komentar.

A. Tutorial

1. Buat monitor

(Perhatikan: ubah 1280 dan 1024 untuk mengubah pengaturan resolusi default 1280x1024. Anda mungkin juga perlu berubah LVDS1 jika nama monitor default berbeda).

Jalankan di terminal:

  1. $ gtf 1280 1024 60.

Ada garis dalam output yang mirip dengan Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync. Salin semuanya setelah kata Modeline (kecualikan) ke dalam perintah selanjutnya.

  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. Mulai VNC

  1. x11vnc -clip 1280x1024+0+0

3. Terhubung dengan Android (LAN (Wi-Fi) atau USB (Kabel))

  1. Temukan IP komputer Anda menggunakan ifconfig (saat menghubungkan dari LAN).

  2. Unduh aplikasi VNC dan hubungkan ke komputer menggunakan IP-nya (dan pilih port 5900) di aplikasi.

Pemberitahuan

  • Kredit: kjans, isi diedit.
  • PERINGATAN: Data tidak terenkripsi! (Relevan untuk penggunaan Wi-Fi dan bukan LAN)
  • PERINGATAN: Setiap jaringan yang Anda terhubung yang dapat mencapai port 5900 dapat terhubung ke monitor Anda! (Tidak masalah jika menggunakan USB DAN membatasi penambahan antarmuka -listen <IP_ADDR> opsi untuk x11vnc (dimana <IP_ADDR> adalah alamat komputer di jaringan yang ingin Anda berikan akses eksklusif))
  • Menjalankan salah satu dari 1 hingga 4 langkah dua kali dapat menghasilkan kesalahan.
  • Setelah berhasil digunakan, 5. langkah harus diulang untuk koneksi lain.

B. Script

Tutorial diimplementasikan sebagai skrip (Ubah IP untuk digunakan dengan kabel USB ATAU hapus dan hapus tanda komentar saluran untuk digunakan dengan 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

10
2018-03-26 18:53



@Prometheus, yang x11vnc -clip 1280x1024+0+0 dapat diganti dengan x11vnc -clip xinerama1. Juga --left-of LVDS1 tidak benar-benar diperlukan jika Anda terakhir akan menggunakan Monitors pengaturan aplikasi untuk posisi monitor ekstra di mana pun Anda inginkan. - LeoRochael
xrandr: cannot find output "VIRTUAL1" dikembalikan ketika saya mengetik nomor 3. Ada ide? - dat tutbrus
xrandr: cannot find output "VIRTUAL1" kembali dari xrandr --addmode VIRTUAL1 1280x800_60.00 - Tooniis
Ini berfungsi, kecuali Anda harus memiliki output yang tidak terpakai yang mampu dari mode video target agar ini berfungsi. VIRTUAL1 tampaknya menjadi placeholder untuk output seperti itu, bukan sesuatu yang ada dalam sistem yang khas. - Ruslan
@cprn Ya, Anda dapat berbagi kursor mouse dan menyeret jendela. Seolah-olah Anda memiliki monitor kedua yang terhubung - Prometheus


Ini pada prinsipnya mungkin menggunakan xdmx (didistribusikan multihead X) yang memungkinkan Anda untuk membuat desktop tunggal menggunakan dua X-server yang berjalan pada mesin yang terpisah.

tiga skenario mungkin pada prinsipnya, tetapi tidak ada yang sama mulusnya dengan iDisplay, karena mereka semua perlu memulai ulang sesi X Anda setidaknya. Saya belum bisa bekerja dengan sempurna, tetapi saya menjalankan Ubuntu 10.10 dan tidak dapat melakukan upgrade karena berbagai alasan. Ketiganya adalah:

1: menjalankan X-server di android (ada dua yang tersedia sekarang di app store) dan menggunakan xdmx untuk digabungkan dengan tampilan desktop atau laptop Anda. - tidak bekerja untuk saya karena xdmx jatuh ketika pointer pindah ke bagian tablet dari desktop.

2: jalankan X-server kedua dengan backend vnc di komputer Anda, gunakan xdmx untuk menggabungkannya ke dalam satu desktop dengan layar komputer Anda, kemudian lihat bagian virtual dengan penampil vnc di tablet - tidak bekerja untuk saya karena xdmx mensyaratkan semua x-server memiliki visualisasi warna yang sama, yang tidak berlaku untuk vncserver dan tampilan sebenarnya, dan saya tidak dapat meyakinkan vncserver untuk berubah.

3: jalankan dua vncservers, satu untuk setiap layar, lalu hubungkan dengan xdmx dan lihat setiap bagian dengan vncviewer pada masing-masing mesin. - Ini datang paling dekat untuk bekerja untuk saya, sayangnya inpout sudah kacau. itu juga cukup lambat dalam warna asli melalui wifi. Saya menggunakan skrip ini untuk memulai xdmx dan 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


7
2017-09-16 19:41





Saya menggunakan driver dummy xorg dan x11vnc -clip. Titik mouse tidak terjebak di tepinya.

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

Ada itu /etc/X11/xorg.conf untuk driver tiruan di layar kedua:

Bagian "Perangkat"
        Pengenal "Perangkat Video Terkonfigurasi"
    Driver "radeon" #CHANGE THIS
EndSection

Bagian "Monitor"
        Identifier "Configured Monitor"
EndSection

Bagian "Layar"
        Pengenal "Layar Default"
        Monitor "Configured Monitor"
        Perangkat "Perangkat Video Dikonfigurasi"
EndSection


## Xdummy: ##
Bagian "Perangkat"
  Pengidentifikasi "Videocard0"
  Driver "dummy"
  #VideoRam 4096000
  VideoRam 256000
EndSection

## Xdummy: ##
Bagian "Monitor"
  Identifier "Monitor0"
# HorizSync 10.0 - 300.0
# VertRefresh 10.0 - 200.0
# DisplaySize 4335 1084
EndSection

## Xdummy: ##
Bagian "Layar"
  Pengenal "Screen0"
  Perangkat "Videocard0"
  Pantau "Monitor0"
EndSection



Bagian "ServerLayout"
  Pengenal "dummy_layout"
  Layar 0 "Layar Bawaan"
  Layar 1 "screen0" kanan dari "Layar Default"
    Pilihan "Xinerama" "1"
EndSection

Lalu masuk ke sesi X dan jalankan:

x11vnc -clip 1024x768+1280+0

2
2018-02-08 21:25



Ada cara untuk melakukan ini tanpa xorg.conf? Jika saya membuat satu di komputer saya maka grafik saya benar-benar kacau. - daboross
Apakah Xinerama masih didukung? Bagaimana dengan xrandr? - Gringo Suave


Saya membuat skrip bash sederhana untuk membuat tablet layar kedua. Salinan ipad_monitor.sh (Jangan khawatir, ini juga berfungsi dengan Android) di saya posting blog.

Yang berbeda dari pos lainnya adalah Anda dapat mengatur posisi layar kedua dengan argumen tambahan dengan sangat mudah.

Sunting: Saya menyertakan yang asli ipad_monitor.sh sini. jalankan perintah ini seperti:

  • ./ipad_monitor.sh --right atau ./ipad_monitor.sh --left 
  • ./ipad_monitor.sh --right --portrait
  • ./ipad_monitor.sh --right --portrait --hidpi

Ide dasar dari skrip ini sama dengan yang lain, berjalan xrandr dan x11vnc tapi saya menyertakan opsi seperti sisi mana Anda ingin melampirkan layar.

#!/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

2
2018-04-17 17:06



Apakah Anda memiliki nama untuk skrip / aplikasi atau tautan alternatif apa pun yang dapat Anda posting untuk membantu menghindari pembusukan tautan? Di sini kami biasanya mencoba untuk menjadi sekuat mungkin agar tidak bergantung pada situs lain, terutama jika situs-situs tersebut berisi sebagian besar info yang akan relevan dengan jawaban di mana info itu sebenarnya tidak dimasukkan ke dalam jawaban. . - sbergeron
Meskipun tautan ini dapat menjawab pertanyaan, sebaiknya sertakan bagian penting dari jawaban di sini dan berikan tautan sebagai referensi. Hanya tautan jawaban yang dapat menjadi tidak valid jika laman yang ditautkan berubah. - Dari Ulasan - anonymous2
@sbergeron saya lihat. Saya menyertakan kode asli di sini. - Bumsik Kim
@ anonymous2 Kamu benar. Saya menyertakan kode bash di sini. - Bumsik Kim
Ah, jauh lebih baik. Saya pikir ini harus bisa bertahan seperti ini. - anonymous2


Petunjuk ini adalah untuk membuat layar "tambahan" untuk mesin linux Anda menggunakan tablet atau komputer apa pun melalui klien VNC.

Saya membuat langkah-langkah ini di Mageia3 32Bit (belum mencoba 64bit) tetapi harus serupa untuk distro lain juga (yaitu Ubuntu).

Pastikan Anda memiliki semua paket yang dibutuhkan dengan perintah terminal berikut:

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

Setelah Anda memiliki semua paket di atas, jalankan perintah ini:

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

Jika Anda tidak mendapatkan kesalahan, tempel Xdmx (cukup taruh, sudah "rusak" untuk beberapa waktu):

Buka /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c, dan ubah baris 730:  ubah ini:

POINTER_ABSOLUTE | POINTER_SCREEN, &mask);

untuk ini:

POINTER_RELATIVE | POINTER_DESKTOP, &mask);

JIKA baris 730 berbeda gunakan bagian ini untuk menemukan baris yang benar: Bagian oreginal - baris berubah ditandai dengan *

    case ButtonPress:
    case ButtonRelease:
        detail = dmxGetButtonMapping(dmxLocal, detail);
        valuator_mask_zero(&mask);
        QueuePointerEvents(p, type, detail,
 *                         POINTER_RELATIVE | POINTER_DESKTOP, &mask);
        return;

Periksa versi Xdmx Anda dengan menjalankan ./configure --version di /usr/share/x11-server-source/, untuk Xdmx 1.13 dan lebih tua Anda juga harus membuat perubahan ini (untuk 1,14 dan yang lebih baru Anda dapat melompat ke langkah "make" di bawah):

Buka /usr/share/x11-server-sources/dix/getevents.c, baris 1395:     ubah ini:

if (flags & POINTER_SCREEN ) {    /* valuators are in screen coords */

Untuk ini:

if (flags & ( POINTER_SCREEN | POINTER_DESKTOP) ) {    /* valuators are in screen coords */

(Bagian asli - baris berubah ditandai dengan *)

    /* 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);

Buka /usr/share/x11-server-sources/Xext/xtest.c, baris 311:     ubah ini:

flags = POINTER_ABSOLUTE | POINTER_SCREEN;

untuk ini:

flags = POINTER_ABSOLUTE | POINTER_DESKTOP;

(bagian asli - baris berubah ditandai dengan *)

       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, baris 73: Tambahkan baris ini setelah baris dimulai dengan #define POINTER_EMULATED:

#define POINTER_DESKTOP         (1 << 7)

Setelah melakukan perubahan di atas, eksekusi ulang (masuk /usr/share/x11-server-sources/):

make

Anda harus memiliki file Xdmx baru di /usr/share/x11-server-sources/hw/dmx/. Kita perlu menginstalnya secara global untuk memudahkan, jadi saya sarankan untuk mengganti nama yang sudah ada:

sudo mv /bin/Xdmx /bin/Xdmx-old

dan salin yang baru sebagai ganti:

cp /usr/share/x11-server-sources/hw/dmx/Xdmx /bin

Sekarang Anda siap untuk melakukan uji coba pertama Anda, perintah berikut memungkinkan Anda untuk mempertahankan tampilan utama / yang ada (:0) menjalankan dan membuka layar baru dengan dukungan multi-monitor. Saya menggunakan icewm dengan perintah ini untuk membuatnya sedikit lebih ringan (saya menggunakan KDE di layar utama saya :0 dan buka aplikasi multi-monitor besar di layar multi-head baru). Anda pasti dapat skrip perintah-perintah ini untuk kemudahan penggunaan (itu yang saya lakukan) - Salah satu dari perintah ini dapat dijalankan pada konsol dan / atau jendela terminal dari setiap tampilan, satu-satunya persyaratan adalah bahwa mereka dieksekusi secara berurutan.

Perintah ini membuat tampilan baru Anda sebagai penyangga bingkai untuk tampilan VNC Anda :2 (sesuaikan ukuran layar sesuai keinginan):

Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &

Ini memulai sesi X ringan baru pada tampilan fisik Anda sebagai tampilan :1 (ada berbagai cara untuk melakukan ini):

startx 'icewm' -- :1

Perintah ini memulai multi-display antara layar fisik Anda dan layar virtual dan mulai icewm untuk window manager:

Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm

Sekarang buka jendela terminal dan mulai server vnc (ubah kata sandi sesuai keinginan):

x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe &

Satu-satunya hal yang tersisa untuk dilakukan sekarang adalah menjalankan klien VNC Anda dan terhubung ke VNC Anda - Anda mungkin perlu menonaktifkan atau menambahkan pengecualian ke firewall Anda ke port 5900 sehingga Anda dapat terhubung dengannya. Hal lain yang perlu diingat adalah bahwa beberapa klien VNC tidak menampilkan posisi kursor jarak jauh, saya menyatakan bahwa "Mocha VNC" untuk iOS berfungsi dengan baik jika Anda mematikan opsi "mouse lokal".

Nikmati menyeret jendela antara monitor utama Anda dan monitor kedua virtual baru Anda (sementara juga bisa menggunakan tablet untuk mengklik / mengetik pada hal-hal di monitor kedua).

Untuk menutup tekan Xdmx Ctrl+Alt+Menghapus dua kali.

Otomatisasi:

Saya menggunakan skrip bash ini untuk memulai seluruh proses (juga membunuh Xvfb saat keluar):

Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &
xinit dual -- :1
ps | grep Xvfb | awk '{print $1}' | xargs kill

Maka saya memiliki kebiasaan ~/.xinitrc file dengan ini:

#!/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

Penyelesaian masalah:

  • Saat menjalankan Xdmx jika Anda mendapatkan kesalahan mengatakan sh: /usr/local/bin/xkbcomp: No such file or directory Anda mungkin perlu melakukan eksekusi: cd /usr/local/bin" and "ln -s /bin/xkbcomp, lalu coba Xdmx lagi.

  • Ctrl+Alt+F1 melalui F7 seharusnya bekerja di Xdmx untuk beralih ke konsol lain / xsessions tetapi untuk beberapa alasan itu tidak berhasil, apa yang saya lakukan hanya mengeksekusi sudo chvt X (di mana X adalah nomor konsol / xsession) untuk beralih ke tampilan utama saya. Juga ketika Anda beralih kembali ke Xdmx Anda mungkin mendapatkan beberapa masalah menggambar pada setiap jendela yang terbuka, saya cukup klik pada taskbar untuk menyembunyikan / menunjukkan jendela lagi memaksa redraw.


1
2018-01-10 01:01





Terima kasih untuk orang-orang tutorial, saya akan berbagi apa yang bekerja untuk saya di Ubuntu 14.04

Mendapatkan AndroidVNC di sini untuk tablet Anda

Dapatkan x11vnc untuk pc Ubuntu Anda dengan menjalankan

sudo apt-get install x11vnc

Saya harus menggunakan metode driver dummy Xorg. Inilah yang terlihat seperti file /etc/X11/xorg.conf saya:

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**

Anda mungkin tidak perlu semuanya di sana, jalankan saja X -configure untuk mendapatkan autoconfig sistem Anda dan tambahkan bagian dummy (barang antara tanda bintang) ke file Anda. Resolusi untuk layar tiruan di xorg.conf harus menjadi lebar monitor utama Anda + lebar resolusi tablet Anda, dalam kasus saya 1680 + 1024 = 2704 menjaga tinggi monitor utama Anda, 1050 dalam kasus saya.Mulai ulang server X / Nyalakan / Tarik colokan listrik, apa pun lebih cocok untuk Anda :).

Jalankan x11vnc dengan melakukan

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

Di sini, resolusi harus menjadi tablet Anda lebar x tinggi tablet + Lebar tampilan utama + 0

Hubungkan ke Pc Anda menggunakan klien androidVNC, pastikan untuk mengaktifkan opsi localmouse. Seharusnya begitu, sekarang rasakan keanehan dari menjalankan linux melalui android :)


0
2017-08-18 21:58





Saya memiliki banyak masalah dengan teknik lain yang tercantum di sini. Saya berharap saya memiliki solusi yang lebih baik, tetapi solusi saya yang lambat dan sederhana adalah tempat awal yang baik.

Untuk server VNC, saya mencoba vncserver paket tetapi layar akan menjadi hitam dan saya harus me-restart gdm untuk mendapatkan sesuatu yang berfungsi lagi. Saya beralih ke tightvncserver dan itu berhasil pertama kali tanpa konfigurasi.

Untuk berbagi mouse / keyboard antara layar yang saya gunakan x2vnc. Ini juga bisa digunakan dengan win2vnc untuk berbagi mouse / keyboard dengan PC Windows di sebelah PC Linux Anda.

Perintah terakhir:

sudo apt-get install tightvncserver
tightvncserver
sudo apt-get install x2vnc
x2vnc -east localhost:1

Pada titik ini Anda harus dapat membuka layar kedua dalam program VNC dengan menghubungkan ke YOUR_IP_ADDRESS:1. Untuk memulai program pada layar VNC, buka terminal, atur DISPLAY, lalu jalankan perintah. Misalnya, untuk membuka xterm pada "layar" VNC, jalankan:

export DISPLAY=:1
xterm

Menggunakan pendekatan ini layar kedua cukup lambat. Namun, masih banyak opsi lain yang saya coba jalani ke jalan buntu, dan yang satu ini bekerja tanpa konfigurasi sama sekali.


0
2017-11-24 20:30





Bagi siapa pun yang masih bertanya-tanya tentang topik ini: klip xrandr dan x11vnc tidak berfungsi; untuk mengaktifkan mouse untuk mendapatkan di sana Anda perlu menggunakan argumen panning untuk mengatur area pelacakan mouse:

xrandr --fb 2560x1024 --output LVDS1 --panning 1280x1024+0+0/2560x1024+0+0

Kemudian saat menjalankan xvnc gunakan:

x11vnc -clip 1280x1024+1281+0 -nocursorshape -nocursorpos

Itu menghentikan VNC dari mencoba menggunakan pelacakan kursornya sendiri dan melukis kursor sebagai bagian dari gambar layar.

Saya membuat catatan di sini http://mikescodeoddities.blogspot.ae/2015/04/android-tablet-as-second-ubuntu-screen.html


0
2018-04-24 12:56