Свое рабочее место все хотят сделать чуть лучше и удобнее чем оно идет из "Коробки". в данной инструкции можно быстро и без боли настроить Шелл-терминал ZSH, для лучшего отображения информации и при необходимости расширять его функционал плагинами. Попутно установим один из Kitty - мультиплексный терминал, который позволяет использовать вкладки и "окна" в работе. Используя его можно структурировать рабочее место легко и быстро. Плюсом данной инструкции будет то что вы получите свежие и стабильные версии некоторых пакетов, т.к. установку и сборку будем производить непосредственно из репозиториев.
Для начала обновим все пакеты, обращу внимание, разные строчки будут для разных дистрибутивов. (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
:
![](https://habrastorage.org/getpro/habr/upload_files/675/f60/177/675f601772b26449a9cab414bfd0fea9.png)
Сделаем скрипт исполняемым:
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
![](https://habrastorage.org/getpro/habr/upload_files/c98/b41/0ce/c98b410ce107aaa37a5542e4c628da65.png)
Для сохранения нажимаем Ctrl + X
и нажимаем Enter
Закрываем терминал.
Нажимаем ALT-F2 и набираем команду
kitty
Далее следуем инструкции по настройке нашей темы Powerlevel10k, все достаточно просто и прозрачно. для вашего удобства по шагам сделал снимки окошка:
![нас спрашивают видим ли мы ромб между стрелками нас спрашивают видим ли мы ромб между стрелками](https://habrastorage.org/getpro/habr/upload_files/483/d15/f91/483d15f91f0d1614f45ba0a7f7476c8d.png)
![виден ли замок между стрелками виден ли замок между стрелками](https://habrastorage.org/getpro/habr/upload_files/dc1/4e8/e25/dc14e8e25dc6d8065e66faac326ab180.png)
![спрашивают видим ли мы стрелку вверх, на этом шаге у меня получилось не верно, стрелки нет, посему нажал нет спрашивают видим ли мы стрелку вверх, на этом шаге у меня получилось не верно, стрелки нет, посему нажал нет](https://habrastorage.org/getpro/habr/upload_files/3e5/797/7eb/3e57977eb9425c0062c95416bdfad8f6.png)
![на следующем шаге стрелка появилась, продолжаем настройку на следующем шаге стрелка появилась, продолжаем настройку](https://habrastorage.org/getpro/habr/upload_files/ad2/00d/de5/ad200dde5a12d1825ee4e354b77d6b99.png)
![спрашивает на какую из цифр указывает зеленая стрелка вниз спрашивает на какую из цифр указывает зеленая стрелка вниз](https://habrastorage.org/getpro/habr/upload_files/93d/d31/e1a/93dd31e1a32edf6c8158b9e134715c12.png)
![интересуются нормально ли отображаются иконки вместе с текстом, не наезжают ли они на X крестики интересуются нормально ли отображаются иконки вместе с текстом, не наезжают ли они на X крестики](https://habrastorage.org/getpro/habr/upload_files/2b1/bd9/17c/2b1bd917c6b4036f8f192da07c480c62.png)
![выбираем то на что нам будет приятнее смотреть выбираем то на что нам будет приятнее смотреть](https://habrastorage.org/getpro/habr/upload_files/669/ba8/63c/669ba863cda17d9b2f374d37d7ed790a.png)
![так как предполагается использование русских символов, выбираем UNICODE так как предполагается использование русских символов, выбираем UNICODE](https://habrastorage.org/getpro/habr/upload_files/35f/02c/04c/35f02c04c59bb30a56d2c70a604cb34f.png)
![выбираем степень затемненности нашей информационной строки шела выбираем степень затемненности нашей информационной строки шела](https://habrastorage.org/getpro/habr/upload_files/ad6/0dd/9c5/ad60dd9c55c25a4265f878fae5d51314.png)
![выбираем нужно ли, и в каком формате, время в статусной строке терминала выбираем нужно ли, и в каком формате, время в статусной строке терминала](https://habrastorage.org/getpro/habr/upload_files/b0b/ecc/d7e/b0beccd7e3d90cb33a0af37b0081a589.png)
![как хотим разделять информацию в левой части панели как хотим разделять информацию в левой части панели](https://habrastorage.org/getpro/habr/upload_files/8dd/352/ebd/8dd352ebd28da3504d74d3e0e48d9c2f.png)
![какого типа будет "голова" левой части терминала какого типа будет "голова" левой части терминала](https://habrastorage.org/getpro/habr/upload_files/1d8/be5/cd3/1d8be5cd3de48965a1fe809e5ab64418.png)
![какой тип будет у "хвоста" левой части какой тип будет у "хвоста" левой части](https://habrastorage.org/getpro/habr/upload_files/144/f27/b35/144f27b35373f80175f21205febc68e3.png)
![выбираем в одну или две строки показывать статусную строку. по использованию могу лишь посоветовать 2 строки. т.к. информация о ветке в гите будет съедать много места и на "тело" командной строки останется совсем не много. а так во всю ширину будет возможность писать команды. выбираем в одну или две строки показывать статусную строку. по использованию могу лишь посоветовать 2 строки. т.к. информация о ветке в гите будет съедать много места и на "тело" командной строки останется совсем не много. а так во всю ширину будет возможность писать команды.](https://habrastorage.org/getpro/habr/upload_files/c28/18b/19f/c2818b19f1eb3f3755a52e711778513d.png)
![](https://habrastorage.org/getpro/habr/upload_files/2a3/711/886/2a371188673891efaf3bac17d2b71660.png)
![хотим ли мы визуально соединять левую и правую часть ифнормационной части терминала и каким способом хотим ли мы визуально соединять левую и правую часть ифнормационной части терминала и каким способом](https://habrastorage.org/getpro/habr/upload_files/05c/c00/917/05cc00917880acbb290837d8f6ba3600.png)
![нужны ли нам соединительные линии для двух строк одного пространства, коммандной строки и информационной панели нужны ли нам соединительные линии для двух строк одного пространства, коммандной строки и информационной панели](https://habrastorage.org/getpro/habr/upload_files/61b/2ee/36a/61b2ee36ab35853db84be65af0c8aca6.png)
![тоже на любителя, компактный вариант или с разделением в строку тоже на любителя, компактный вариант или с разделением в строку](https://habrastorage.org/getpro/habr/upload_files/05d/d00/4f2/05dd004f2b873e37d2444f9d32079bfb.png)
![вариант отображения иконок в статусной строке вариант отображения иконок в статусной строке](https://habrastorage.org/getpro/habr/upload_files/a64/489/f1e/a64489f1ef515ceb2cec097e7ea36550.png)
![здесь как вам больше нравится здесь как вам больше нравится](https://habrastorage.org/getpro/habr/upload_files/dd2/5c3/1ed/dd25c31eda1471cd1901ca88b7b6f04b.png)
![интересная опция с вариантом не перегружать последовательность комманд интересная опция с вариантом не перегружать последовательность комманд](https://habrastorage.org/getpro/habr/upload_files/0ef/f59/023/0eff590239439b6ecca2bd9c68cf6a2a.png)
![подтверждаем первым рекомендованным пунктом подтверждаем первым рекомендованным пунктом](https://habrastorage.org/getpro/habr/upload_files/889/2a3/ee0/8892a3ee0e9861fffd03771c8b275f2e.png)
![сохраняем настройки в нашем файле конфигурации zsh сохраняем настройки в нашем файле конфигурации zsh](https://habrastorage.org/getpro/habr/upload_files/d30/21f/403/d3021f403ac1ee18d6506f1375c62ec9.png)
![в результате получаем вот такой терминал, с легко читаемой информацией о состоянии и пути дериктории в которой работаем. в результате получаем вот такой терминал, с легко читаемой информацией о состоянии и пути дериктории в которой работаем.](https://habrastorage.org/getpro/habr/upload_files/382/3e1/663/3823e1663a46b29cc97245389a476dac.png)
Всем добра!
Комментарии (15)
DieSlogan
27.11.2023 22:19Следующим шагом будет установка antigen с кучей плагинов :)
aboyarinov Автор
27.11.2023 22:19мне того что есть в OhMyZsh хватает )) https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins
но благодарю за наводку )
Shaman_RSHU
27.11.2023 22:19+2Читать не стал. А почему fedora - это ubuntu подобный дистрибутив? Потому, что при установке далее...далее получается Gnome? :) Fedora RPM based, Ubuntu DEB based. Пакеты в федоре всегда посвежее....
aboyarinov Автор
27.11.2023 22:19знаки препинания хорошая штука. Федора, Минт и убунту подобные, для лучшего восприятия поменял заголовок
vtb_k
OhMyZsh ставить не нужно, лучше пакетным менеджером(например zinit) выкачать только нужные файлы. В корне оставить только
.zshenv
файл, а в немВ
~/.config/zsh
уже ставить и.zshrc
иaliases.zsh
/functions.zsh
или любую другую организацию файлов. Не стоит захламлять домашнюю директорию.Мой конфиг можно увидеть тут.
NN1
Можно подробнее ?
Чем плоха установка oh my zsh?
mrobespierre
Да всем плоха. Bloated, opinionated - вы платите ценой диких тормозов (оно в десятки раз тормознее zsh со своим конфигом) за функционал 90%+ которого вы скорее всего не используете. Лучше потратить один раз несколько часов на ручную настройку zsh, чем довериться постороннему человеку, который не разбирается.
Tuxozaur
Зачем тратить часы на настройку, когда можно поставить fish?
aboyarinov Автор
по данному пути что описал всего 10 минут от силы ) от скорости интернета больше зависит
vtb_k
Ниже уже ответили - скорость загрузки конечно же. Zinit менеджер например использует zsh-defer пакет, который отлаженно загружает модули один за другим. Поэтому строка приветствия загружается почти сразу.
aboyarinov Автор
пример настройки рассчитан на новичков, по мне самый простой способ сделать так как написано в посте. если вы хотите предложить другой вариант напишите свой пост и там предлагайте свои идеи ни кто же не против ) а использовать чужое пространство для поднятия своего статуса и рекламы в ссылках своих конфигов просто не культурно. будьте терпимее. не все такие умные как вы )
vtb_k
А что новичкам нужно именно неправильный способ предлагать? Что бы у них все тормозило и они вернулись на bash?
это вы серьёзно? Рекламы чего именно? Конфига?
Раз в статье вы привели неправильный способ, то нужно поделиться правильным. Не переживайте, мне за мои конфиги никто не платит))))
aboyarinov Автор
работаю на этом конфиге с такими настройками давно и тормозов не вижу вовсе. видимо сколько людей столько и мнений. а говорить что правильно а что нет... вы же не последняя инстанция? почему вы решаете что правильно а что нет? я предложил свой способ решить задачку. у вас свое мнение. а люди выберут сами
в репозитории инструкция по установке https://github.com/romkatv/powerlevel10k#installation для OhMyZsh вторая сверху, видимо разработчики не считают это не правильным, раз предлагают такой способ.
vtb_k
Отлично, главное чтобы был выбор