Настройка ZSH в Fedora, Linux Mint и других ubuntu подобных дистрибутивах
Свое рабочее место все хотят сделать чуть лучше и удобнее чем оно идет из «Коробки». в данной инструкции можно быстро и без боли настроить Шелл-терминал ZSH, для лучшего отображения информации и при необходимости расширять его функционал плагинами. Попутно установим один из терминалов Kitty который позволяет использовать вкладки и «окна» в работе. Используя его можно структурировать рабочее место легко и быстро. Плюсом данной инструкции будет то что вы получите свежие и стабильные версии NeoVim и некоторых пакетов, т.к. установку и сборку будем производить непосредственно из репозиториев.
Для начала обновим все пакеты, обращу внимание, разные строчки будут для разных дистрибутивов. (Ubuntu и Ubuntu подобные дистрибутивы типа Linux Mint и т.п. будем писать Ubuntu для краткости):
Ubuntu: sudo apt update
Fedora: sudo dnf update
Установим Git для скачивания пакетов. (если у вас он установлен, можно шаг пропустить):
Ubuntu: sudo apt install git
Fedora: sudo dnf install git
Далее устанавливаем терминал Kitty, установим его из репозиториев самих систем. информацию о самом терминале, горячих клавишах можно почитать здесь (https://sw.kovidgoyal.net/kitty/):
Ubuntu: sudo apt install kitty
Fedora: sudo dnf install kitty
Пришло время установить сам Шелл ZSH
Ubuntu: sudo apt install zsh
Fedora: sudo dnf install zsh
На всякий случай, создадим файл конфигурации если он не создался при установке:
touch ~/.zshrc
Назначим zsh коммандной оболочкой (шелл) по умолчанию в нашей системе, в зависимости от ваших настроек в системе, может понадобиться ввести пароль для смены шелла:
chsh -s $(which zsh)
Для возможности установки дополнительных плагинов и «прокачивания» ZSH установим для него фреймворк OhMyZsh информацию о нем можно почитать здесь (https://ohmyz.sh/)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
для дальнейшей установки, дабы не мусорить в своих каталогах, создадим в корне профиля папку tmp
cd ~/ && mkdir tmp && cd tmp
Скачиваем скрипты из моего репозитория, в нем можно найти рабочие настройки для различных используемых в работе приложений.таких как (i3 — тайловый менеджер, polybar, helix — редактор кода, wezterm — мультиплексный терминал, picom — красивости для оконного менеджера, nvim — редактор кода, kitty — мультиплексный терминал), конкретно нас нитересует скрипт установки необходимых шрифтов:
git clone https://github.com/apilot/dotfiles.git
cd ~/tmp/dotfiles
Выбираем шрифты которые хотим установить. основные шрифты уже выбраны. если необходимо можно убрать комментарий перед наименованием шрифта в списке или закомментировать те что не нужны. в любом случае в последствии вы можете потом удалить лишнее из самой папки ~/.local/share/fonts
:
сделаем скрипт исполняемым:
chmod +x ./fonts_install.sh
запускаем его:
./font_install.sh
далее установим тему с менеджером для ее «тонкой» настройки:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Необходимо отредактировать файл ~/.zshrc
, заменить значение ключа ZSH_THEME на : ZSH_THEME="powerlevel10k/powerlevel10k"
запускаем редактор:
nano ~/.zshrc
для сохранения нажимаем Ctrl + X
и нажимаем Enter
закрываем терминал
нажимаем ALT-F2 и набираем команду
kitty
далее следуем инструкции по настройке нашей темы Powerlevel10k, все достаточно просто и прозрачно. для вашего удобства по шагам сделал снимки окошка:
нас спрашивают видим ли мы ромб между стрелками
виден ли замок между стрелками
спрашивают видим ли мы стрелку вверх, на этом шаге у меня получилось не верно, стрелки нет, посему нажал нет
на следующем шаге стрелка появилась, продолжаем настройку
спрашивает на какую из цифр указывает зеленая стрелка вниз
интересуются нормально ли отображаются иконки вместе с текстом, не наезжают ли они на X крестики
выбираем то на что нам будет приятнее смотреть
так как предполагается использование русских символов, выбираем UNICODE
выбираем степень затемненности нашей информационной строки шела
выбираем нужно ли, и в каком формате, время в статусной строке терминала
как хотим разделять информацию в левой части панели
какого типа будет «голова» левой части терминала
какой тип будет у «хвоста» левой части
выбираем в одну или две строки показывать статусную строку. по использованию могу лишь посоветовать 2 строки. т.к. информация о ветке в гите будет съедать много места и на «тело» командной строки останется совсем не много., а так во всю ширину будет возможность писать команды.
хотим ли мы визуально соединять левую и правую часть ифнормационной части терминала и каким способом
нужны ли нам соединительные линии для двух строк одного пространства, коммандной строки и информационной панели
тоже на любителя, компактный вариант или с разделением в строку
вариант отображения иконок в статусной строке
здесь как вам больше нравится
интересная опция с вариантом не перегружать последовательность комманд
подтверждаем первым рекомендованным пунктом
сохраняем настройки в нашем файле конфигурации zsh
в результате получаем вот такой терминал, с легко читаемой информацией о состоянии и пути дериктории в которой работаем.
Всем добра!