Робимо Linux термінал гарним та зручним

Всі дистрибутиви Linux поставляються з функціональним і кастомізованим емулятором терміналу. В інтернеті, а часом навіть у самому терміналі, є безліч готових тим, щоб він красиво виглядав. Однак, щоб зробити зі стандартного терміналу (у будь-якому DE, будь-якого дистрибутива) щось гарне і водночас зручне та просте у використанні я витратив багато часу. Отже, як зробити дефолтний термінал зручним і приємним у використанні?

Додаємо функціональність

Командна оболонка

Більшість дистрибутивів поставляється із вбудованим Bash. Використовуючи доповнення можна зробити з нього все, що захочете, але набагато простіше цього досягти з Zsh. Чому?

  • Просунута механіка автодоповнення команд із натискання або . На відміну від Bash, вам не потрібно це налаштовувати, все працює на найвищому рівні прямо з коробки.
  • Безліч готових тем, модулів, плагінів та іншого. Налаштовуваність через фреймворки (oh-my-zsh, prezto та ін.), які значно розширюють можливості кастомізації та покращення терміналу. Знову ж таки, всього цього можна досягти і в Bash, але для Zsh маса вже готових матеріалів. Для Bash їх значно менше, а декого зовсім немає.

Це основні причини, через які я перейшов з Bash на Zsh. Крім цього, Zsh має багато інших "плюшок".

Налаштування Zsh

Для початку, встановимо Zsh (якщо він вже встановлений, наприклад, як Manjaro, можете пропустити цей пункт):

sudo apt install zsh

Коли вам запропонують встановити Zsh як оболонка за замовчуванням, натисніть Y, Щоб підтвердити.

О-My-ЗШ — популярний фреймворк 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 (з іконками):
Виберіть один з списку, в папці шрифт/complete виберіть шрифт без "Windows Compatible", із закінченням "Mono".

Підключаємо шрифт та тему.

Редагуємо ~/.zshrc.

Якщо у файлі ці рядки вже є, замініть їх.

  • ZSH_THEME="powerlevel10k/powerlevel10k"
  • POWERLEVEL9K_MODE="nerdfont-complete"

Кольори. Важлива частина оформлення терміналу – колірна схема. Я перебрав багато різних схем, редагував їх, зупинився на Monokai Dark. Не ріже очі, але при цьому приємна та яскрава. Список квітів:

[colors]

# special
foreground      = #e6e6e6
foreground_bold = #e6e6e6
cursor          = #fff
background      = #000

# black
color0  = #75715e
color8  = #272822

# red
color1  = #f92672
color9  = #f92672

# green
color2  = #a6e22e
color10 = #a6e22e

# yellow
color3  = #434648
color11 = #7ea35f

# blue
color4  = #66d9ef
color12 = #66d9ef

# magenta
color5  = #ae81ff
color13 = #ae81ff

# cyan
color6  = #adb3b9
color14 = #62ab9d

# white
color7  = #2AA198
color15 = #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

  • Гіт гілки фону:
    typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=15

Результат

Робимо Linux термінал гарним та зручним
Помилка:
Робимо Linux термінал гарним та зручним
GIT:
Робимо Linux термінал гарним та зручним

Джерела

Документація PowerLevel10K
Онлайн дизайнер колірних схем терміналу
Відмінності між Bash та Zsh

Джерело: habr.com

Додати коментар або відгук