Sprawiamy, że terminal Linux jest piękny i wygodny

Wszystkie dystrybucje Linuksa są dostarczane z funkcjonalnym i dostosowywalnym symulatorem terminala. W Internecie, a czasami nawet w samym terminalu, jest wiele gotowych motywów, które sprawiają, że wygląda on ładnie. Jednak aby przekształcić standardowy terminal (w dowolnym DE, w dowolnej dystrybucji) w coś estetycznego, wygodnego i łatwego w obsłudze, spędziłem wiele czasu. Jak więc uczynić domyślny terminal wygodnym i przyjemnym w użyciu?

Dodajemy funkcjonalność

Powłoka

Większość dystrybucji dostarczana jest z wbudowanym Bash. Dzięki dodatkowym modułom można zrobić z niego wszystko, co chcesz, ale o wiele łatwiej to osiągnąć z Zsh. Dlaczego?

  • Zaawansowana mechanika autouzupełniania poleceń po naciśnięciu <Tab> lub <Strzałka w górę>. W przeciwieństwie do Bash, nie trzeba tego konfigurować, wszystko działa na najwyższym poziomie prosto „z pudełka”.
  • Mnóstwo gotowych motywów, modułów, wtyczek i innych. Możliwość dostosowania przez frameworki (oh-my-zsh, prezto itp.), które znacznie rozszerzają możliwości personalizacji i poprawy terminala. Zresztą, to wszystko można osiągnąć również w Bash, ale dla Zsh jest mnóstwo gotowych materiałów. Dla Bash jest ich znacznie mniej, a niektóre w ogóle nie istnieją.

To główne powody, dla których przeszedłem z Bash na Zsh. Oprócz tego Zsh ma wiele innych „fajnych funkcji”.

Konfiguracja Zsh

Na początek zainstalujemy Zsh (jeśli jest już zainstalowany, na przykład w Manjaro, możesz pominąć ten krok):

sudo apt install zsh

Gdy pojawi się prośba o ustawienie Zsh jako domyślnej powłoki, naciśnij Y, aby potwierdzić.

Oh-My-Zsh — popularny i aktywnie rozwijający się framework Zsh, który umożliwia elastyczne dostosowanie powłoki terminala. Zainstalujemy go:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

zsh: command not found: curl
Zainstaluj curl:

sudo apt install curl

Podświetlanie składni. O wiele łatwiej jest orientować się w zawartości terminala, gdy różne części poleceń są podświetlane różnymi kolorami. Na przykład, katalogi będą podkreślane, a polecenia wyróżniane kolorem innym niż zwykły tekst. Zainstalujemy wtyczkę 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
Zainstaluj git:

sudo apt install git

Aby wtyczka działała, należy ją aktywować.

W pliku ~/.zshrc zmień linię z plugins=:

plugins=(git zsh-syntax-highlighting)

Jeśli taka linia nie istnieje — dodaj ją.

Gotowe! Otrzymujemy wygodny i funkcjonalny terminal. Teraz uczynimy go wizualnie przyjemnym.

Ustawiamy wygląd

Instalujemy motyw PowerLevel10K:

git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

Pobieramy i dodajemy czcionkę do systemu JetBrains Mono Nerd (z ikonami):
Wybierz jeden z listy, w folderze czcionka/complete wybierz czcionkę bez „Windows Compatible”, z końcówką „Mono”.

Podłączamy czcionkę i motyw.

Edycja ~/.zshrc.

Jeśli w pliku te linie już istnieją — zastąp je.

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

Kolory. Ważna część stylizacji terminala — schemat kolorów. Przetestowałem wiele różnych schematów, edytowałem je i zatrzymałem się na Monokai Dark. Nie męczy oczu, jest przyjemny i żywy. Lista kolorów:

[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

W różnych terminalach schemat kolorów zmienia się na różne sposoby (zwykle odbywa się to poprzez ustawienia terminala), ale kolejność kolorów jest wszędzie taka sama. Możesz zaimportować ten szablon w formacie Termite i wyeksportować go dla swojego terminala przez terminal.sexy

Uruchamiamy konfigurację motywu: p10k configure.
Skonfiguruj motyw, wybierając preferowane opcje wyświetlania.

Ostatni szlif — zmieniamy konfigurację motywu i zastępujemy wbudowane kolory.

Edytujemy plik ~/.p10k.zsh.

Jeśli w pliku te linie już istnieją — zastąp je. Kody kolorów można uzyskać komendą

for i in {0..255}; do print -Pn "%K{$i}  %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'n'}; done

  • Wyświetlanie tylko bieżącego katalogu:
    typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last
  • Tło bloku z katalogiem:
    typeset -g POWERLEVEL9K_DIR_BACKGROUND=33
  • Kolory strzałek:
    typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2

    i

    typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1

  • Tło gałęzi Git:
    typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=15

Wynik

Sprawiamy, że terminal Linux jest piękny i wygodny
Błąd:
Sprawiamy, że terminal Linux jest piękny i wygodny
GIT:
Sprawiamy, że terminal Linux jest piękny i wygodny

Źródła

Dokumentacja PowerLevel10K
Internetowy projektant schematów kolorów terminala
Różnice między Bash i Zsh

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster