草地 樣

丸山です。有難うございます。

Thu, 30 Mar 2023 18:46:11 +0900
Kaoru Kusachi <t...@st.rim.or.jp> writes:

>草地@リムネットと申します。
>
>普段は FreeBSDをデスクトップ環境として使ってはいないのですが、少し古い手元で
>動くデスクトップ環境 (FreeBSD 11.4 + xorg 7.7 + xfce4-wm 4.16 + emacs 27.2 +
>screen 4.8.0) で確認すると xfce-terminal で screen を起動して emacs -nw を実
>行すると同じ様にモードラインの表示が見えなくなると言う現象は確認出来ました。

11 からでしたか。

>更に調べてみるとどうも普通にターミナル内で emacs -nw で起動した場合と screen
>内で実行した場合ではどうも emacs のカラーマップが変わってしまう様でモードライ
>ンの background colorと foreground colorが同じになってしまって見えない状態に
>なっている様です。

ということは、 emacs の問題と言えそうですね。カラーマップ、ということな
ので、env TERM=vt100-color emacs -nw とやってみると、この場合もモードラ
インは見えませんね。

>とりあえず、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 で表示
>される色の名前を設定しています。
>
>とりあえず参考まで。

はい、参考になります。勉強になりました。有難うございました。

--------
丸山 直昌 まるやま なおまさ
メールアドレス: m...@amogha.jp

Reply via email to