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:
- Instalacja motywu
git clone - https://github.com/bhilburn/powerlevel9k.git ↗ ~/.oh-my-zsh/custom/themes/powerlevel9k
- 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 ↗).
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.
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 ↗.