Як зробити так, щоб emacsclient використовував різні теми в терміналі та вікні X?


7

Іноді я використовую emacsclient -t -a ''в xterm, а іноді використовую emacsclient -cяк GUI-додаток. Мене дратує те, що параметри шрифту та кольорова тема ініціалізуються при запуску сервера 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

ви праві, я включив важливі частини в цю посаду.
Шломі

Налаштування тем локальних кадрів здаються важкими. Але принаймні це працює частково для моєї проблеми. Дякую.
Hongxu Chen

1

Як згадується на https://www.emacswiki.org/emacs/CustomizingFaces

"Якщо вам потрібні різні кольорові схеми для різних дисплеїв, ви також можете налаштувати це. У налаштуванні буфера натисніть кнопку [Стан] і виберіть" Показати всі характеристики дисплея ". Тепер ви можете використовувати різні характеристики для різних дисплеїв."


0

Для мене головним чином був колір фону.

Ось мінімальний варіант, щоб налаштувати defaultколір тла обличчя до чорного, коли кадр є невеликим:

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

blackвідповідає лише тоді, коли відображається на tty256 кольорах або менше. За замовчуванням в якості кольору фону використовується особливий відтінок синього.

Ця ж техніка може бути використана і для всіх інших облич, не тільки для defaultобличчя.


Поясніть свою відповідь деякими подробицями. Як і те, що робить сценарій, це синтаксис і т.д.
Biswapriyo,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.