Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Prakata
Sejak menggunakan macOS (dulunya OSX), saya sudah mengenal ZSH shell dalam keseharian menggunakan Terminal. Saat itu kira-kira sekitar tahun 2014. Namun, baru sekarang saya sadari ternyata ZSH juga memiliki plugin manger.
Berawal dari keinginan saya untuk menggunakan ZSH theme yang simpel, kemudian Nanda Okitavera mengenalkan ZSH theme bernama subnixr/minimal. Proses instalasi ZSH theme ini menggunakan Zgen atau Antigen. Dari sinilah awal perkenalan saya dengan Zgen – A lightweight plugin manager for Zsh inspired by Antigen.
Alasan Menggunakan Zgen
Seperti namanya, plugin manager, tentunya berguna untuk memanajemen plugin. Mungkin teman-teman yang menggunakan Vim text editor akan langsung memahami, bahwa keberadaan plugin manager sangat memudahkan kita membongkar-pasang Vim plugin yang ingin atau tidak kita gunakan. Semudah memanajemen plugins/extensions pada text editor GUI seperti VSCode.
Penjelasan mengenai Apa itu Zgen? dapat dibaca sendiri pada halaman GitHub dari Zgen, di sini.
Instalasi
Instalasi Zgen
-
Backup
.zshrc
.$ cp ~/.zshrc ~/.zshrc.old
Atau bisa gunakan nama apa saja.
.bak
,.backup
, dll. -
Cloning repository Zgen.
$ git clone https://github.com/tarjoilija/zgen.git "${HOME}/.zgen"
Hasil cloning di atas akan berada pada direktori
~/.zgen/
. -
Tambahkan bari di bawah ini pada file
~/.zshrc
.# load zgen source "${HOME}/.zgen/zgen.zsh" # ... # ...
Letakkan saja pada posisi paling atas dari
.zshrc
.Saran saya, hapus saja semua konfigurasi
oh-my-zsh
yang ada di dalam file.zshrc
.Selesai. Proses pemasangan dan konfigurasi Zgen hanya seperti ini saja.
Sangat mudah bukan?
Selanjutnya, pemasangan
oh-my-zsh
sebagai plugin.
Instalasi OH-MY-ZSH
-
Tambahkan di bagian bawah atau setelah baris kode
# load zgen
di atas.# if the init scipt doesn't exist if ! zgen saved; then echo "Creating a zgen save" zgen oh-my-zsh # plugins OH-MY-ZSH zgen oh-my-zsh plugins/git zgen oh-my-zsh plugins/sudo zgen oh-my-zsh plugins/gem zgen oh-my-zsh plugins/python zgen oh-my-zsh plugins/systemd zgen oh-my-zsh plugins/tmux zgen oh-my-zsh plugins/archlinux zgen oh-my-zsh plugins/command-not-found # theme zgen oh-my-zsh themes/avit # save all to init script zgen save fi
Selesai. Hanya seperti ini saja cara pemasangannya.
-
Kemudian untuk penambahakn plugin lain seperti zsh-usrs/zsh-completions, tingal menambahkan saja di bagian dalam dari
if ... fi
.# ... # ... # completions zgen load zsh-users/zsh-completions src # ... # ...
-
Satu contoh plugin lagi, misalnya plugin untuk theme, seperti subnixr/minimal.
# ... # ... # minimal themes zgen load subnixr/minimal # ... # ...
Kemudian, tambahkan konfigurasi untuk minimal theme ini di bagian luar dari blok plugin.
MNML_OK_COLOR=7 MNML_ERR_COLOR=1 MNML_USER_CHAR='$' MNML_INSERT_CHAR='' MNML_NORMAL_CHAR='' # Components on the left prompt MNML_PROMPT=(mnml_ssh mnml_status mnml_keymap) # Components on the right prompt MNML_RPROMPT=('mnml_cwd 2 0' mnml_git) # Components shown on info line MNML_INFOLN=(mnml_err mnml_jobs mnml_uhp mnml_files) # An additional array is used to configure magic enter's behavior: MNML_MAGICENTER=(mnml_me_dirs mnml_me_ls mnml_me_git)
Hasilnya
Secara keseluruhan, isi dari kesemua komponan di atas yang ada di dalam file ~/.zshrc
saya akan seperti ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# -----------------------------------------------------------------ZGEN CONFIG
# load zgen
source "${HOME}/.zgen/zgen.zsh"
# if the init scipt doesn't exist
if ! zgen saved; then
echo "Creating a zgen save"
zgen oh-my-zsh
# plugins
zgen oh-my-zsh plugins/git
zgen oh-my-zsh plugins/sudo
zgen oh-my-zsh plugins/gem
zgen oh-my-zsh plugins/python
zgen oh-my-zsh plugins/systemd
zgen oh-my-zsh plugins/tmux
zgen oh-my-zsh plugins/archlinux
zgen oh-my-zsh plugins/command-not-found
# completions
zgen load zsh-users/zsh-completions src
# theme
zgen oh-my-zsh themes/avit
# minimal themes
zgen load subnixr/minimal
# save all to init script
zgen save
fi
# -------------------------------------------------------------END ZGEN CONFIG
# ---------------------------------------------------------------------MINIMAL
MNML_OK_COLOR=7 # default: 2
MNML_ERR_COLOR=1 # default: 1
MNML_USER_CHAR='$' # default: λ
MNML_INSERT_CHAR='' # default: ›
MNML_NORMAL_CHAR='' # default: ·
# Components on the left prompt
MNML_PROMPT=(mnml_ssh mnml_pyenv mnml_status mnml_keymap)
# Components on the right prompt
MNML_RPROMPT=('mnml_cwd 2 0' mnml_git)
# Components shown on info line
MNML_INFOLN=(mnml_err mnml_jobs mnml_uhp mnml_files)
# An additional array is used to configure magic enter's behavior:
MNML_MAGICENTER=(mnml_me_dirs mnml_me_ls mnml_me_git)
# -----------------------------------------------------------------END MINIMAL
Untuk melihat isi dari ~/.zshrc
lebih lengkap, silahkan melihat pada repositori dotfiles milik saya, di sini.
Mengapa saya menggunakan dua buah teheme?
Saya menggunakan oh-my-zsh theme yang bernama avit sebagai fallback apabila minimal theme yang saya gunakan mengalami kendala.
Ini juga hanya asumsi saya saja. Untuk mengantisipasi. Pada kenyataannya juga belum teruji. Karena selama ini, belum pernah menemui kendala dengan minimal theme.
Reset Konfigurasi
Setelah menambahkan atau menghapus plugin, jangan lupa untuk melakukan perintah reset.
$ zgen reset
-- zgen: Deleting `/home/bandithijo/.zgen/init.zsh` ...
Lalu exit dan buka kembali Terminal emulator kita.
Maka akan keluar output seperti di bawah.
Creating a zgen save
-- zgen: Creating `/home/bandithijo/.zgen/init.zsh` ...
-- zgen: Initializing completions ...
Selesai.
Troubleshoting
Perintah Terulang pada Output
Maret 16, 2019
Sebenarnya, sudah pernah mengalami hal ini, namun karena lupa melakukan pencatatan, dan ternyata mengalami untuk kedua kali, malah jadi kebingungan.
Dapat dilihat pada ilustrasi di atas, apapun perintah (command) yang saya tulisakan, akan ditampilkan kembali pada baris output.
Saya mengalami permasalah ini pada terminal URxvt dan Termite, namun tidak pada ST terminal yang sehari-hari saya pergunakan.
Namun, pada ST terminal, saat saya menggunakan :terminal
di dalam Vim text editor, permasalahan yang sama mulai terlihat.
Untung saja ada group BGLI (Belajar GNU/Linux Indonesia), jadi bisa menanyakan di sana.
Terkadang perlu “sudut pandang” orang lain dalam menemukan “kata kunci” yang tepat untuk mencari solusi dari sebuah masalah.
Dari jawaban yang diberikan pada tautan di atas. Kita perlu menambahkan variabel milik OH-MY-ZSH, yaitu:
DISABLE_AUTO_TITLE="true"
Karena, saya belum memasukkan variabel-variabel milik OH-MY-ZSH pada file ~/.zshrc
milik saya.
Apabila ingin ditambahkan variabel-variabel milik OH-MY-ZSH secara komplit, kira-kira seperti ini.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# -------------------------------------------------------------------OH-MY-ZSH
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
# Comment this out to disable bi-weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"
# Uncomment to change how often before auto-updates occur? (in days)
# export UPDATE_ZSH_DAYS=13
# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want to disable command autocorrection
# DISABLE_CORRECTION="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"
# Uncomment following line if you want to disable marking untracked files under
# VCS as dirty. This makes repository status check for large repositories much,
# much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# ---------------------------------------------------------------END OH-MY-ZSH
Dengan begini permasalahan “Perintah Terulang pada Output” tidak terjadi lagi.
Terima kasih untuk Karen Kishou @snowsu.
Pesan Penulis
Tulisan ini bukan merupakan tulisan tandingan dari dokumentasi resmi yang ditulis oleh developer dari Zgen, melainkan hanya sebagai ulasan mengenai bagaimana saya dalam menggunakan dan mengkonfigurasi Zgen ke dalam sistem yang saya miliki.
Apabila terdapat kekeliruan atau untuk penjelasan lebih detail, silahkan merujuk pada sumber-sumber referensi yang sudah saya sertakan di bawah.
Sepertinya ini saja. Mudah-mudahan dapat bermanfaat untuk teman-teman.
Referensi
-
github.com/tarjoilija/zgen
Diakses tanggal: 2019/02/18 -
github.com/subnixr/minimal
Diakses tanggal: 2019/02/18
Lisensi
Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0)
Penulis
My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.
- Rizqi Nur Assyaufi