Emacs с поддержкой 24-битного терминала во FreeBSD

Я безуспешно пытаюсь включить поддержку 24-битной версии на терминале (через SSH) в своей установке FreeBSD 12.
Я попытался создать файл 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-битный цвет, и я использую этот режим через ssh на других моих машинах с Linux. Кто-нибудь использует 24-битные терминалы во FreeBSD?

0
16.04.2019, 21:20
2 ответа

Перекомпилирован ncurses с --отключением -termcap; Затем перекомпилировал emacs прямо из архива (, а не из портов ). Это сработало, как и ожидалось. Спасибо, @ThomasDickey, за указание мне пути:)

0
28.01.2020, 03:49

Я последовал предложениям @Rafael Gil по перекомпиляции emacs, однако я использовал коллекцию портов как для ncurses, так и для emacs. Для тех, кто, возможно, все еще ищет решение этой проблемы, это то, что сработало для меня:

  • Получение и извлечение коллекции портов как обычно portsnap fetch extractи т. д.
  • В /usr/ports/devel/ncursesвручную отредактировал Makefile, строка 23, которая определяет CONFIGURE_ARGSизменение жестко заданного --enable-termcapна --disable-termcap, так как это не было настраиваемым параметром напрямую
  • make installзатемmake clean
  • Используя /usr/ports/editors/emacsскомпилированный и установленный emacs без X11, используя make FLAVOR=nox install, затемmake clean
  • Я счел необходимым добавить скомпилированный xterm -24-битный файл terminfo в общий системный файл, а не в домашний каталог пользователя — утилиты, включая emacs, не видят определение в домашнем каталоге. Другими словами, мне пришлось использовать sudo tic -x -s xterm-24bit.terminfo, который записывает записи в /usr/local/share/misc/terminfo.dbна моем FreeBSD 12.1.
  • Чтобы запустить его, у меня есть псевдоним env TERM=xterm-24bit emacsclient, и я установил тот же термин, используя tic, что и в начале этого вопроса.

Это работает, и теперь у меня 24-битный цвет, поэтому я могу использовать солнечную -темную и светлую темы в удаленном сеансе оболочки FreeBSD через ssh из iTerm на macOS.

Интересно, есть ли более простое решение для всего этого — я не хочу перекомпилировать все это при каждом обновлении и т. д. Буду признателен за любые комментарии или предложения. Кстати, это все связано с этой проблемой Github, связанной с соляризованной темой .

2
09.02.2020, 14:44

Теги

Похожие вопросы