emacsclient가 터미널과 X 창에서 다른 테마를 사용하도록 만드는 방법은 무엇입니까?


7

때로는 emacsclient -t -a ''xterm에서 사용하고 때로는 emacsclient -cGUI 응용 프로그램으로 사용 합니다. 문제는 emacs 서버가 시작될 때 글꼴 설정과 색상 테마가 초기화되어 window-system테스트가 적용되지 않는다는 것입니다.

emacsclient가 얼굴 설정을 선택할 수 있도록 사용할 수있는 기능이 있습니까?

감사.

답변:


4

이 게시물 을 따르려고 하면 비슷한 문제에 대해 이야기하고 있습니다.

다음은 게시물의 스 니펫입니다 (나는 직접 시도하지 않았습니다).

  ;; last t is for NO-ENABLE
  (load-theme 'tango t t)
  (load-theme 'tango-dark t t)

  (defun mb/pick-color-theme (frame)
    (select-frame frame)
    (if (window-system frame)
        (progn  
          (disable-theme 'tango-dark) ; in case it was active
          (enable-theme 'tango))
      (progn  
        (disable-theme 'tango) ; in case it was active
        (enable-theme 'tango-dark))))
  (add-hook 'after-make-frame-functions 'mb/pick-color-theme)

  ;; For when started with emacs or emacs -nw rather than emacs --daemon
  (if window-system
      (enable-theme 'tango)
    (enable-theme 'tango-dark))

모든 것이 잘 진행되면 다음과 같아야합니다. 이


1
이 링크가 질문에 대답 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다.
gronostaj

당신이 옳습니다, 나는이 게시물에 중요한 부분을 포함했습니다.
Shlomi

프레임 로컬 테마 설정이 어려워 보입니다. 그러나 적어도 그것은 내 문제에 부분적으로 작동합니다. 감사.
Hongxu Chen

1

https://www.emacswiki.org/emacs/CustomizingFaces 에서 언급했듯이

"다른 디스플레이에 대해 다른 색 구성표를 원하는 경우이를 사용자 정의 할 수 있습니다. 사용자 정의 버퍼에서 [상태] 단추를 클릭하고"모든 디스플레이 사양 표시 "를 선택하십시오. 이제 다른 디스플레이에 대해 다른 사양을 사용할 수 있습니다."


0

나에게 주로 배경색이 문제였습니다.

프레임이 tty 일 때 default얼굴의 배경색을 검은 색으로 사용자 지정하는 최소한의 변형이 있습니다 .

(custom-set-faces
 '(default (
            (((type tty) (min-colors 256))
             (:background "black"))
            (t
             (:background "#181a26")))
    ))

blacktty256 색 이하로 표시 될 때만 일치 합니다. 기본적으로 특수한 파란색 음영이 배경색으로 사용됩니다.

얼굴뿐만 아니라 다른 모든 얼굴에도 동일한 기술을 사용할 수 있습니다 default.


몇 가지 세부 사항으로 답을 설명하십시오. 스크립트가하는 것과 마찬가지로, 구문 등입니다.
Biswapriyo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.