Skip to content

ZSH w Windowsie

Posted on:27 lipca 2018 at 14:51
Feature Image for  ZSH w Windowsie

Czas powrócić “na chwilę” do tematu Windows 10, poruszonego jesienią 2016 roku. Do chwili obecnej jestem i raczej będę aktywnym użytkownikiem tego systemu, bo w mojej opinii jest to bardzo udana kompilacja “dobrodziejstwa”, zwłaszcza gdy pojawiło się magiczne połączenie słów: Bash in Windows.

Bynajmniej nie mam na myśli Power Shella, a uniksowe środowisko - jakie znałem z czasów ubuntu - odpalany za pomocą komendy:

bash

lub

ubuntu

Piekło zamarzło, a webdeveloperzy tańcują - przynajmniej ta część, która jeszcze nie wydała hajsu nie zainwestowała w drogie MBP.

ZSH w Windowsie

Skoro Windows daje dostęp do uniksowej powłoki (sub)systemowej, to grzech nie skorzystać z alternatyw takich jak ZSH czy Fish, które możemy wykorzystywać zamiennie. Zakładam, że większość pro-userów ma zainstalowaną powłokę uniksową w Windowsie; jeśli nie, to z pomocą przychodzi MS Doc, który wyjaśnia instalację środowisk w dwojaki sposób i to nie tylko w oparciu o distro Ubuntu.

Instalacja i konfiguracja ZSH

No to lecimy z koksem, instalując GIT i ZSH:

sudo apt-get install git zsh

Dlaczego GIT? Bo będziemy korzystać z dedykowanego frameworka do zarządzania konfiguracją ZSH: Ohh My ZSH i utrzymania jego aktualnej, najnowszej wersji.

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

A skoro jesteśmy przy Ohh My Zsh, to możemy przejść do konfiguracji, przeglądając najpierw listę dedykowanych motywów i pluginów. Aby wprowadzić zmiany, należy edytować plik konfiguracyjny poleceniem:

nano ~/.zshrc
# lub
vi ~/.zshrc

Po wprowadzeniu zmian należy przeładować shella, poleceniem zsh.

Jak widzicie, korzystam z PowerLevel9k, podobnego do Agnoster, ale rozbudowanego o kilka ficzerów, jakich brakowało w podstawowej konfiguracji.

Aby zainstalować, wystarczą 2 kroki:

  1. Instalacja motywu

git clone - https😕/github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

  1. Edycja pliku konfiguracyjnego.

I to wszystko. Moja konfiguracja wygląda mniej więcej tak:

ZSH_THEME="powerlevel9k/powerlevel9k"
plugins=(
git, Composer, docker, git-extras, node, npm, debian
)
POWERLEVEL9K_CONTEXT_TEMPLATE="%n"
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context time battery dir vcs virtualenv)

Jak widać, Powerleve9k można nieźle pod siebie dostosować - w repo znajdziecie więcej informacji o stylizowaniu linii poleceń (tu i tu).

zsh

Customowe fonty

Przy okazji PowerLeve9k pojawiły się problemy z wyświetlaniem znaków graficznych - wiąże się to z brakiem wsparcia standardowych czcionek (dedykowanych do programowania). Tutaj z pomocą przychodzi projekt Powerline, posiadający pokaźne repo ze zmienionymi pakietami fontów, zawierające owe znaki glyphs.

Z przyzwyczajenia korzystam z Ubuntu Mono, więc ściągnąłem je z powyższego repo i zainstalowałem ręcznie.

Następnie zmiany trzeba wprowadzić w ustawieniach terminalu (w zasadzie albo CMD.exe albo ubuntu.exe) - ja korzystam z Conemu, stąd prezentacja oparta na tej aplikacji.

zsh

Podsumowanie

Nowinka związana z podsystemem pojawiła się prawie 2 lata temu, ale dopiero teraz zabrałem się za konfigurację środowiska. Środowisko, jakie zawsze chciałem mieć na domowym i roboczym laptopie. W tej zabawie miałem jeszcze jeden ukryty cel: udowodnić, że nie trzeba wydawać ciężkich pieniędzy na MBP i że wystarczy dobry notebook z linii biznesowej / gamingowej z Windowsem 10 Pro.

Stack technologiczny

Na co dzień pracuję jako front-end developer i dużo działam w środowisku react/vue/node, dlatego bardzo ważne jest, by konfiguracja była elastyczna i działała w każdym środowisku. Trzeba przyznać, że większość rozwiązań, dostępnych na githubie, działa w 100% w windowsowym środowisku bez zająknięcia.

Nie bez znaczenia jest fakt, ze MS mocno wspiera rozwój nodeJS i widać tutaj efekty. Jestem ciekaw dalszego rozwoju sytuacji po “przejęciu” Githuba . W dużym uproszczeniu to wszystko wprowadza sie do środowiska NodeJS + NPM i GIT, bo reszta (patrz wpis z 2015 roku ) przestała mieć rację bytu, albo ma status deprecated, zwłaszcza Ruby i SASS (SCSS), z którego do dziś korzystam w większości projektów - nawet w typowo reactowych.

ps. Fota pochodzi z pexels.



Możesz napisać do mnie e-mail, wiadomość na Telegramie lub wyszukać mnie na Mastodonie.
Loading...