Как получить текущий профиль терминала GNOME?

Я знаю о gsettings и dconf, но я не могу найти упоминание об активном профиле. Кажется, что можно только перечислить профили, не зная то, что является текущим профилем.

Я хочу запросить цвет фона для установки знаний в Vim соответственно.

3
задан 4 March 2017 в 23:17

1 ответ

Вопрос был изменен в комментариях: Как получить цвет фона? Для этого, команды xtermcontrol --get-bg может использоваться.

Эта конкретная команда полагается на эмулятор терминала, поддерживающий escape-последовательность OSC 11, которая обычно сочетается с OSC 12 (передний план; xtermcontrol --get-fg), OSC 4 (цвета палитры; xtermcontrol --get-color0 .. --get-color15) и немногие другие. Некоторые популярные эмуляторы терминала реализуют их, некоторые другие популярные не делают, таким образом, эти команды не работают везде. Виджет VTE и следовательно в свою очередь основанные на VTE эмуляторы терминала такой как gnome-terminal действительно поддерживайте их.

Эти escape-последовательности довольно хитры, когда они используются для запросов цветов вместо того, чтобы установить их: ответ введен эмулятором терминала точно, как будто он прибыл из клавиатуры, то есть, как будто пользователь ввел его. xtermcontrol чтения этот вход и затем печатают, как произведено, скрывая эту техническую деталь. (И если Вы действительно хотите, можно одурачить xtermcontrol сообщить о неправильном ответе путем ручного ввода один с клавиатуры, ха-ха.)


Назад к исходному вопросу:

Нет никакого способа запросить текущий профиль в терминале гнома. Почему?

  • Чтение gsettings или dconf не может работать по двум причинам:

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

    2. Они могут только работать локально, не через, например, a su или ssh.

  • терминал гнома мог инициализировать переменную среды, когда окно или вкладка открыто, но нет никакого способа обновить его впоследствии, если профиль изменяется. (См. также дискуссию о $COLORFGBG в https://bugzilla.gnome.org/show_bug.cgi? id=733423.)

  • Это могло сообщить о текущем профиле как об ответе на некоторую escape-последовательность, как будто пользователь ввел его с клавиатуры (так же к вышеупомянутому OSC 4, 10, 11). Однако нет никакого стандарта для этого, и это даже имело бы последствия безопасности (см. https://bugzilla.gnome.org/show_bug.cgi? id=151260), плюс, по-видимому, никакая поддержка в xtermcontrol утилита на много лет вперед (heck это еще даже не поддерживает 256 цветов).

4
ответ дан 1 December 2019 в 15:51

Другие вопросы по тегам:

Похожие вопросы: