在 macOS Xquartz 上通过 SSH 会话时,emacs 窗口高度太小

在 macOS Xquartz 上通过 SSH 会话时,emacs 窗口高度太小

XQuartz 2.7.11(xorg-server 1.18.4)

从 Mac,我通过 ssh 登录到 Ubuntu 18.04 和 XigmaNAS,然后启动 emacs。emacs 窗口按预期显示。

emacs 窗口弹出时为正常大小,然后调整为 5 或 6 行。这非常不方便,因为窗格在启动时仅显示 emacs 启动画面。

MacPort 的 emacs (+x11) 在 Mac 上原生运行时不会出现此问题。此问题发生在 Ubuntu 18.04LTS 和 XigmaNAS(FreeBSD)上通过 SSH 运行的 emacs 上。

有趣的是,如果我使用 --geometry 80x60,其中高度 (60) 足够大(可能大于像素高度),emacs 窗口将保持最大高度。在我的 Mac 上,如果我使用 80x57,窗口将恢复到 5 行高度。如果我使用 80x58,窗口高度将填满我的屏幕。据我所知,宽度似乎是正确的。

由于这种情况在 Ubuntu 和 FreeBSD 上都通过 SSH 发生,所以这是 emacs 或 Xquartz 的问题。最有可能的罪魁祸首是 emacs 的窗口高度计算混乱了。

请注意,“emacs -q”也出现了同样的问题,所以它与我使用的 ~/.emacs 文件无关。

所以,问题可能分为两部分,但最终我正在寻找解决方案。罪魁祸首可能是 emacs 高度计算混乱,并默认为小窗口。

补救措施是在我的 .emacs 文件中设置窗口大小。我这样做了,但那时已经造成了损害。如果我在命令行中使用文件启动 emacs,它不会显示在窗格中,因为 emacs 启动画面会成为第一个窗格。这意味着如果我执行“git commit”之类的操作,我每次都必须将窗格切换到提交注释窗格。

这让我抓狂不已。肯定有人和我一样,所以我来这里问。如果你已经解决了这个问题,我真的很想知道并感激。

答案1

我从源代码编译了 emacs。我安装了 jpeg、gif、tiff 和 xaw、x11 等的 -dev 库,但没有安装 gtk。

这解决了问题,可能 emacs 和 gtk lib 之间的一些交互是问题所在。如果您感到沮丧,使用最少的 X11 lib 从源代码进行编译是一种解决方案。

答案2

我也已经看到这个问题一段时间了,最​​后做了一些调查。我尝试使用和运行 emacs,-q--no-site-file观察到相同的行为(显示后不久调整为 3 行)。明确指定的几何图形中的行数阈值略有不同;在我的例子中,53 行是一个神奇的数字。这是在 Ubuntu 19.04 上使用 XQuartz 2.7.11 运行的 Emacs 26.1 上。

现在,我在 init.el 中添加了一个解决方法,以明确检测这种情况并强制窗口达到合理的高度,方法如下:

(if (< (frame-height) 4)
    (set-frame-height (window-frame) 24))

相关内容