簡體   English   中英

如何確定我的Emacs會話的顯示位置?

[英]How can I determine where my Emacs session is being displayed?

我經常將我的X會話從我的家庭服務器(Slackware)轉發到我的工作桌面(Cygwin / Windows 7)。 ssh -X home-server; emacs & ssh -X home-server; emacs & 我想知道(以編程方式)顯示我的Emacs會話的位置,但是DISPLAY環境不是很有幫助:

(getenv "DISPLAY")
"localhost:10.0"

有什么想法嗎?

更新:我應該更清楚; 我正在尋找運行X會話的主機的名稱(在這種情況下,我的工作桌面)。 例如,調用(system-name)(getenv "HOSTNAME")將返回“家庭服務器”,其中Emacs實際上正在運行。

更新2:我一直在嘗試回復下面的Tobias,但是試圖讓格式在評論中起作用一直讓我瘋狂:

謝謝,Tobias,但似乎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...

我在Unix stackexchange上問了這個問題。 簡短的回答是

(getenv "SSH_CLIENT")

這些只是常規的linux變量:

(getenv "HOSTNAME")
(getenv "TTY")

他們應該為您提供您所在的機器以及您在該機器上的位置。

我不知道X協議是否提供了一種方法來要求X服務器為您提供運行它的機器的主機名。 您可能會獲得其他信息,例如RandR數據(例如,其EDID信息可能包含監視器的品牌名稱)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM