Popstas

Записки о Linux

1 May 2018, 08:20 - 3 мин читать

Настройка Gnome Terminal: Solarized Dark и быстрый выбор профиля

Ниже будет описана настройка Solarized Dark, быстрого открытия терминала с нужным профилем и история бага во встроенной схеме.

Настройка цветовой схемы

Параметры - Цвета:

  • Цвет текста и фона: Solarized темная
  • Палитра: Solarized
  • Я еще убираю Использовать настройки прозрачности из системной темы

Не повторяйте моей ошибки! Я несколько лет не обращал внимание на схему палитры, не знал, что в gnome-terminal цветовая схема состоит из двух схем и выбирал только первую, из-за этого потерял много времени (об этом ниже).

Быстрый выбор профиля через fzf

Gist - https://gist.github.com/popstas/deecce960a44368cff7da33f6c8583a8

list_terms (){
    uuids=$(gsettings get org.gnome.Terminal.ProfilesList list | tr -d \' | tr -d \[ | tr -d \] | tr -d ,)
    for uuid in $(echo $uuids); do
        gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:${uuid}/ visible-name | tr -d \'
    done
}

select_term (){
    selected="$(list_terms | sort -n | fzf)"
    if [ -n "$selected" ]; then
        gnome-terminal --window-with-profile="$selected"
    fi
}

zle -N select_term
bindkey ^n select_term

Этот код можно вставить в ваш ~/.zshrc, после этого по Ctrl+N будет открываться фильтр профилей, после выбора будет открываться окно терминала. Если предпочитаете во вкладке, надо заменить --window-with-profile на --tab-with-profile.

Как я 2 часа заводил баг, которого не было

Все, что ниже, не относится к делу и появилось в результате моей невнимательности.

Первым делом я меняю в терминале шрифт на Powerline Fonts и цвета на Solarized Dark. Шрифты довольно маргинальные, поэтому тут нет вопросов: скачал поставил, шрифты универсальные и встают на любой терминал. С цветовыми схемами сложнее, тут они у каждого свои, зато Solarized - самая популярная схема, что упрощает задачу. В Gnome Terminal она уже есть, я ее радостно поставил и обнаружил, что она неправильная, цвета не те.

Решается это просто, если вы еще не успели наплодить профилей, качаем тру схему и ставим:

git clone https://github.com/Anthony25/gnome-terminal-colors-solarized.git
cd gnome-terminal-colors-solarized
./install.sh -s dark

Очень странно, что этого нет из коробки, я, избалованный PR на Github, подумал, что наверное прогресс уже дошел до Gnome, нашел репозиторий gnome-terminal на github и даже PR про это, но оказалось, что у Gnome там работает робот, который закрывает все запросы и посылает на gitlab, где ведется разработка. Я пошел туда и там gnome-terminal не нашел. Тогда я узнал, что как раз сейчас идет переезд с Bugzilla на Gitlab, и до этого проекта еще не дошли. Ок, пошел в Bugzilla создавать баг и наткнулся на интересный FAQ, который надо прочитать перед созданием ишью - https://wiki.gnome.org/Apps/Terminal/FAQ. Из него я узнал то, что давно (целый день) хотел узнать: как получить список профилей. Через 20 минут у меня появился выбор терминала по хоткею (зависит от gsettings и fzf).

После этого продолжил заводить ишью, прочитал все гайды, после чего наткнулся на очередной посыл подальше:

If you’re a developer of GNOME Terminal, VTE, or GNOME in general, you can file the bug in GNOME’s bugzilla. In all other cases, you should file the bug against your Linux distribution’s bug tracker; see here for a list of distribution bug trackers. The distribution bug triagers will then gather all the necessary information and confirmation before forwarding the bug to our bugzilla, if necessary.

Ок… Я уже слишком далеко зашел, чтобы останавливаться ) Пошел на https://bugs.launchpad.net/ubuntu, там все свалено в кучу и инструкция по заведению бага намного больше, чем на gnome-terminal, странный способ Gnome выбрал, чтобы облегчить себе жить. Ладно, нашел, что подобные баги надо заводить так: ubuntu-bug gnome-terminal.

В итоге я завел баг - https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1768178, возможно, я что-то не понимаю или плохо искал, но неправильная схема добавлена в терминал в начале 2014, и я не нашел ни одного бага про solarized ни на gnome, ни на launchpad. Конечно, я что-то не понимал, никакого глюка не было, спасибо Egmont Koblinger, который попросил меня внимательно все перепроверить.

Статья из цикла “Переезд на Ubuntu 18.04”.