web-dev-qa-db-ja.com

macOS XquartzでセッションがSSH経由の場合、emacsウィンドウの高さが小さすぎます

XQuartz 2.7.11(xorg-server 1.18.4)

MacからUbuntu18.04とXigmaNASにsshログインし、emacsを起動します。 emacsウィンドウが表示されます。

Emacsウィンドウは通常のサイズで表示され、5行または6行にサイズ変更されます。ペインは開始時にemacsスプラッシュフレームしか表示しないため、これはかなり不便です。

MacPortのemacs(+ x11)は、Macでネイティブに実行している場合、この問題は発生しません。この問題は、Ubuntu18.04LTSおよびFreeBSDであるXigmaNAS上のSSH経由のemacsで発生します。

興味深いことに、高さ(60)が十分に大きい(おそらくピクセルの高さよりも大きい)-geometry 80x60を使用すると、emacsウィンドウは最大の高さのままになります。私のMacでは、80x57を使用すると、ウィンドウは5行の高さに戻ります。 80x58を使用すると、ウィンドウの高さが画面いっぱいに表示されます。私の知る限り、幅は正しいようです。

これはSSH経由のUbuntuとFreeBSDの両方で発生するため、emacsまたはXquartzの問題です。最も可能性の高い原因は、emacsのウィンドウの高さの計算が台無しになっていることです。

「emacs-q」でも同じ問題が発生するため、使用している〜/ .emacsファイルとは関係がないことに注意してください。

したがって、質問はおそらく2つの部分ですが、最終的には解決策を探しています。犯人はおそらくemacsの高さの計算が混乱していて、デフォルトで小さなウィンドウになっています。

解決策は、.emacsファイルでウィンドウサイズを設定することです。私はそれをしました、しかし、損害はそれまでにされます。コマンドラインでファイルを使用してemacsを起動すると、emacsスプラッシュが最初のペインになるため、ファイルがペインに表示されません。つまり、「git commit」のようなことをすると、毎回ペインをコミットコメントペインに切り替える必要があります。

それは私を夢中にさせています。そこにいる誰かが同じ船に乗っているに違いないので、私はここに来て尋ねました。あなたがこれを解決したならば、私は本当に知り、感謝したいと思います。

1
Naoyuki Tai

私はソースからemacsをコンパイルしました。 jpeg、gif、tiff、xaw、x11などの-dev libsをインストールしましたが、gtkはインストールしていません。

これは問題を解決し、おそらくemacsとgtklibの間に何らかの相互作用があることが問題です。イライラしている場合は、最小限のX11libでソースからコンパイルするのが解決策です。

1
Naoyuki Tai

私もしばらくの間この問題を見て、ついにいくつかの調査をしました。 -q--no-site-fileでemacsを実行してみたところ、同じ動作が見られました(表示後すぐに3行にサイズ変更されました)。明示的に指定されたジオメトリの行数のしきい値はわずかに異なります。私の場合、53行がマジックナンバーでした。これは、XQuartz2.7.11を使用してUbuntu19.04で実行されているEmacs26.1にあります。

今のところ、この状況を明示的に検出し、ウィンドウを適切な高さに強制するための回避策をinit.elに追加しました。

(if (< (frame-height) 4)
    (set-frame-height (window-frame) 24))
1
Steve Byrne