Fancy WSL2 Setup

Latar Belakang

This article in Bahasa, are you looking for English version? Google Translate here.

Meskipun saat ini saya menggunakan sistem operasi Windows, saya tidak bisa lepas sepenuhnya dengan sistem operasi berbasis Linux. Lantas, solusinya adalah menggunakan virtualisasi atau WSL.

WSL (Windows Subsystem for Linux) adalah sebuah fitur dari sistem operasi Windows yang memungkinkan penggunanya untuk menjalankan Linux tanpa harus menggunakan aplikasi virtualisasi. Yak, itu adalah pengertian awam saya untuk WSL ini (jika ingin mengetahui pengertian lengkap dan tepatnya, silakan membaca pada tautan berikut ini ). Pada kenyataannya, untuk menggunakan WSL saya harus memasang Hyper-V terlebih dahulu. Hyper-V sendiri merupakan aplikasi virtualisasi bawaan dari sistem operasi Windows. Hyper-V ini biasanya digunakan untuk keperluan virtualisasi kelas server. Namun, beberapa isu terakhir pada kompatibilitas WSL dengan aplikasi populer di Windows seperti VirtualBox 1 atau VMWare 2 membuat saya menggunakan Hyper-V untuk kebutuhan virtualisasi.

Saat ini alasan saya masih menggunakan VirtualBox, karena aplikasi emulator android Genymotion membutuhkannya. Untuk saat ini, bisa dibilang Genymotion merupakan emulator android yang paling mudah digunakan dan nyaris mendekati android devices.

WSL versi 2 menurut saya sudah banyak perkembangan, dari segi performa dan kompatibilitas yang ditawarkan. Meskipun demikian, terminal bawaan WSL 2 ini seperti kurang enak dipandang. Pada artikel ini saya ingin sharing (sekaligus dokumentasi pribadi) tentang cara konfigurasi WSL agar terlihat lebih menarik.

Instalasi WSL 2

Untuk dokumentasi dan cara memasang WSL 2 ini sudah cukup jelas berada pada tautan ini. Secara sederhana saya menjalankan perintah berikut pada powershell dengan hak akses administrator.

wsl --install
// restart komputer sebelum ke perintah selanjutnya

wsl --set-default-version 2
wsl --install -d Ubuntu

Setelah proses selesai, akan ada pop-up window yang mengharuskan saya membuat user dan password untuk WSL. Setelah itu jika saya memasukan "Ubuntu" di kolom pencarian Windows, maka akan muncul Ubuntu App seperti pada gambar di bawah ini.

image.png

Instalasi Windows Terminal

Langkah selanjutnya adalah memasang Windows Terminal. Pada bagian ini saya tidak bisa memasang Windows Terminal menggunakan Microsoft Store, Chocolately, dan Winget. Karena hal tersebut, saya langsung mengunduh berkas msixbundle yang ada pada tautan rilis ini. Cukup klik 2x ekstensi msixbundle dan Windows Terminal akan terpasang dan bisa digunakan. Saya biasanya menempelkan shortcut Windows Terminal di taskbar.

Saya juga memasang Font Caskaydia Nerd Font yang bisa diunduh pada tautan ini. image.png

Setelah terpasang, ubah konfigurasi Ubuntu WSL pada Windows Terminal. Klik icon v atau settings, pada Ubuntu pilih Font face Caskaydia Nerd Font. image.png

Instalasi Oh-My-ZSH pada WSL

Klik kanan pada icon Windows Terminal dan pilih Ubuntu. Selanjutnya pada bagian ini saya menemukan masalah, dimana DNS pada Ubuntu WSL tidak bisa me-lookup domain dengan benar. Hal ini ditandai dengan gagalnya perintah sudo apt update. Solusi untuk masalah ini adalah dengan membuat WSL agar tidak menggunakan DNS bawaan. Untuk hal tersebut saya harus mengubah berkas /etc/wsl.conf dan /etc/resolv.conf

## /etc/wsl.conf
[network]
generateResolvConf = false
## /etc/resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8

Gunakan sudo untuk ketika mengubah wsl.conf dan remove symlink pada resolv.conf sebelum menambahkan nameserver. Lengkapnya saya menggunakan perintah berikut:

sudo nano /etc/wsl.conf

// exit dan restart terminal Ubuntu WSL
wsl --terminate Ubuntu

// jalankan kembali Ubuntu WSL, dan lakukan ubah /etc/resolv.conf
sudo rm /etc/resolv.conf
sudo nano /etc/resolv.conf

Pada tahap ini saya sudah bisa melakukan pemasangan Oh-My-ZSH menggunakan perintah berikut:

sudo apt update && sudo apt upgrade -y
sudo apt install curl -y
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Setelah terpasang Oh-My-ZSH, selanjutnya saya menambahkan tema powerlevel10k dan plugin yang biasa saya gunakan dengan perintah berikut:

git clone --depth 1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
git clone --depth 1 https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone --depth 1 https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

Aktifkan powerlevel10k dengan cara mengubah isi dari ZSH_THEME pada berkas .zshrc seperti pada kode di bawah ini

ZSH_THEME="powerlevel10k/powerlevel10k"

Aktifkan plugins dengan cara mengubah isi dari plugins pada berkas .zshrc seperti pada kode di bawah ini

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Reload konfigurasi zsh, seharusnya akan ada proses konfigurasi powerlevel10k dan ikuti langkahnya sesuai keinginan. Hasil akhir akan seperti ini.

image.png

Tabik,