Як зробити так, щоб 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.