Wie kann ich meine Zwischenablage zwischen zwei X-Servern freigeben?
9
Ich habe kürzlich meinen Ubuntu-Computer so eingerichtet, dass ich eine weitere X-Sitzung in pty8 ausführe. Ich führe hauptsächlich virtuelle Maschinen oder Remotedesktopsitzungen auf diesem anderen X-Server aus, um einige der Frustrationen zu vermitteln, die bei der Tastaturintegration in diesen Umgebungen auftreten können.
Wenn ich jetzt jedoch etwas aus einem Fenster auf: 0 kopiere, kann ich es nicht in ein Fenster auf: 1 einfügen.
Gibt es eine Möglichkeit, die Zwischenablage zwischen diesen beiden Sitzungen freizugeben?
Ich habe eine Lösung gefunden, die ziemlich gut zu funktionieren scheint. Ich bin mir nicht sicher, ob es einen besseren Weg gibt, aber ich habe ein Skript geschrieben, das meine VM startet und dann die angezeigte Zwischenablage überwacht: 0 auf Änderungen. Wenn eine Änderung festgestellt wird, wird der Inhalt der Zwischenablage kopiert, um Folgendes anzuzeigen: 1. Dies geschieht bidirektional, sodass ich auch problemlos von der VM kopieren und einfügen kann.
Hier ist das Skript:
#!/bin/bash
virtualbox --startvm "Windows 7"--fullscreen &
waitpid=$!
watch_clip(){local curr="" prev="" from=$1 to=:0# On first run, we need to copy from :0 to :1 but not vice versaif[["$from"==":0"]];then
xclip -o -selection clipboard -d :02>/dev/null | xclip -selection clipboard -d :1
to=:1fiwhile true;do# Get the current clipboard contents
curr=`xclip -o -selection clipboard -d $from 2> /dev/null`# Compare to previous results and copy if it's changedif[["$curr"!="$prev"]];then
echo "$curr"| xclip -selection clipboard -d $tofi
prev="$curr"
sleep 0.5done}
watch_clip :0&
watch_clip :1&
wait $waitpid
Dann ist nur noch der Befehl zum Starten der zweiten X-Sitzung erforderlich:
startx ./.startwin7 -- :1
Ich habe keine Probleme bemerkt, aber wenn sich jemand einen besseren Weg vorstellen kann, würde ich die Eingabe auf jeden Fall begrüßen.
Ihre Post gab mir eine Idee und ich habe Ihr Skript dies vereinfacht: xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1(siehe superuser.com/a/992418/19223 )
lorenzog
3
Wenn Sie etwas schlüsselfertiges wollen, sollte Synergy den Trick machen. Ich habe es nie für nur eine Box in X-Sitzungen verwendet. Es funktioniert, um Zwischenablagen zwischen verschiedenen Computern zu teilen. Es wäre daher überraschend, wenn ein Konstruktionsfehler oder ein Usability-Problem verhindern würde, dass es für Sie funktioniert.
+1. Das ist ziemlich cool, ich hatte so etwas bei meinen Suchen gesehen und hoffte nur, dass es etwas gab, für das kein Setup erforderlich war. Das einzige Problem, das ich bei meiner eigenen Lösung berücksichtigt habe, ist, dass sich jemand auf meinem Laptop beim Gastkonto anmeldet, bevor ich mich anmelde oder meine virtuelle Maschine starte. Das ist noch nicht geschehen, aber wenn es zu einem Problem wird, könnte ich stattdessen Synergy verwenden, um die Zwischenablage zu synchronisieren.
Andy E
1
Nochmals vielen Dank für Ihre Antwort. Ich habe das Kopfgeld vergeben, aber ich habe mich entschlossen, meine eigene Antwort auf die akzeptierte Lösung zu geben, da sie näher an dem liegt, wonach ich gesucht habe, und ich hatte bisher keine Probleme damit.
Andy E
1
Vielen Dank! Ihre Lösung ist interessant; Mach was für dich funktioniert, oder? Prost
Bryan Agee
1
Ich hatte das gleiche Problem. Synergy hat bei mir nicht gut funktioniert (es gibt große Fehler im X11-Teil der Synchronisierung der Zwischenablage), und ich wollte kein Skript, das die Zwischenablage nur mit einer Zeitverzögerung abfragt, da dies CPU und / oder verschwendet Fügt zufällige Verzögerungen hinzu, bevor ich einfügen kann. Ich habe ein Skript namens xclipsync geschrieben, das das Problem für mich löst.
xclip -selection clip -o -display :0 | xclip -selection clip -i -display :1
(siehe superuser.com/a/992418/19223 )Wenn Sie etwas schlüsselfertiges wollen, sollte Synergy den Trick machen. Ich habe es nie für nur eine Box in X-Sitzungen verwendet. Es funktioniert, um Zwischenablagen zwischen verschiedenen Computern zu teilen. Es wäre daher überraschend, wenn ein Konstruktionsfehler oder ein Usability-Problem verhindern würde, dass es für Sie funktioniert.
Außerdem: Für Ihre VMs gibt es Builds für Mac und Windows .
quelle
Ich hatte das gleiche Problem. Synergy hat bei mir nicht gut funktioniert (es gibt große Fehler im X11-Teil der Synchronisierung der Zwischenablage), und ich wollte kein Skript, das die Zwischenablage nur mit einer Zeitverzögerung abfragt, da dies CPU und / oder verschwendet Fügt zufällige Verzögerungen hinzu, bevor ich einfügen kann. Ich habe ein Skript namens xclipsync geschrieben, das das Problem für mich löst.
https://github.com/apenwarr/xclipsync
quelle