我经常将X会话从我的家庭服务器(Slackware)转发到我的工作桌面(Cygwin/Windows7)。即ssh -X home-server; emacs &。我想知道(以编程方式)在哪里显示我的Emacs会话,但显示环境没有太大帮助:
(getenv "DISPLAY")
"localhost:10.0"有什么想法吗?
更新:我应该说得更清楚一些;我正在查找运行X会话的主机的名称(本例中是我的工作台式机)。例如,调用(system-name)或(getenv "HOSTNAME")将返回"home-server",即Emacs实际运行的位置。
更新2:我一直在尝试回复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...发布于 2014-01-07 04:29:55
我在Unix stackexchange上问过这个问题。简短的答案是
(getenv "SSH_CLIENT")发布于 2014-01-07 01:40:33
这些只是常规的linux变量:
(getenv "HOSTNAME")
(getenv "TTY")他们应该告诉你你在哪台机器上,以及你在那台机器上的位置。
发布于 2014-01-07 05:50:29
我不知道X协议是否提供了一种方法来请求X服务器向您提供运行X协议的机器的主机名。您可以使用其他信息,例如RandR数据(例如,其EDID信息可能包括显示器的品牌名称)。
https://stackoverflow.com/questions/20955439
复制相似问题