LINUX.ORG.RU

emacsclient, цвета в терминале


0

0

Хочу, чтобы при запуске emacsclient -t использовались цвета терминала. Я не использую color-theme, и не хочу использовать одну тему для X, а одну для терминала, хочу именно чтобы для терминала настройки цветов вообще не задавались.

То есть что-то вроде (if (window-system)(load-file «~/.emacs.d/faces.el»)), но это работает только при старте emacs, а не emacsclient.

★★

>То есть что-то вроде (if (window-system)(load-file «~/.emacs.d/faces.el»)), но это работает только при старте emacs, а не emacsclient.

emacsclient может выполнить любую функцию. Опция -e:

emacsclient -e "(if (window-system)(load-file «~/.emacs.d/faces.el»))"

Можешь функцию сделать, которая тебе нужна при старте в ~/.emacs и ее дергать.

Zubok ★★★★★
()

>То есть что-то вроде (if (window-system)(load-file «~/.emacs.d/faces.el»)), но это работает только при старте emacs, а не emacsclient.

Да, и это мне кажется слишком. Может, просто global-font-lock-mode врубать при старте иксовой версии, а при терминальной вырубать?

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Ну так faces.el уже загружены в емакс, к которому я подключаюсь.

volh ★★
() автор топика
Ответ на: комментарий от Zubok

>Может, просто global-font-lock-mode врубать при старте иксовой версии, а при терминальной вырубать?

Оно что-то не работает с бэкграундами, только для текста.

volh ★★
() автор топика

вообще, наблюдаю серую магию: export TERM=xterm-256color;emacsclient -t ./;killall emacsclient;export TERM=screen;emacsclient -t ./ и все становится хорошо. до команды фон серый, потом при 256color фон используется приближенный 8битный вариант цвета, последний запуск использует цвета терминала. блин.

volh ★★
() автор топика
Ответ на: комментарий от volh

Ну а если поменять фон при запуске emacsclient выставить (выполнить)? Скажем, set-face-attribute 'default [этот параметр в хелп глянь, что тебе надо] :background «какой-цвет»)

Zubok ★★★★★
()
Ответ на: комментарий от volh

>вообще, наблюдаю серую магию:

Я не думаю, что это магия. emacs пытается использовать цвета, близкие к тем, что установлены даже в терминале. Пусть даже терминал 16-цветный. Это может выглядеть ужасно, а может и нормально. у меня фон в иксах чуть-чуть синеватый такой (#103040), а терминальный emacs впендюривает синий фон, так как наиболее близок. Я раньше фон ставил в зависимости от (window-system), но потом вышел из ситуации по-другому: у меня все настройки цветов окна emacs (foreground, backgroun, основоной цвет фона) настроены в ~/.Xresources. Ясное дело, что терминальный emacs этого дела не видит. Так и живу уже долгое время. :)

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

так не получается, потому что бэкграунд у меня #F3F3D6, а в терминале он может максимум 256 цветами оперировать.

volh ★★
() автор топика
Ответ на: комментарий от volh

>так не получается, потому что бэкграунд у меня #F3F3D6, а в терминале он может максимум 256 цветами оперировать.

Ну так я и предлагаю его принудительно выставить для терминальной версии в какой-то понравившийся.

emacsclient -t -e "(when (not window-system) (set-face-attribute 'default (selected-frame) :background \«black\»))" FILE

P.S. не проверял, так как у меня Emacs 22. Там нет -t

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

ну, он и загружает клиент с черным бэкграундом. «default» задать не получается ,я уже пробовал.

Решил пока так:

(add-hook 'after-init-hook 'tty-color-clear)
(add-hook 'after-init-hook 'tty-set-up-initial-frame-faces)

То есть никаких цветов вообще, использует заданные для терминала bg и fg. Многоуровневое цитирование без цветовой раскраски не сильно удобно ( я для mutt настраиваю ), но пусть хоть так.

volh ★★
() автор топика
Ответ на: комментарий от Zubok

>у меня все настройки цветов окна emacs (foreground, backgroun, основоной цвет фона) настроены в ~/.Xresources. Ясное дело, что терминальный emacs этого дела не видит. Так и живу уже долгое время. :)

Да, наверное это тоже выход, спасибо, я не знал про управление через xresources чем-нибудь кроме параметров окна и шрифтов.

volh ★★
() автор топика
Ответ на: комментарий от volh

>ну, он и загружает клиент с черным бэкграундом. «default» задать не получается ,я уже пробовал.

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

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

В том и дело, что это один и тот же сложный цвет: URxvt.background: #F3F3D6

И когда я запускаю emacsclient,он апроксимируется до серого ( с умолчальным TERM=screen, или до желтого с screen-256color-s )

Вобщем спасибо за идею с Xresources, я и правда протормозил. Удалил в faces.el настройки фонов, добавил в .Xdefaults, все отлично.

volh ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.