web-dev-qa-db-ja.com

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

--disable-termcapを使用してncursesを再コンパイルしました。次に、(ポートからではなく)tarballから直接emacsを再コンパイルしました。これは期待どおりに機能しました。従うべき道を教えてくれてありがとう、@ ThomasDickey :)

0
Rafael Gil

@Rafael Gilの提案に従ってemacsを再コンパイルしましたが、ncursesとemacsの両方にportsコレクションを使用しました。この問題の解決策をまだ探しているかもしれない人々の利益のために、これは私のために働いたものです:

  • いつものようにportsコレクションをフェッチして抽出しましたportsnap fetch extractなど
  • /usr/ports/devel/ncursesでMakefileを手動で編集し、CONFIGURE_ARGSを定義する23行目でハードコードされた--enable-termcap--disable-termcapに変更しました。これは、直接構成可能なオプションではなかったためです。
  • make install次にmake clean
  • /usr/ports/editors/emacsを使用してX11なしでコンパイルおよびインストールされたemacsをmake FLAVOR=nox install、次にmake cleanを使用
  • コンパイルされたxterm-24ビットterminfoファイルをユーザーのホームディレクトリではなく、共有システムファイルに追加する必要があることがわかりました。ホームディレクトリの定義。言い換えれば、FreeBSD12.1のSudo tic -x -s xterm-24bit.terminfoにエントリを書き込む/usr/local/share/misc/terminfo.dbを使用する必要がありました。
  • それを起動するために、私はenv TERM=xterm-24bit emacsclientのエイリアスを持っており、この質問の冒頭と同じterminfoをticを使用してインストールしました。

それは機能し、24ビットカラーになっているので、macOS上のiTermからsshを介してリモートFreeBSDシェルセッションでソラリゼーションされた暗いテーマと明るいテーマを使用できます。

これらすべてに対してもっと簡単な解決策があるのではないかと思います。更新などのたびにすべてを再コンパイルするのは好きではありません。コメントや提案をいただければ幸いです。ちなみに、これはすべて ソーラー化されたテーマに関連するこのGithubの問題 に関連しています。

0