Ich leite meine X-Session oft von meinem Home-Server (Slackware) auf meinen Arbeits-Desktop (Cygwin/Windows 7) weiter. I.e. ssh -X home-server; emacs &
. Ich möchte (programmatisch) wissen, wo meine Emacs-Sitzung angezeigt wird, aber die DISPLAY-Umgebung ist nicht sehr hilfreich:Wie kann ich feststellen, wo meine Emacs-Sitzung angezeigt wird?
(getenv "DISPLAY")
"localhost:10.0"
Irgendwelche Gedanken?
Update: Ich hätte klarer sein sollen; Ich suche nach dem Namen des Hosts, auf dem meine X-Sitzung läuft (in diesem Fall mein Arbeits-Desktop). Wenn Sie beispielsweise (system-name)
oder (getenv "HOSTNAME")
anrufen, wird "home-server" zurückgegeben, wo Emacs tatsächlich ausgeführt wird.
Update 2: Ich habe versucht, zu Tobias, unten, zu reagieren, aber die Formatierung arbeiten in den Kommentaren zu bekommen versucht, mich verrückt ist:
Danke, Tobias, aber es scheint nur, dass xauth
befasst sich mit Berechtigungsdaten:
Using authority file /home/mgh/.Xauthority
home-server/unix:0 MIT-MAGIC-COOKIE-1 c545124...
localhost.localdomain/unix:0 MIT-MAGIC-COOKIE-1 c5451...
home-server/unix:14 MIT-MAGIC-COOKIE-1 7b7be...
home-server/unix:13 MIT-MAGIC-COOKIE-1 96d13...
home-server/unix:12 MIT-MAGIC-COOKIE-1 8b186...
home-server/unix:11 MIT-MAGIC-COOKIE-1 28a0a...
home-server/unix:10 MIT-MAGIC-COOKIE-1 bbf6c...
Update 3:
Tobias, zeigt es das:
xauth -v nlist
Using authority file /home/mgh/.Xauthority
0100 0007 4261672d456e64 0001 30 0012 4d49542d4... 0010 c5451248...
0100 0015 6c6f63616c686f73742e6... 0001 30 0012 4d4954... 0010 c545124...
...
0100 0007 4261672d456e64 0002 3130 0012 4d49542d4d... 0010 bbf6c4d...
Was liefert das 'display'-Item im Ergebnis des Funktionsaufrufs' (current-frame-configuration) '? Beachten Sie, dass mehrere Frames auf verschiedenen Displays angezeigt werden können. Diese würden auch im Ergebnis von 'current-frame-configuration' aufgelistet werden. – Tobias
"localhost: 10.0"; Wie $ DISPLAY ... – Michael
Der Anzeigename 'localhost: 10.0' sieht aus wie' xauth -l' (als Shell-Befehl) sollte Ihnen die Liste der xservers geben. Wenn ich richtig verstehe, dann sollte 'xauth -l localhost: 10.0' dir den direkten Treffer geben. Sie können dies auch von emacs aus aufrufen. Der allgemeinere Fall wäre 'xauth -l" $ DISPLAY "'. – Tobias