Saya perhatikan orang menggunakan produk untuk Windows dan Mac yang disebut iDisplay yang memungkinkan Anda menggunakan Android atau iPad sebagai tampilan sekunder. Ini sepertinya ide bagus, dan sesuatu yang bisa dilakukan di Ubuntu. Sayangnya, saya tidak tahu bagaimana memulainya.
Bagaimana Anda bisa membuat ulang pengaturan ini di Ubuntu?
multiple-monitors
android
Mark B
sumber
sumber
Jawaban:
Dapatkan klien VNC untuk Android, mulai sesi server VNC baru di komputer Anda (jangan hanya berbagi tampilan saat ini - gunakan vnc4server bukan x11vnc), sambungkan ke sana dari klien VNC Android, dan (bit pintar) bagikan Keyboard dan mouse PC antara dua sesi menggunakan sinergi.
Semua perangkat lunak yang diperlukan untuk melakukan ini tersedia dalam repo 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 dua sesi. Ini jauh lebih sulit dan mungkin akan menyebabkan Anda kehilangan akselerasi 3D.
Perlu diketahui juga bahwa sinergi dan vnc tidak menggunakan enkripsi secara default sehingga Anda perlu membuat terowongan koneksi jika Anda tidak berada di jaringan tepercaya.
sumber
tl; dr:
xrandr --fb
danx11vnc --clip
bersama-sama membuat kombo pembunuh.Utas yang ditautkan oleh acceptitium memiliki ide yang sangat menarik, tidak yakin apakah maksudnya ini karena saya tidak dapat menemukan penulis yang diindikasikan dan juga karena saya menindaklanjuti posting forum di sana, saya akan memposting ini secara terpisah dan bukan sebagai sunting. :
Pertama, mari kita asumsikan mesin utama memang 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 yang diperluas berada tepat di layar utama Anda. Layar virtual perlu
1280x800 + 1280x1024 = 2560x1024
. (rentangkan secara horizontal dan buat resolusi vertikal lebih besar dari keduanya) Jadi jalankanxrandr --fb 2560x1024
.Sekarang, bahwa layar lebih besar dari monitor utama Anda, Anda harus memastikan tidak ada panning atau "fitur" yang tidak diinginkan lainnya yang diaktifkan dan juga bahwa koordinat sudut kiri atas monitor utama Anda adalah 0x0.
x11vnc -clip 1280x1024+1281+0
ditambah menambahkan opsi x11vnc lainnya sesuai selera :)Seharusnya begitu.
sumber
xrandr --fb 2560x1024
itu tampaknya tidak berpengaruh. Yang berarti saya tidak dapat memiliki layar yang lebih besar dari ukuran monitor utama saya ... :(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 bahwa laptop saya tidak mendukung resolusi yang lebih tinggi daripada yang asli1600*900
. Berarti solusi ini tidak dapat bekerja. Saya harus mencari solusi layar ganda sebagai gantinya.sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0
(Saya tidak punya--panning
pilihan)Tidak dapat membuat jawaban lain berfungsi, kecuali ini , yang terhubung dengan sempurna.
Ini memungkinkan untuk menggunakan Android sebagai monitor kedua, berbagi mouse, menyeret windows antara tablet dan komputer.
Inilah tutorial langkah demi langkah, yang diminta oleh komentar.
A. Tutorial
1. Buat monitor virtual baru
Resolusi tablet saya adalah 1280x1024. (Anda dapat mengubah
1280
dan1024
di mana saja dalam perintah jika tablet Anda memiliki resolusi berbeda. Anda juga mungkin perlu mengubahLVDS1
jika nama monitor default berbeda).Jalankan di terminal:
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 kataModeline
(kecualikan) ke perintah berikutnya.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
2. Mulai VNC
x11vnc -clip 1280x1024+0+0
3. Terhubung dengan Android (LAN (Wi-Fi) atau USB (Kabel))
Temukan IP komputer Anda menggunakan
ifconfig
(saat menghubungkan dari LAN).Unduh aplikasi VNC dan sambungkan ke komputer menggunakan IP-nya (dan pilih port
5900
) di aplikasi.Pemberitahuan
-listen <IP_ADDR>
opsi kex11vnc
(di mana<IP_ADDR>
alamat komputer di jaringan Anda ingin memberikan akses eksklusif))B. Script
Tutorial diimplementasikan sebagai skrip (Ubah IP untuk digunakan dengan kabel USB ATAU hapus dan hapus baris komentar untuk digunakan dengan Wi-Fi).
sumber
x11vnc -clip 1280x1024+0+0
bisa diganti denganx11vnc -clip xinerama1
. Selain itu,--left-of LVDS1
ini tidak sepenuhnya diperlukan jika Anda belakangan akan menggunakanMonitors
aplikasi pengaturan untuk menempatkan monitor tambahan di mana pun Anda inginkan.xrandr: cannot find output "VIRTUAL1"
dikembalikan ketika saya mengetikkan angka 3. Ada gagasan?xrandr: cannot find output "VIRTUAL1"
kembali darixrandr --addmode VIRTUAL1 1280x800_60.00
VIRTUAL1
tampaknya menjadi pengganti untuk output seperti itu, bukan sesuatu yang hadir dalam sistem yang khas.vnc4server
danx2x
.Kemudian, siapkan
.vnc/xstartup
file konfigurasi. Milik saya terlihat seperti iniIni meluncurkan desktop gnome-fallback (saya tidak tahu bagaimana membuat gnome 3 diluncurkan di vnc).
vnc4server -geometry 800x480
perintah. Tentu saja, alih-alih 800x480 Anda harus mengatur resolusi tablet Anda.x2x -east -to :1
. Perintah itu mengatakan komputer Anda untuk bertindak seolah-olah tampilan: 1 berada di sebelah kanan layar (gunakan-west
opsi 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.vnc4server
dari tablet Anda (nomor port adalah 5900 + nomor layar (mis. Untuk tampilan: 1 nomor port akan menjadi 5.901) (nomor layar ditampilkan dalamvnc4server
output)).x2x
, tekanCtrl-C
. Atau, Anda dapat meluncurkannya di latar belakang (x2x -east -to :1 &
). Maka pertama-tama Anda harus memindahkannya ke foreground (fg
), atau membunuhnya dengankill $!
(hati-hati, itu membunuh proses terakhir diluncurkan di latar belakang).vnc4server -kill :1
, di mana alih-alih:1
Anda dapat mengatur nomor tampilan baru Anda.sumber
x2x
, cari posting ini dengan mencari x2x android di google ... Tapi +1 untuk.vnc/xstartup
, terutama untukunset DBUS_SESSION_BUS_ADDRESS
!! Posting kecil tapi kaya dan sangat berguna, terima kasih!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 pada prinsipnya mungkin, tetapi tidak ada yang semulus iDisplay, karena mereka semua memerlukan memulai ulang sesi X Anda setidaknya. Saya belum dapat bekerja dengan baik, tetapi saya menjalankan Ubuntu 10.10 dan tidak dapat memutakhirkan karena berbagai alasan. Ketiganya adalah:
1: jalankan X-server di android (ada dua tersedia sekarang di app store) dan gunakan xdmx untuk bergabung dengan tampilan desktop atau laptop Anda. - tidak berfungsi untuk saya karena xdmx mogok ketika pointer pindah ke bagian tablet desktop.
2: jalankan X-server kedua dengan backend vnc di komputer Anda, gunakan xdmx untuk menggabungkannya menjadi satu desktop dengan layar komputer Anda, kemudian lihat bagian virtual dengan penampil vnc di tablet - tidak berfungsi untuk saya karena xdmx mengharuskan semua x-server memiliki visual 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 sambungkan dengan xdmx dan lihat setiap bagian dengan vncviewer pada mesin yang bersangkutan. - Ini yang paling dekat dengan bekerja untuk saya, sayangnya inpout kacau. itu juga cukup lambat dalam warna asli melalui wifi. Saya menggunakan skrip ini untuk memulai xdmx dan vncs:
YMMV
sumber
Saya membuat skrip bash sederhana untuk menjadikan tablet tampilan kedua. Salin
ipad_monitor.sh
(Jangan khawatir. Ini juga berfungsi dengan Android) di posting blog saya .Apa yang berbeda dari posting lain adalah bahwa Anda dapat mengatur posisi layar kedua dengan argumen tambahan dengan sangat mudah.
Sunting: Saya menyertakan yang asli di
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 skrip ini sama dengan yang lain, berjalan
xrandr
danx11vnc
tetapi saya menyertakan opsi seperti sisi mana yang ingin Anda lampirkan layar.sumber
Saya menggunakan driver dummy xorg dan x11vnc -clip. Titik mouse tidak tersangkut di tepi.
Ada
/etc/X11/xorg.conf
untuk driver dummy di layar kedua:Kemudian login ke sesi X dan jalankan:
sumber
Petunjuk ini 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 diperlukan dengan perintah terminal berikut:
Setelah Anda memiliki semua paket di atas, keluarkan perintah ini:
Jika Anda tidak mendapatkan kesalahan, tambal Xdmx (sederhananya, sudah "rusak" untuk beberapa waktu):
buka
/usr/share/x11-server-sources/hw/dmx/input/dmxevents.c
, dan ubah baris 730: ubah ini:untuk ini:
JIKA baris 730 berbeda gunakan bagian ini untuk menemukan garis yang benar: Bagian asli - baris untuk berubah ditandai dengan *
Periksa versi Xdmx 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 "membuat" langkah di bawah ini):buka
/usr/share/x11-server-sources/dix/getevents.c
, baris 1395: ubah ini:Untuk ini:
(Bagian asli - baris untuk mengubah ditandai dengan *)
buka
/usr/share/x11-server-sources/Xext/xtest.c
, baris 311: ubah ini:untuk ini:
(bagian asli - baris untuk mengubah ditandai dengan *)
/usr/share/x11-server-sources/include/input.h
, baris 73: Tambahkan baris ini setelah baris dimulai dengan#define POINTER_EMULATED
:Setelah melakukan perubahan di atas, jalankan kembali (dalam
/usr/share/x11-server-sources/
):Anda harus memiliki file Xdmx baru di
/usr/share/x11-server-sources/hw/dmx/
. Kami perlu menginstalnya secara global agar mudah, jadi saya sarankan mengganti nama yang sudah ada:dan salin yang baru sebagai gantinya:
Sekarang Anda siap untuk melakukan uji coba pertama Anda, perintah berikut memungkinkan Anda untuk menjaga tampilan utama / yang ada (
:0
) berjalan dan membuka tampilan baru dengan dukungan multi-monitor. Saya menggunakan icewm dengan perintah-perintah ini untuk membuatnya sedikit lebih ringan (saya menggunakan KDE pada tampilan utama saya:0
dan membuka aplikasi multi-monitor besar di tampilan multi-head baru). Anda dapat dengan mudah menuliskan perintah-perintah ini untuk kemudahan penggunaan (ini yang saya lakukan) - Setiap perintah ini dapat dieksekusi pada konsol dan / atau jendela terminal dari tampilan apa pun, satu-satunya syarat adalah perintah tersebut dijalankan secara berurutan.Perintah ini membuat tampilan baru Anda sebagai penyangga bingkai untuk tampilan VNC Anda
:2
(sesuaikan ukuran layar sesuai keinginan):Ini memulai sesi X ringan baru pada tampilan fisik Anda sebagai tampilan
:1
(ada berbagai cara untuk melakukan ini):Perintah ini memulai multi-display antara layar fisik Anda dan layar virtual dan memulai icewm untuk window manager:
Sekarang buka jendela terminal dan mulai server vnc (ubah kata sandi seperti yang diinginkan):
Satu-satunya hal yang harus 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. Satu hal 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 dan monitor kedua virtual baru Anda (sambil juga dapat menggunakan tablet untuk mengklik / mengetikkan hal-hal di monitor kedua).
Untuk menutup Xdmx, tekan Ctrl+ Alt+ Backspacedua kali.
Otomatisasi:
Saya menggunakan skrip bash ini untuk memulai seluruh proses (juga membunuh Xvfb saat keluar):
Maka saya memiliki
~/.xinitrc
file khusus dengan ini:Penyelesaian masalah:
Saat menjalankan Xdmx jika Anda mendapatkan kesalahan yang mengatakan
sh: /usr/local/bin/xkbcomp: No such file or directory
Anda perlu melakukan eksekusicd /usr/local/bin" and "ln -s /bin/xkbcomp
:, lalu coba Xdmx lagi.Ctrl+ Alt+ F1through F7seharusnya bekerja di Xdmx untuk beralih ke konsol lain / xsessions tetapi karena alasan tertentu tidak berfungsi, yang saya lakukan hanyalah menjalankan
sudo chvt X
(di mana X adalah konsol / nomor 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 / menampilkan jendela lagi memaksa redraw.sumber
Terima kasih untuk teman-teman tutorialnya, saya akan membagikan apa yang berhasil untuk saya di Ubuntu 14.04
Dapatkan AndroidVNC di sini untuk tablet Anda
Dapatkan x11vnc untuk komputer Ubuntu Anda dengan menjalankan
Saya harus menggunakan metode driver dummy Xorg. Begini tampilan file /etc/X11/xorg.conf saya:
Anda mungkin tidak memerlukan semua yang ada di sana, jalankan X -configure untuk mendapatkan sistem autoconfig Anda dan tambahkan bagian dummy (barang-barang di antara tanda bintang) ke file Anda. Resolusi untuk layar boneka di xorg.conf harus menjadi lebar monitor utama Anda + lebar resolusi tablet Anda, dalam kasus saya 1680 + 1024 = 2704 pertahankan ketinggian monitor utama Anda, 1050 dalam kasus saya. Mulai ulang server X / steker ulang / steker daya tarik, apa pun lebih cocok untuk Anda :).
Jalankan x11vnc dengan melakukan
Di sini resolusinya harus lebar tablet Anda x tinggi tablet + Lebar tampilan utama + 0
Hubungkan ke PC Anda menggunakan klien androidVNC, pastikan untuk mengaktifkan opsi localmouse. Seharusnya begitu, sekarang rasakan keanehan memiliki linux yang dijalankan di android :)
sumber
Saya memiliki banyak masalah dengan teknik-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
paketnya tetapi layarnya menjadi hitam dan saya harus memulai ulanggdm
agar semuanya berfungsi kembali. Saya beralih ketightvncserver
dan itu bekerja pertama kali tanpa konfigurasi.Untuk berbagi mouse / keyboard antara layar saya menggunakan x2vnc . Ini juga dapat digunakan dengan win2vnc untuk membagikan mouse / keyboard dengan PC Windows di sebelah PC Linux Anda.
Perintah terakhir:
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, aturDISPLAY
, lalu jalankan perintah. Misalnya, untuk membukaxterm
"layar" VNC, jalankan:Menggunakan pendekatan ini, layar kedua cukup lambat. Namun, banyak opsi lain yang saya coba mengalami jalan buntu, dan ini bekerja tanpa konfigurasi sama sekali.
sumber
Bagi siapa pun yang masih bertanya-tanya tentang topik ini: klip xrandr dan x11vnc berhasil; untuk mengaktifkan mouse ke sana, Anda perlu menggunakan argumen panning untuk mengatur area pelacakan mouse:
Kemudian saat menjalankan penggunaan xvnc:
Itu menghentikan VNC dari upaya untuk menggunakan pelacakan kursor itu sendiri dan mengecat kursor sebagai bagian dari gambar layar.
Saya membuat catatan di sini http://mikescodeoddities.blogspot.ae/2015/04/android-tablet-as-second-ubuntu-screen.html
sumber
TL; DR :
Sekarang, cukup klik pada jendela yang ingin Anda bagikan.
LENGKAP :
Saya memiliki sebuah iPad dan Chromebook dan saya ingin menggunakannya sebagai monitor saya, hanya untuk USO beberapa perintah terminal
htop
,iptstate
,nmon
, dll. Jadi, saya pria yang malas dan membuatnya menggunakan:sudo apt-get install x11vnc
Buka beberapa terminal dan masukkan
xwininfo | awk '/Window.id/{print $4}'
dan klik di jendela yang ingin Anda bagikan. Outputnya akan seperti:Sekarang Anda dapat memulai
x11vnc
sesi Anda :Ubah ukuran jendela (0x4402f34) untuk mendapatkan gambar sebaik mungkin.
Pikiran yang terkait pelabuhan dari Anda sesi :
5900 -> :0
,5901 -:1
,5902 -> :2
...Selain itu, berfungsi baik dengan aplikasi X11: Firefox, OpenOffice, dll.
sumber
Gunakan vnc_virtual_display_linker
Alat ini menyiapkan monitor virtual kedua untuk terhubung dengan VNC seperti yang dijelaskan dalam banyak jawaban sebelumnya. Bahkan mendukung koneksi dari perangkat Android menggunakan kabel USB.
sumber