Добавляем функциональность
Командная оболочка
Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?
- Продвинутая механика автодополнения команд по нажатию <Tab> или <Arrow Up>. В отличие от Bash, вам не нужно это настраивать, все работает на высшем уровне прямо из коробки.
- Множество готовых тем, модулей, плагинов и прочего. Настраиваемость через фреймворки (oh-my-zsh, prezto и др.), которые значительно расширяют возможности кастомизации и улучшения терминала. Опять же, всего этого можно добиться и в Bash, но для Zsh масса уже готовых материалов. Для Bash их значительно меньше, а некоторых вовсе нет.
Это основные причины, по которым я перешел с Bash на Zsh. Помимо этого, Zsh имеет много других плюшек.
Настройка Zsh
Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):
sudo apt install zsh
Когда вам предложат установить Zsh как оболочка по-умолчанию, нажмите
Y
, чтоб подтвердить.Oh-My-Zsh популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
zsh: command not found: curl
Установите
curl
:
sudo apt install curl
Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды выделяться цветом, отличным от обычного текста. Установим плагин
zsh-syntax-highlighting
:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
zsh: command not found: git
Установите git:
sudo apt install git
Чтоб плагин заработал, его надо подключить.
В файле
~/.zshrc
меняем строку с
plugins=
:
plugins=(git zsh-syntax-highlighting)
Если такой строки нет добавьте её.
Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.
Настраиваем внешний вид
Устанавливаем тему PowerLevel10K:
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
Скачиваем и добавляем в систему шрифт
JetBrains Mono
Nerd
(c иконками):Выберитеодин из списка, в папке
шрифт/complete
выберите шрифт
без Windows Compatible, с окончанием Mono.Подключаем шрифт и тему.
Редактируем
~/.zshrc
.Если в файле эти строки уже есть замените их.
-
ZSH_THEME="powerlevel10k/powerlevel10k"
-
POWERLEVEL9K_MODE="nerdfont-complete"
Цвета. Важная часть оформления терминала цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:
[colors]# specialforeground = #e6e6e6foreground_bold = #e6e6e6cursor = #fffbackground = #000# blackcolor0 = #75715ecolor8 = #272822# redcolor1 = #f92672color9 = #f92672# greencolor2 = #a6e22ecolor10 = #a6e22e# yellowcolor3 = #434648color11 = #7ea35f# bluecolor4 = #66d9efcolor12 = #66d9ef# magentacolor5 = #ae81ffcolor13 = #ae81ff# cyancolor6 = #adb3b9color14 = #62ab9d# whitecolor7 = #2AA198color15 = #2AA198
В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy
Запускаем конфигурацию темы:
p10k configure
.Настройте тему, выбирая варианты отображения, которые вам больше нравятся.
Финальный штрих меняем конфиг темы и заменяем встроенные цвета.
Редактируем файл
~/.p10k.zsh
.Если в файле эти строки уже есть замените их. Коды цветов можно получить командой
for i in {0..255}; do print -Pn \"%K{$i} %k%F{$i}${(l:3::0:)i}%f \" ${${(M)$((i%6)):#3}:+$'\n'}; done
- Отображение только текущей директории:
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last
- Фон блока с директорией:
typeset -g POWERLEVEL9K_DIR_BACKGROUND=33
- Цвета стрелок:
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2
и
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1
- Фон ветки Git:
typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=15
Источники
Документация PowerLevel10K
Онлайн дизайнер цветовых схем терминала
Различия между Bash и Zsh