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에게 감사드립니다 :)

관련 정보