我通过 VNC 在 Windoze PC 上的多台显示器上使用 GNU EMACS。
(目前 5 - 4 大,我平板电脑上的 1 个小显示器。两个垂直 1200x1920,两个水平 1920x1200,加上小。)
我目前这样做的方式是在每台显示器上运行一个单独的 VNC。然后我打开一个 emacs,并使用 make-frame-other-display 在另一个 VNC 窗口中打开 emacs 的框架。
让事情变得更复杂 - 我在最新的 Ubuntu 系统上运行 VNC,但我在其他构建工具所在的非常过时的机器上运行 emacs。即 VNC 显示器与 emacs 不是同一台机器的本地显示。
我不是 xhost+,而是在每个 VNC 中打开一个 xterm,然后通过 ssh 连接到运行 emacs 的机器。这将创建 localhost:16.0 形式的 DISPLAYS。然后,我使用这些 localhost DISPLAY 使用 make-frame-on-display。
这变得令人困惑。
如果我在 xterm 窗口中留下“echo $DISPLAY”会有所帮助。或更改 xterm 的标题。
我想类似地更改 EMACS 框架的标题,以反映每个框架的当前显示。但是做
(defvar frame-title-specific-ag "emacs"
"title element from frame-title-format that is specific to a particular emacs instance; andy glew")
(setq frame-title-format
(list
"frame=%F "
(format "%s" frame-title-specific-ag)
" " 'system-name
" DISPLAY="
(getenv "DISPLAY")
" %b"
" " (format "pid:%d" (emacs-pid))
" user:"(user-login-name))
)
只获取整个 emacs 的 DISPLAY 变量。
问:有没有办法找出与任何特定帧相关的显示?