Переезжая с рабочего окружения на новое в какой-то момент я устал от постоянной настройки консоли, где-то торопишься и забываешь что-то установить, где-то забываешь «как оно работало». В идеальности, можно автоматизировать процесс использовав всякие утилиты типа «dotfiles» или Ansible. Но нет ничего надежнее простой и понятной инструкции в том числе и для тех, кто пробует настроить консоль для себя в первый раз.
В любом случае, для тех кто не хочет разбираться я предлагаю способ с ansible, все что нужно — чтобы он был у вас установлен. Установка одной командой:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/sandzhaj/zsh_p10k/main/install.sh)"
Скрипт вам даже автоматически настроит нужные шрифты в приложениях Tilix, Gnome Terminal.
Более подробно про данный модуль можно почитать в readme.
Установка вручную
1. zsh + fzf
sudo apt install zsh fzf
Если с zsh всё понятно, то fzf — удобная утилита, которая сделает там крутой поиск по истории и удобный tab, когда плагины подключим
2. oh-my-sh
По сути это набор всяких плюшек и плагинов
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Во время работы скрипта на вопрос Do you want to change your default shell to zsh? [Y/n] — отвечаем Y
3. zgen
Для того, чтобы плагины, которые не входят в oh-my-zsh, мы могли не вручную устанавливать, а делали это удобно — ставим менеджер плагинов. Его настройкой займемся чуть позже, пока просто ставим. В нашем примере это zgen.
git clone https://github.com/tarjoilija/zgen.git "${HOME}/.zgen"
4. Шрифты (если хотим красивую тему):
Качаем и ставим эти шрифты. MesloLGS NF Regular, MesloLGS NF Bold, MesloLGS NF Italic, MesloLGS NF Bold Italic. Потом в вашем терминале нужно будет выбрать его как шрифт для консольного текста. (MesloLGS NF Regular). Это позволит обеспечить правильное отображение темы без багов
5. Настройка ~/.zshrc
Предпоследний шаг — указать в нашем конфиге параметры для zgen менеджера вместе с плагинами, которые мы хотим видеть:
Где-нибудь вверху добавляем строчку
source "${HOME}/.zgen/zgen.zsh"
И чуть ниже
# if the init script doesn't exist
if ! zgen saved; then
# Ваш список плагинов
zgen oh-my-zsh
zgen oh-my-zsh plugins/git
zgen oh-my-zsh plugins/sudo
zgen oh-my-zsh plugins/docker
zgen oh-my-zsh plugins/docker-compose
zgen oh-my-zsh plugins/command-not-found
zgen load romkatv/powerlevel10k powerlevel10k
zgen load urbainvaes/fzf-marks
zgen load Aloxaf/fzf-tab
zgen load zsh-users/zsh-autosuggestions
zgen load zsh-users/zsh-syntax-highlighting
zgen load joshskidmore/zsh-fzf-history-search
zgen load chr-fritz/docker-completion.zshplugin
zgen save
fi
Можно спокойно сохранять файл, перезайти в консоль и вас встретит последний, 6 пункт.
Комментарии по плагинам из списка:
- zgen oh-my-zsh — базовые модули и функции для работы oh-my-zsh плагинов. Их много ещё есть. Какие и что они делают можно у них и почитать
- Всё что начинается с
zgen oh-my-zsh plugins/
— это локальные плагины, которые мы скачали вместе с oh-my-zsh - Всё что начинается с
zgen load
— это плагины, которые будут скачаны с гитхаба, где Aloxaf — имя пользователя, а fzf-tab — его репа. -
urbainvaes/fzf-marks
Удобные закладки директорий в консоли. Зайдите в нужные вам директории, введите команду mark и директория будет добавлена в закладки. Вызвать список закладок можно сочетанием ctrl+g Aloxaf/fzf-tab
Удобный таб. Например вам нужно ввести команду но вы помните из неё пару букв. Я начинаю писать s, нажимаю на tab,и дописываю буквы, даже если они в другой последовательностиjoshskidmore/zsh-fzf-history-search
Удобный поиск по истории так же позволяет искать разные сочетания. Поиск по дефолтной комбинации ctrl + rzsh-users/zsh-autosuggestions
Предлагает во время ввода команды автоматом из истории (стрелкой вправо допишет предлагаемое):romkatv/powerlevel10k powerlevel10k
Тема командной строкиzsh-users/zsh-syntax-highlighting
Подсветка синтаксиса в консоли-
hr-fritz/docker-completion.zshplugin
Обращается к докеру когда мы делаем tab. Например, пишем docker rmi, нажимаем на tab и можно выбрать образ который хотим удалить, вместо того чтобы вспоминать его имя или айдишник.Если потом хотите добавить другой плагин, нужно сделать сброс кэша, после правки \~/.zshrc — запустите команду zgen reset и перезайдите в консоль.
6. Настройка внешнего вида powerlevel10k
Просто перезайдите в консоль. Вас встретит мастер настройки powerlevel10k. Он будет визуально предлагать разные варианты внешнего вида отдельных компонентов, просто отвечайте на вопросы. Первые пару вопросов будут в стиле "правда, что этот символ похож на ромб?" Если вы ставили шрифты в пункте 4.1, то символ будет действительно выглядеть как ромб, отвечаем да. Если вы шрифты не ставили, можно ответить нет и использовать powerlevel10k без значков