FreeBSDで24ビット端末をサポートするEmacs

FreeBSDで24ビット端末をサポートするEmacs

FreeBSD 12インストール端末でSSHを介して24ビットサポートを有効にしようとして失敗しました。
次の内容でterminfoファイルを作成してみました。

xterm-24bit|xterm with 24-bit direct color mode,
   use=xterm-256color,
   sitm=\E[3m,
   ritm=\E[23m,
   setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
   setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,

次に、次のコマンドを実行します(ncursesのインストール後):

$ tic -x -o ~/.terminfo xterm-24bit.terminfo

ただし、emacsを実行しようとすると、次の結果が表示されます。

emacs: Cannot open terminfo database file

infocmp -Crだから私は以下を実行してtermcapバージョンを作成し、データベースを更新してみました。

# cap_mkdb /usr/share/misc/termcap

ほとんど働いた。 emacsは開きますが、白黒でのみ開きます。

私の端末は24ビットカラーをサポートしており、他のLinuxシステムではSSH経由でこのモードを使用しています。 FreeBSDで24ビット端末を使用している人はいますか?

答え1

@Rafael Gilが提案したようにemacsを再コンパイルしましたが、ncursesとemacsのポートコレクションを使用しました。それでもこの問題に対する解決策を探している人にとっては、この方法は私にとって効果的でした。

  • いつものようにポートコレクションportsnap fetch extractなどをインポートして抽出します。
  • /usr/ports/devel/ncurses手動で編集したMakefileの23行目は、CONFIGURE_ARGSハードコードされた項目を変更することを--enable-termcap定義します--disable-termcap。これは、自分で設定できるオプションではないからです。
  • make installそれからmake clean
  • X11なしでコンパイル/usr/ports/editors/emacsおよびインストールされたemacsを使用するmake FLAVOR=nox installmake clean
  • コンパイルされたxterm-24bit terminfoファイルを共有に追加する必要があることがわかりました。システムまず、ユーザーのホームディレクトリの代わりに-emacsを含むユーティリティは、ホームディレクトリの定義を見ることができません。つまり、FreeBSD 12.1にsudo tic -x -s xterm-24bit.terminfoエントリを作成するにはそれを使用する必要があります。/usr/local/share/misc/terminfo.db
  • 始めるために別名があり、env TERM=xterm-24bit emacsclientこの質問の上部にある同じterminfoを使用して同じterminfoをインストールしました。tic

機能し、24ビットカラーがあるので、macOSのiTermでsshを介してリモートFreeBSDシェルセッションでソーラーテーマを使用できるようになりました。

これらすべてのためのより簡単な解決策があるかどうか疑問に思います。すべての更新などを再コンパイルするのは好きではありません。どんな意見や提案でも大変感謝いたします。ちなみに、これらすべては以下に関連していますこのGithubの問題はSolarizedトピックに関連しています。

答え2

--disable-termcapを使用してncursesを再コンパイルし、(ポートではなく)tarballから直接emacsを再コンパイルすると、期待どおりに機能します。私に従うべき道を示した@ThomasDickeyに感謝します:)

関連情報