Date: Thu, 30 Mar 2023 18:46:11 +0900 From: Kaoru Kusachi <tika@st.rim.or.jp> To: users-jp@freebsd.org Subject: Re: screen and emacs Message-ID: <cacf0008-4277-6131-058c-af82c1d267ac@st.rim.or.jp> In-Reply-To: <ydl4jq37z94.fsf@pc02.mar> References: <ydl4jq37z94.fsf@pc02.mar>
next in thread | previous in thread | raw e-mail | index | archive | help
草地@リムネットと申します。
普段は FreeBSDをデスクトップ環境として使ってはいないのですが、少し古い手元で
動くデスクトップ環境 (FreeBSD 11.4 + xorg 7.7 + xfce4-wm 4.16 + emacs 27.2 +
screen 4.8.0) で確認すると xfce-terminal で screen を起動して emacs -nw を実
行すると同じ様にモードラインの表示が見えなくなると言う現象は確認出来ました。
更に調べてみるとどうも普通にターミナル内で emacs -nw で起動した場合と screen
内で実行した場合ではどうも emacs のカラーマップが変わってしまう様でモードライ
ンの background colorと foreground colorが同じになってしまって見えない状態に
なっている様です。
とりあえず、emacs を screen内で起動した時にだけ強制的にモードラインの色を変更
する様なコードを書いてみましたので、.emacs に追記して確認してみて下さい。
;;
;; mode-line-color (screen)
;;
(when (string= "TERM=screen"
(format "%s" (nth 0 (nth 0 (list
(mapcan #'(lambda (e) (and (string-match "^TERM=" e) (list e)))
initial-environment))))))
(progn
(set-face-foreground 'mode-line "black")
(set-face-background 'mode-line "darkslategrey")
)
)
これでとりあえず、emacs の mode-lineが見える様にはなるのですが、emacsの
ターミナル設定の問題なのか screenの問題なのかは原因不明です。
# 普段は emacs -nw --color=never で使っているので全く気が付きませんでした。
なお、mode-line に指定している色については M-x list-colors-display で表示
される色の名前を設定しています。
とりあえず参考まで。
On 2023.03.30 11:24, 丸山直昌 wrote:
> 丸山です。
>
> screen の元ではTERM 環境変数の値は screen です。これは太古の昔からそうで
> した。私は
>
>> screen も emacs(前身の Nemacs も含めて)もかれこれ30年使っていますが、こ
>> んな経験は初めてです。最近まで使っていた10.2ではこんなことはありませんで
>> した。
>
> と書きましたが、具体的には、以下の環境で "screen"+"emacs -nw" を使って、
> これまでこの種の問題に遭遇することなく使えていたのです。
>
> SunOS4.1上のkterm
> FreeBSD1.1.5.1上のkterm
> FreeBSD2.2.6上のkterm
> FreeBSD4.4上のkterm
> FreeBSD4.7上のkterm
> FreeBSD5.5上のkterm
> FreeBSD6.4上のkterm
> FreeBSD7.4上のkterm
> FreeBSD9.1上のkonsole
> FreeBSD9.2上のkonsole
> FreeBSD9.2上のxfce-terminal
> FreeBSD10.2上のkonsole
> FreeBSD10.2上のxfce-terminal
>
> ただし、FreeBSD4.4 より前の3つについては、 emacs の日本語対応がない時代
> だったので、emacs の日本語化(多言語化)バージョンである mule で、mule -nw
> とやっていました。
>
> それが最近FreeBSD13.1に version up してみたら、この現象に遭遇したので、
> 私は「これは最近入り込んだバグだ」と申し上げているのです。最近10年間ほど
> は.screenrc はいじっていません。ただバグがscreenの termcap にあるのか、
> screen自体にあるのか、 emacs にあるのか、ncurses(3X)にあるのか、私には判
> 別がつきません。
>
> Wed, 29 Mar 2023 20:51:00 +0900
> Hajimu UMEMOTO <ume@mahoroba.org> writes:
>
>> 端末と screen 環境下の差は TERM 環境変数の値の違いによるものと思います。
>> Konsole は使ったことがないのでどのような値になるのかわかりませんが、
>
> 私はバグレポートのつもりで書いているので、実際に使ってみて検証してからリ
> プライして欲しかったです。
>
>> xterm あるいはそれに類するものになっていると思います。screen はデフォ
>> ルトでは screen になっています。
>> term コマンドで TERM を設定できます。例えば xterm と設定したいのであれば、
>>
>> term xterm
>>
>> と ~/.screenrc ファイルに書いておきます。
>
> これは、私の理解では
>
> env TERM=xterm emacs -nw
>
> とたいして変わりないと思いますが、やはりダメです。
>
>> 今時の端末なら、xterm-256color と指定したいかもしれません。
>>
>> TERM=screen でなぜモードラインが反転しないのかはわからないですが、おそ
>> らく emacs の設定によるのではないかと推測します。
>>
>> --
>> 梅本 肇
>> ume@mahoroba.org ume@FreeBSD.org
>> プログラムは書いた人の意図ではなく書かれた通り動く I hate Modula-3 :-)
>
> --------
> 丸山 直昌 まるやま なおまさ
> メールアドレス: masa@amogha.jp
>
--
草地 薫 (Kaoru Kusachi) tika@st.rim.or.jp
Nakno,Tokyo,Japan.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cacf0008-4277-6131-058c-af82c1d267ac>
