我經常將我的X會話從我的家庭服務器(Slackware)轉發到我的工作桌面(Cygwin/Windows 7)。即ssh -X home-server; emacs &
。我想知道(編程),其中正在顯示我的Emacs會話,但顯示的環境是不是非常有幫助:如何確定Emacs會話的顯示位置?
(getenv "DISPLAY")
"localhost:10.0"
有什麼想法?
更新:我應該更清楚;我正在尋找我的X會話正在運行的主機的名稱(在本例中爲我的工作桌面)。調用,例如,(system-name)
或(getenv "HOSTNAME")
將返回「home-server」,其中Emacs實際上正在運行。
更新2:我一直在試圖托比亞斯,下面,而是試圖讓格式的註釋工作已經駕駛我堅果迴應:
謝謝,托比亞斯,但它只是似乎xauth
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...
更新3:使用授權數據交易
託拜厄斯,就說明這一點:
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...
函數調用結果'(current-frame-configuration)'中的'display'-item是什麼?請注意,不同顯示器上可能有多個框架。這些也將在'current-frame-configuration'的結果中列出。 – Tobias
「localhost:10.0」;與$ DISPLAY相同... – Michael
顯示名稱'localhost:10.0'看起來像'xauth -l'(與shell命令一樣)會給你一個xservers列表。如果我理解正確,那麼'xauth -l localhost:10.0'應該給你直接命中。你也可以從emacs中調用它。更一般的情況是'xauth -l「$ DISPLAY」'。 – Tobias