Как я могу использовать цветную тему в режиме консоли? - PullRequest
3 голосов
/ 09 ноября 2008

Я использую тему темно-синего цвета, но под консолью это выглядит ужасно. Поэтому я хочу использовать цветную тему в терминале, что я могу сделать тогда?

Ответы [ 4 ]

13 голосов
/ 10 ноября 2008

Чтобы быть немного короче этих парней, переменная window-system равна something, если вы находитесь в оконной системе, и nil, если вы в терминале, поэтому, если бы я хотел загрузить color-theme-darkblue2, у меня было бы:

(if window-system
    (progn
       (load "color-theme")
       (color-theme-darkblue2)))

, и он будет просто использовать цвета по умолчанию в терминале. Конечно, вы можете загрузить дружественную к теме тему в else-части, если хотите:

(load "color-theme")
(if window-system
     (color-theme-darkblue2)
   (some-term-theme)))
1 голос
/ 09 ноября 2008

Я использую это, что работает хорошо, потому что я использую multi-tty материал из Emacs CVS (будущее 23):

(defun mrc-xwin-look (frame)
  "Setup to use if running in an X window"
  (color-theme-deep-blue))

(defun mrc-terminal-look (frame)
  "Setup to use if running in a terminal"
  (color-theme-charcoal-black))

(defun mrc-setup-frame (frame)
  (set-variable 'color-theme-is-global nil)
  (select-frame frame)
  (cond
   ((window-system)
    (mrc-xwin-look frame)
    (tool-bar-mode -1)
    (mrc-maximize-frame))
   (t (mrc-terminal-look frame))))

(add-hook 'after-make-frame-functions 'mrc-setup-frame)

(add-hook 'after-init-hook
      (lambda ()
        (mrc-setup-frame (selected-frame))))

Он выбирает другую цветовую тему в зависимости от того, работает ли фрейм в консоли или в окне X. (Я не хочу терять цветовую подсветку синтаксиса в консоли.)

Кстати, максимизировать выглядит так:

(defun mrc-maximize-frame ()
  "Toggle frame maximized state"
  ;; from http://paste.lisp.org/display/54627/raw
  (interactive)
  (cond
   ((eq 'x (window-system))
    (progn
      (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
      (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))))
   (t
    (message "Window system %s is not supported by maximize"
         (symbol-name (window-system))))))
1 голос
/ 09 ноября 2008

Установите переменную "TERM", соответствующую монохромному терминалу перед запуском Emacs. Например, если вы находитесь в xterm, используйте:

TERM=xterm-mono emacs -nw

Если под «консолью» вы подразумеваете консоль Linux в текстовом режиме, вы можете попробовать использовать «vt100» (или «vt320»).

0 голосов
/ 28 августа 2014

Еще один простой, который я использую:

(when window-system
   (load-theme '<myThemeName>))

Так что это будет загружать тему во всех случаях, когда оконная система не ноль, что в основном является любым видом графического интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...