Ich habe festgestellt, dass Benutzer ein Produkt für Windows und Mac namens iDisplay verwenden, mit dem Sie Ihr Android oder iPad als sekundäres Display verwenden können. Dies scheint eine großartige Idee zu sein und könnte unter Ubuntu durchgeführt werden. Leider habe ich keine Ahnung, wie ich anfangen soll.
Wie können Sie dieses Setup unter Ubuntu neu erstellen?
multiple-monitors
android
Mark B
quelle
quelle
Antworten:
Holen Sie sich einen VNC-Client für Android, starten Sie eine neue VNC-Serversitzung auf Ihrem Computer (geben Sie nicht nur die aktuelle Anzeige frei - verwenden Sie vnc4server nicht x11vnc), stellen Sie eine Verbindung über den Android-VNC-Client her und geben Sie (das clevere Bit) die PC-Tastatur und -Maus nutzen Synergieeffekte zwischen den beiden Sitzungen.
Die dafür erforderliche Software ist in den Standard-Repos für die Ubuntu-Seite verfügbar, und es gibt ein paar kostenlose VNC-Clients für Android auf dem Markt.
Mit dieser Methode können Sie keine Fenster über die Anzeigen ziehen. Ich denke, dafür müssten Sie Xdmx verwenden, um die beiden Sitzungen zu verbinden. Dies ist viel schwieriger und würde wahrscheinlich dazu führen, dass Sie die 3D-Beschleunigung verlieren.
Beachten Sie auch, dass Synergy und VNC standardmäßig keine Verschlüsselung verwenden, sodass Sie die Verbindungen tunneln müssen, wenn Sie sich nicht in einem vertrauenswürdigen Netzwerk befinden.
quelle
tl; dr:
xrandr --fb
undx11vnc --clip
zusammen eine Killerkombination machen.Der von Recognitium verlinkte Thread hat eine wirklich interessante Idee, nicht sicher, ob er dies meinte, da ich den von ihm angegebenen Autor nicht finden konnte und auch, weil ich den Forumsbeitrag dort nachverfolgt habe, werde ich diesen separat und nicht als Bearbeitung posten :
Nehmen wir zunächst an, dass der primäre Computer eine Bildschirmauflösung von 1280 x 800 hat und der sekundäre Computer, auf den Sie Ihren Desktop über VNC erweitern möchten, eine Bildschirmauflösung von 1280 x 1024 hat und der erweiterte Bildschirm direkt neben Ihrem primären Bildschirm angezeigt werden soll. Der virtuelle Bildschirm muss sein
1280x800 + 1280x1024 = 2560x1024
. (erweitere es horizontal und mache die vertikale Auflösung größer) Also laufxrandr --fb 2560x1024
.Da der Bildschirm jetzt größer ist als Ihr primärer Monitor, müssen Sie sicherstellen, dass kein Panning oder keine andere unerwünschte "Funktion" aktiviert ist und dass die Koordinaten der oberen linken Ecke Ihres primären Monitors 0x0 sind.
x11vnc -clip 1280x1024+1281+0
und fügen Sie weitere x11vnc-Optionen hinzu, um zu schmecken :)Das sollte es sein.
quelle
xrandr --fb 2560x1024
scheint der Befehl keine Wirkung zu haben. Was bedeutet, dass ich keinen größeren Bildschirm als meinen primären Monitor haben kann ... :(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
Fehler. Ich vermute, dass mein Laptop keine höhere Auflösung als native unterstützt1600*900
. Das heißt, diese Lösung kann nicht funktionieren. Ich muss stattdessen eine Doppelscreen-Lösung finden.sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0
(Ich habe die--panning
Option verpasst )Konnte die anderen Antworten nicht zum Laufen bringen, außer dies , was fehlerfrei verbunden war.
Sie können Android als zweiten Monitor verwenden, die Maus freigeben und Fenster zwischen Tablet und Computer ziehen.
Hier ist eine Schritt-für-Schritt-Anleitung, die in den Kommentaren angefordert wird.
A. Tutorial
1. Erstellen Sie einen neuen virtuellen Monitor
Die Auflösung meines Tablets beträgt 1280x1024. (Sie können
1280
und1024
überall in den Befehlen ändern, wenn Ihr Tablet eine andere Auflösung hat. Möglicherweise müssen Sie auch Änderungen vornehmen,LVDS1
wenn der Name des Standardmonitors unterschiedlich ist.)Im Terminal ausführen:
gtf 1280 1024 60
.Es gibt eine Zeile in der Ausgabe ähnlich wie
Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
. Kopieren Sie alles nach dem WortModeline
(schließen Sie es aus) in den nächsten Befehl.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. Starten Sie VNC
x11vnc -clip 1280x1024+0+0
3. Verbindung mit Android (LAN (Wi-Fi) oder USB (Kabel))
Ermitteln Sie die IP-Adresse Ihres Computers mithilfe von
ifconfig
(beim Herstellen einer Verbindung über LAN).Laden Sie eine VNC-App herunter und stellen Sie über ihre IP-Adresse (und die Auswahl des Ports
5900
) in der App eine Verbindung zum Computer her .Hinweise
-listen <IP_ADDR>
Option hinzufügenx11vnc
(wo<IP_ADDR>
ist die Adresse des Computers in dem Netzwerk, auf das Sie exklusiven Zugriff gewähren möchten))B. Skript
Das Tutorial als Skript implementiert (Ändern Sie die IP für die Verwendung mit dem USB-Kabel ODER löschen Sie sie und kommentieren Sie die mit Wi-Fi zu verwendende Leitung aus).
quelle
x11vnc -clip 1280x1024+0+0
kann durch ersetzt werdenx11vnc -clip xinerama1
. Dies--left-of LVDS1
ist auch nicht unbedingt erforderlich, wenn Sie später dieMonitors
Einstellungs-App verwenden möchten, um den zusätzlichen Monitor an einem beliebigen Ort zu positionieren.xrandr: cannot find output "VIRTUAL1"
wurde zurückgegeben, als ich Nummer 3 eintippte. Irgendwelche Ideen?xrandr: cannot find output "VIRTUAL1"
zurückgekehrt vonxrandr --addmode VIRTUAL1 1280x800_60.00
VIRTUAL1
scheint ein Platzhalter für eine solche Ausgabe zu sein, nicht etwas, was in einem typischen System vorhanden ist.vnc4server
undx2x
.Richten Sie dann eine
.vnc/xstartup
Konfigurationsdatei ein. Meins sieht so ausEs startet den Gnome-Fallback-Desktop (ich weiß nicht, wie man Gnome 3 in vnc startet).
vnc4server -geometry 800x480
Befehl. Anstelle von 800x480 müssen Sie natürlich die Auflösung Ihres Tablets einstellen.x2x -east -to :1
. Dieser Befehl besagt, dass Ihr Computer sich so verhält, als wäre die Anzeige: 1 rechts auf dem Bildschirm (verwenden-west
Sie die Option, wenn Sie möchten, dass sie links angezeigt wird ). Sie können Apps nicht von einem Bildschirm auf einen anderen verschieben, aber Sie können beide mit einer Maus und einer Tastatur steuern.vnc4server
Ihrem Tablet erstellten Display her (die Portnummer lautet 5900 + Displaynummer (z. B. für das Display: 1 Portnummer lautet 5901) (die Displaynummer wird in dervnc4server
Ausgabe des Tablets angezeigt ).x2x
drücken SieCtrl-C
. Alternativ können Sie es auch im Hintergrund starten (x2x -east -to :1 &
). Dann müssen Sie es zuerst in den Vordergrund verschieben (fg
) oder mit beendenkill $!
(Vorsicht, der letzte im Hintergrund gestartete Vorgang wird abgebrochen).vnc4server -kill :1
, um die erstellte Anzeige zu entfernen , und:1
legen Sie stattdessen die Nummer der neuen Anzeige fest.quelle
x2x
, finde diesen Beitrag, indem du nach x2x android auf google suchst ... Aber +1 für.vnc/xstartup
, besonders fürunset DBUS_SESSION_BUS_ADDRESS
!! Kleiner aber feiner und sehr nützlicher Beitrag, danke!Dies ist im Prinzip mit xdmx (Distributed Multihead X) möglich, mit dem Sie einen einzelnen Desktop mit zwei X-Servern erstellen können, die auf unterschiedlichen Computern ausgeführt werden.
Grundsätzlich sind drei Szenarien möglich, aber keines ist so nahtlos wie iDisplay, da alle mindestens einen Neustart Ihrer X-Sitzung erfordern. Ich war nicht in der Lage, beide Funktionen perfekt zu nutzen, aber ich verwende Ubuntu 10.10 und kann aus verschiedenen Gründen kein Upgrade durchführen. Die drei sind:
1: Führen Sie einen X-Server auf Android aus (es gibt zwei im App Store) und kombinieren Sie xdmx mit Ihrem Desktop- oder Laptop-Display. - hat bei mir nicht funktioniert, weil xdmx abgestürzt ist, als der Zeiger auf den Tablet-Teil des Desktops verschoben wurde.
2: Führen Sie einen zweiten X-Server mit vnc-Backend auf Ihrem Computer aus, kombinieren Sie diesen mit xdmx zu einem Desktop mit Ihrem Computerbildschirm, und sehen Sie sich dann den virtuellen Teil mit einem vnc-Viewer auf dem Tablet an - hat bei mir nicht funktioniert, weil xdmx erfordert, dass alle x-server die gleichen visuellen farben haben, was für den vncserver und das reale display nicht der fall ist, und ich war nicht in der lage, vncserver zum wechseln zu überreden.
3: Führen Sie zwei vncserver aus, einen für jeden Bildschirm, verbinden Sie sie mit xdmx und sehen Sie sich jeden Teil mit einem vncviewer auf dem jeweiligen Computer an. - Dies kam der Arbeit bei mir am nächsten, leider war der Eingang durcheinander. Es war auch ziemlich langsam in Echtfarben über WLAN. Ich habe dieses Skript verwendet, um xdmx und die vncs zu starten:
YMMV
quelle
Ich habe ein einfaches Bash-Skript erstellt, um aus einem Tablet eine zweite Anzeige zu machen. Kopiere
ipad_monitor.sh
(keine Sorge. Es funktioniert auch mit Android) in meinen Blog-Beitrag .Der Unterschied zum anderen Beitrag besteht darin, dass Sie die Position des zweiten Bildschirms mit zusätzlichen Argumenten sehr einfach festlegen können.
Edit: Ich habe das Original
ipad_monitor.sh
hier aufgenommen. Führen Sie diesen Befehl wie folgt aus:./ipad_monitor.sh --right
oder./ipad_monitor.sh --left
./ipad_monitor.sh --right --portrait
./ipad_monitor.sh --right --portrait --hidpi
Die Grundidee dieses Skripts ist die gleiche wie andere, Laufen
xrandr
undx11vnc
aber ich inklusive Optionen wie welche Seite Sie den Bildschirm befestigen möchten.quelle
Ich benutze den xorg Dummy-Treiber und den x11vnc-Clip. Der Mauszeiger steckt nicht am Rand.
Auf dem
/etc/X11/xorg.conf
zweiten Bildschirm befindet sich der Treiber für den Dummy:Dann melden Sie sich bei der X-Sitzung an und führen Sie Folgendes aus:
quelle
Diese Anweisungen dienen zum Erstellen eines "zusätzlichen" Bildschirms für Ihren Linux-Computer mit einem Tablet oder einem beliebigen Computer über einen VNC-Client.
Ich habe diese Schritte in Mageia3 32Bit gemacht (habe 64bit nicht ausprobiert), sollte aber auch für andere Distributionen (zB Ubuntu) ähnlich sein.
Stellen Sie sicher, dass Sie über alle erforderlichen Pakete mit dem folgenden Terminalbefehl verfügen:
Wenn Sie alle oben genannten Pakete haben, geben Sie die folgenden Befehle ein:
Wenn Sie keine Fehler bekommen, patchen Sie Xdmx (einfach ausgedrückt, es ist seit einiger Zeit "kaputt"):
öffne
/usr/share/x11-server-sources/hw/dmx/input/dmxevents.c
und ändere Zeile 730: ändere dies:dazu:
WENN Zeile 730 anders ist, verwenden Sie diesen Abschnitt, um die richtige Zeile zu finden: Orginalabschnitt - zu ändernde Zeile markiert mit *
Überprüfen Sie Ihre Version von Xdmx , indem Sie
./configure --version
in/usr/share/x11-server-source/
, für Xdmx 1.13 und älter Sie auch diese Änderungen vornehmen müssen (für 1.14 und neuere können Sie auf der „make“ Schritt unten überspringen):open
/usr/share/x11-server-sources/dix/getevents.c
, line 1395: ändere dies:Dazu:
(Originalabschnitt - zu ändernde Zeile mit * gekennzeichnet)
open
/usr/share/x11-server-sources/Xext/xtest.c
, Zeile 311: Ändere dies:dazu:
(Originalabschnitt - zu ändernde Zeile mit * gekennzeichnet)
/usr/share/x11-server-sources/include/input.h
, Zeile 73: Fügen Sie diese Zeile nach der folgenden Zeile ein#define POINTER_EMULATED
:Nachdem Sie die obigen Änderungen vorgenommen haben, führen Sie erneut (in
/usr/share/x11-server-sources/
) aus:Sie sollten eine neue Xdmx-Datei in haben
/usr/share/x11-server-sources/hw/dmx/
. Wir müssen das aus Gründen der Einfachheit global installieren, daher empfehle ich, Ihr vorhandenes umzubenennen:und kopiere das neue stattdessen:
Mit den folgenden Befehlen können Sie Ihre Haupt- / vorhandene Anzeige (
:0
) weiterhin ausführen und eine neue Anzeige mit Unterstützung für mehrere Monitore öffnen. Ich verwende icewm mit diesen Befehlen, um es ein wenig leichter zu machen (ich verwende KDE auf meinem Hauptdisplay:0
und öffne jede Anwendung mit großem Multi-Monitor auf dem neuen Multi-Head-Display). Sie können diese Befehle zur Vereinfachung der Verwendung mit einem Skript versehen (wie ich es getan habe). - Jeder dieser Befehle kann auf der Konsole und / oder im Terminalfenster einer beliebigen Anzeige ausgeführt werden. Die einzige Voraussetzung ist, dass sie in der richtigen Reihenfolge ausgeführt werden.Dieser Befehl erstellt Ihre neue Anzeige als Bildspeicher für Ihre VNC-Anzeige
:2
(passen Sie die Bildschirmgröße wie gewünscht an):Dies startet eine neue Lightweight-X-Sitzung auf Ihrem physischen Bildschirm als Anzeige
:1
(es gibt verschiedene Möglichkeiten, dies zu tun):Dieser Befehl startet die Mehrfachanzeige zwischen Ihrem physischen Bildschirm und dem virtuellen Bildschirm und startet icewm für den Fenstermanager:
Öffnen Sie nun ein Terminalfenster und starten Sie den vnc-Server (ändern Sie das Passwort wie gewünscht):
Jetzt müssen Sie nur noch Ihren VNC-Client starten und eine Verbindung zu Ihrem VNC herstellen. Möglicherweise müssen Sie Ihre Firewall für Port 5900 deaktivieren oder eine Ausnahme hinzufügen, damit Sie eine Verbindung herstellen können. Beachten Sie auch, dass einige VNC-Clients die Position des Remote-Cursors nicht anzeigen. Ich bestätige, dass "Mocha VNC" für iOS hervorragend funktioniert, wenn Sie die Option "Lokale Maus" deaktivieren.
Genießen Sie das Ziehen von Fenstern zwischen Ihrem Hauptmonitor und Ihrem neuen virtuellen zweiten Monitor (und können Sie mit dem Tablet auch auf dem zweiten Monitor klicken / etwas eingeben).
Um Xdmx zu schließen, drücken Sie zweimal Ctrl+ Alt+ Backspace.
Automatisierung:
Ich benutze dieses Bash-Skript, um den gesamten Prozess zu starten (beendet auch Xvfb beim Beenden):
Dann habe ich eine benutzerdefinierte
~/.xinitrc
Datei mit diesem:Fehlerbehebung:
Wenn beim Ausführen von Xdmx die Fehlermeldung
sh: /usr/local/bin/xkbcomp: No such file or directory
angezeigt wird, dass Sie möglicherweisecd /usr/local/bin" and "ln -s /bin/xkbcomp
Folgendes ausführen müssen :, versuchen Sie es erneut mit Xdmx.Ctrl+ Alt+ F1Durch F7sollte in Xdmx arbeiten zu anderen Konsolen / xsessions zu wechseln , aber aus irgendeinem Grunde nicht funktioniert, was ich tue , ist einfach auszuführen
sudo chvt X
(wobei X eine Konsole / xsession Zahl ist) zu meiner Hauptanzeige zu wechseln. Auch wenn Sie zurück zu Xdmx wechseln, kann es bei geöffneten Fenstern zu Problemen beim Zeichnen kommen. Ich klicke einfach auf die Taskleiste, um das Fenster auszublenden / wieder einzublenden und ein Neuzeichnen zu erzwingen.quelle
Vielen Dank für das Tutorial Jungs, ich werde teilen, was für mich auf Ubuntu 14.04 gearbeitet hat
Holen Sie sich AndroidVNC hier für Ihr Tablet
Holen Sie sich x11vnc für Ihren Ubuntu-PC, indem Sie es ausführen
Ich musste die Xorg-Dummy-Treibermethode verwenden. So sieht meine Datei /etc/X11/xorg.conf aus:
Wahrscheinlich brauchen Sie dort nicht alles. Führen Sie einfach X -configure aus, um Ihr System automatisch zu konfigurieren, und fügen Sie die Dummy-Abschnitte (Zeug zwischen den Sternchen) zu Ihrer Datei hinzu. Die Auflösung für den Dummy-Bildschirm in xorg.conf sollte die Breite Ihres Hauptmonitors + die Breite Ihrer Tablet-Auflösung sein, in meinem Fall 1680 + 1024 = 2704. Behalten Sie Ihre Höhe des Hauptmonitors bei, in meinem Fall 1050. Starten Sie den X-Server neu / Neustarten / Ziehen Sie den Netzstecker, was auch immer steht dir besser :).
Führen Sie dabei x11vnc aus
Hier sollte die Auflösung Ihre Tablettbreite x Tabletthöhe + Hauptdisplaybreite + 0 sein
Stellen Sie über den androidVNC-Client eine Verbindung zu Ihrem PC her, und aktivieren Sie die Option localmouse. Das sollte es sein, jetzt fühle die Seltsamkeit, Linux über Android laufen zu lassen :)
quelle
Ich hatte viele Probleme mit den anderen hier aufgeführten Techniken. Ich wünschte, ich hätte eine bessere Lösung, aber meine langsame und einfache Lösung ist ein guter Ausgangspunkt.
Für den VNC-Server habe ich das
vncserver
Paket ausprobiert , aber der Bildschirm wurde schwarz und ich musste neu startengdm
, damit alles wieder funktioniert. Ich wechselte zutightvncserver
und es funktionierte das erste Mal ohne Konfiguration.Um die Maus / Tastatur zwischen den Bildschirmen zu teilen, habe ich x2vnc verwendet . Dies kann auch mit win2vnc verwendet werden , um die Maus / Tastatur mit einem Windows-PC neben Ihrem Linux-PC zu teilen.
Letzte Befehle:
Zu diesem Zeitpunkt sollten Sie in der Lage sein, den zweiten Bildschirm in einem VNC-Programm zu öffnen, indem Sie eine Verbindung zu herstellen
YOUR_IP_ADDRESS:1
. Um ein Programm auf dem VNC-Bildschirm zu starten, öffnen Sie ein Terminal, legen Sie festDISPLAY
und führen Sie den Befehl aus.xterm
Führen Sie zum Öffnen auf dem VNC-Bildschirm beispielsweise Folgendes aus:Mit diesem Ansatz ist der zweite Bildschirm ziemlich langsam. Trotzdem sind viele der anderen Optionen, die ich ausprobiert habe, in Sackgassen geraten, und diese funktionierten ohne jegliche Konfiguration.
quelle
Für alle, die sich noch über dieses Thema wundern: Der Clip xrandr und x11vnc funktioniert. Damit die Maus dorthin gelangen kann, müssen Sie das Panning-Argument verwenden, um den Mausverfolgungsbereich festzulegen:
Verwenden Sie dann beim Ausführen von xvnc Folgendes:
Dadurch wird VNC daran gehindert, eine eigene Cursor-Verfolgung zu verwenden, und der Cursor wird als Teil des Bildschirmbilds gezeichnet.
Ich habe hier Notizen gemacht http://mikescodeoddities.blogspot.ae/2015/04/android-tablet-as-second-ubuntu-screen.html
quelle
TL; DR :
Klicken Sie jetzt einfach auf das Fenster, das Sie freigeben möchten.
VOLL :
Ich habe ein iPad und Chromebook , und ich möchte sie als meine Monitore verwenden, um nur einige Terminal - Befehle uso
htop
,iptstate
,nmon
usw. Also, ich bin faul und habe es geschafft mit:sudo apt-get install x11vnc
Öffnen Sie ein Terminal und
xwininfo | awk '/Window.id/{print $4}'
klicken Sie in das Fenster, das Sie freigeben möchten. Die Ausgabe wird ungefähr so aussehen:Jetzt können Sie Ihre
x11vnc
Sitzung beginnen:Ändern Sie die Größe des Fensters (0x4402f34), um das bestmögliche Bild zu erhalten.
Beachten Sie die zugehörigen Port Ihrer Sitzung :
5900 -> :0
,5901 -:1
,5902 -> :2
...Funktioniert außerdem gut mit X11-Apps: Firefox, OpenOffice usw.
quelle
Verwenden Sie vnc_virtual_display_linker
Das Tool richtet einen zweiten virtuellen Monitor für die Verbindung mit VNC ein, wie in vielen der vorherigen Antworten beschrieben. Es werden sogar Verbindungen von Android-Geräten über ein USB-Kabel unterstützt.
quelle