Как получить цвет фона в Emacs?

В Emacs нет оконного режима, фон автоматически совпадает с терминалом (гном-терминал). Когда я смотрю (frame-parameters) я вижу это (background-color . "unspecified-bg") . Ну, для меня фон бывает черным. Есть ли способ узнать, каков фактический цвет фона для сеанса Emacs?

  • Emacs: ошибка при вызове функции в hook
  • Использование scp с пересылаемым агентом ssh
  • Обновление Ruby не работает с использованием двух методов
  • Как временно сделать область сообщений Weechat «полной шириной», как irssi?
  • `(kill-line 0)` убивает физическую линию даже в режиме глобальной визуальной линии в Emacs
  • комбинировать поиск с другими командами: когда использовать -exec и когда использовать трубу?
  • xclip работает по-разному в интерактивных и неинтерактивных оболочках
  • Добавление вертикального пространства после команды в bash
  • Неожиданно нельзя открыть какой-либо терминал на Linux Mint
  • Хороший учебник GNU / Emacs
  • Emacs text-scale-adjust вызывает столбцы строк, чтобы постепенно сжиматься и исчезать
  • Почему атрибуты терминала отличаются друг от друга?
  • One Solution collect form web for “Как получить цвет фона в Emacs?”

    Если вы знаете, как узнать из терминала, вы можете использовать эту команду, чтобы узнать из Emacs.

    В моем случае я бы сделал такой скрипт:

     #!/bin/zsh cat .Xresources | grep 'URxvt\*background\:' | cut -d" " -f2 

    (Примечание: -d – установить разделитель полей, -f – установить, какое поле должно быть показано: первое поле равно 1 , а не 0 )

    Команда выглядит так, как это делается, потому что .Xresources , файл, который устанавливает цвет фона, выглядит следующим образом:

     # ... URxvt*background: black # ... 

    Сделайте исполняемый файл сценария ( chmod +x ) и поместите его в свой PATH ( echo $PATH ).

    Если скрипт называется what_bg , в Emacs, Mx shell-command RET what_bg .

    Изменить (в ответ на комментарий):

    Посмотрите, работает ли это. Я тестировал его у Emacs и в urxvt, xterm и rxvt. Хотя он более переносимый, чем первый скрипт, он предполагает конфигурацию .Xresources (которая, хотя и не редкость, очевидно, не везде).

    Но я начинаю удивляться, зачем вам это нужно?

    И если вам это действительно нужно, не можете ли вы просто посмотреть в окне, чтобы определить его цвет?

    Во всяком случае, скрипт:

     #!/bin/zsh terminal_emulator_parents=`pstree -As $$` tep_list=`echo $terminal_emulator_parents | tr -s "-" | tr "-" " " \ | tac -s' ' | tr '\n' ' '` found="false" for process in `echo $tep_list`; do if [[ $process =~ ("urxvt"|"xterm"|"rxvt") ]]; then # here: add all found="true" # terminal emulators break # configurable fi # (and *configured*) done # in ~/.Xresources if [[ $found == "true" ]]; then echo -n "$process: " cat ~/.Xresources | grep -ie ^$process'\*background\:' \ | tr -s " " | cut -d" " -f2 else echo "Couldn't determine the terminal emulator." fi 
    Linux и Unix - лучшая ОС в мире.