BanditHijo.dev

Polybar, Bar yang Mudah Dikonfig, Praktis, dan Mudah Dikustomisasi

Created at: 2019-05-05
Author by: BanditHijo

Apa itu Polybar?

Polybar. untuk teman-teman yang menggunakan Window Manager, pasti sudah tidak asing lagi mendengar aplikasi ini.

Polybar adalah standalone taskbar/panel yang dapat kita gunakan sebagai wadah untuk meletakkan berbagai macam status indikator yang kita perlukan.

Biasanya pengguna Desktop Environment menyebutnya dengan istilah “Panel”.

Saya juga pernah menyinggung sedikit tentang Polybar pada tulisan sebelumnya, mengenai “i3wm, Window Manager yang Taktis namun Praktis”.

Taskbar/panel adalah salah satu aplikasi pendukung agar kita dapat menggunakan sistem kita dengan mudah.

Secara pribadi, status indikator yang saya perlukan, meliputi:

  1. Workspace indikator
  2. Focused Window Title Name
  3. Tanggal dan Jam
  4. Battery status
  5. CPU temperatur
  6. RAM usage indikator
  7. Volume indikator
  8. Brightness screen indikator
  9. Network status
  10. Network speed indikator

Status indikator yang optional seperti:

  1. HDD capacity indikator
  2. CPU usage indikator

Di bawah ini adalah contoh Polybar yang saya pergunakan.

Gambar 1

Gambar 2

Jangan bingung, tampilan Polybar saya memang sederhana seperti ini saja.

Di forum-forum online seperti /r/unixporn, Telegram: dotfiles Indonesia, dll, cukup banyak teman-teman yang menggunakan Polybar dengan bentuk dan warna yang beraneka ragam. Keren-keren sekali.

Sekedar pengetahuan saja, selain Polybar, masih ada lagi standalone taskbar/panel yang sering terdengar di telinga saya, seperti:

  1. lemonbar
  2. tint2
  3. dzen
  4. bumblebee-status
  5. dll.

Gimana Cara Pasangnya?

Mumpung sedang pembahasan taskbar/panel, saya sekalian memberi informasi bahwa masing-masing taskbar/panel tersebut, memiliki proses konfigurasinya yang berbeda satu dengan yang lainnya – pastinya.

Dalam proses konfigurasi Polybar, saya akan membagi menjadi 2 sesi, yaitu:

  1. Konfigurasi Menjalankan Polybar
  2. Konfigurasi Memodifikasi Polybar

Tujuannya untuk memudahkan saat ada pertanyaan mengenai “konfigurasi Polybar”.

1. Konfigurasi Menjalankan Polybar

Tentu saja kita perlu melakukan instalasi terlebih dahulu.

Instalasi dari Repositori

Karena saya menggunakan Arch Linux, saya akan mencontohkan dengan cara Arch.

Gunakan AUR Helper favorit kalian karena paket Polybar masih terdapat di AUR.

$ yay polybar

Untuk yang menggunakan distribusi lain, silahkan menyesuaikan. Hehe.

Instalasi dengan Meng-compile Sendiri

Perhatikan terlebih dahulu paket-paket dependensi yang diperlukan sebelum mengkompile Polybar.

Silahkan melihat daftarnya di sini.

Setelah dipastikan semua kebutuhan dependensi, baik yang utama maupun yang optional sudah terpenuhi.

Selanjutnya, Download versi Polybar di sini.

Download polybar-{version}.tar

Pilih versi yang paling baru saja.

Kemudian ekstrak dengan,

$ tar xvf polybar-{version}.tar

Kemudian, masuk ke dalam direktori yang baru saja di ekstrak tadi.

Lalu, jalankan perintah di bawah ini untuk mem-compile Polybar.

$ mkdir build
$ cd build
$ cmake ..
$ make -j$(nproc)
$ sudo make install

Tunggu sampai proses compile selesai.


Setelah dipastikan proses instalasi selesai, baik dari repositori maupun meng-compile langsung dari source, coba jalankan Polybar terlebih dahulu dengan menambahkan option -h.

$ polybar -h
Usage: polybar [OPTION]... BAR

  -h, --help               Display this help and exit
  -v, --version            Display build details and exit
  -l, --log=LEVEL          Set the logging verbosity (default: WARNING)
                           LEVEL is one of: error, warning, info, trace
  -q, --quiet              Be quiet (will override -l)
  -c, --config=FILE        Path to the configuration file
  -r, --reload             Reload when the configuration has been modified
  -d, --dump=PARAM         Print value of PARAM in bar section and exit
  -m, --list-monitors      Print list of available monitors and exit
  -w, --print-wmname       Print the generated WM_NAME and exit
  -s, --stdout             Output data to stdout instead of drawing it to the X window
  -p, --png=FILE           Save png snapshot to FILE after running for 3 seconds

Kalau sudah tampil seperti di atas, berarti Polybar sudah berhasil kita pasang.

Selanjutnya, Kita akan meng-copy file config.

File config dapat dipasang dengan menggunakan perintah,

$ make userconfig

Jalankan dari dalam direktori build yang sebelumnya kita buat untuk meng-compile.

atau,

Copy dan paste secara manual file config yang berada pada direktori /usr/...

  1. /usr/share/doc/polybar/config
  2. /usr/local/share/doc/polybar/config

Tergantung parameter yang kalian gunakan saat melakukan instalasi Polybar.

Silahkan di copy ke direktori ~/.config/polybar/. Kalau belum ada direktori ini, silahkan di buat dahulu.

$ mkdir -p ~/.config/polybar

Lalu tinggal jalankan perintah cp.

$ cp /usr/share/doc/polybar/config ~/.config/polybar/config

Sesuaikan path dengan lokasi file config yang berada pada direktori /usr/... di sistem kalian.

Kalau pada Arch Linux, hasil instalasi Polybar yang bersumber dari AUR, akan terdapat pada path seperti yang tertulis pada nomor 1 di atas.

Menjalankan Polybar

Setelah selesai meng-copy file konfig, selanjutnya kita perlu mengkonfigurasi untuk memanggil Polybar.

Memanggil/menjalankan Polybar diperlukan agar Polybar dapat menampakkan diri pada Desktop.

Cara menjalankan Polybar saya bagi menjadi 2, yaitu :

  1. Langsung
  2. Tidak Langsung

1. Langsung

Dengan menggunakan perintah,

$ polybar example -r

Argument example yang berada setelah perintah polybar, dimaksudkan untuk memanggil nama dari bar yang ada di dalam file config.

Contoh nama dari bar yang dapat kita temukan di dalam file config, secara default akan seperti ini.

[bar/example]

Cari saja dengan scrolling ke bawah, baris yang memiliki isi seperti di atas.

Nah, kalau mau, kita dapat merubahnya sesuai keinginan kita.

Misal,

[bar/topbar]

Nah, maka cara memanggilnya pun akan menjadi,

$ polybar topbar -r

Option -r di sini berguna untuk,

-r, --reload  Reload when the configuration has been modified

Maksudnya, semacam autoreload, jadi sambil kita mengubah-ubah nilai yang ada di dalam file config, Polybar akan secara otomatis me-reload-kan untuk kita. Asik bukan?

PERTANYAAN?

Kapan kita gunakan cara langsung seperti ini?

Selera saja sih.

Kalau saya, biasanya menggunakan cara langsung ini untuk debuging Polybar.

Karena saat kita menjalankan secara langsung seperti ini. Terminal tempat kita menjalankan Polybar akan menampilkan log-log dari apa yang kita ubah pada file config.

2. Tidak Langsung

Cara tidak langsung yaitu dengan menggunakan file executable.

Seperti yang di contohkan oleh Wiki Polybar, dengan menggunakan file launch.sh yang diletakkan di dalam direktori ~/.config/polybar/.

Sekarang kita coba buat dan membuatnya menjadi executable.

$ touch ~/.config/polybar/launch.sh
$ chmod +x ~/.config/polybar/launch.sh

Sekarang saatnya kita mengisikan beberapa baris perintah di dalamnya.

$ vim ~/.config/polybar/launch.shell_user
#!/usr/bin/env bash

# Terminate already running bar instances
killall -q polybar

# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done

# Launch bar with name example
polybar example -r &

echo "Bars launched..."

Ingat, argument example di atas adalah nama dari bar yang kita berikan. Secara default (kalau masih belum berubah) akan bernama example.

Teman-teman dapat menggantinya dengan nama bar yang teman-teman atur pada file config seperti contoh pada nomor 1 di atas.

Sekarang, saatnya menjalankan file launch.sh ini.

i3WM

Kalau yang menggunakan i3wm, tinggal pasang di file config dari i3wm saja.

exec_always --no-startup-id $HOME/.config/polybar/launch.sh

Jangan lupa untuk mendisable bar bawaan dari i3WM, kalau sudah tidak diperlukan lagi.

#bar {
#    status_command ...
#}

Atau di hapus juga tidak masalah.

Saya pribadi, saya hapus.

Karena jujur saja, lebih suka menggunakan Polybar ketimbang bar bawaan dari i3WM. Hehe.

Kalau sudah, restart i3WM.

BSPWM

Untuk teman-teman yang menggunakan BSPWM, dapat memasang baris perintah pemanggilan Polybar pada file config ~/.config/bspwm/bspwmrc atau yang berkorelasi, seperti saya, saya letakkan pada file ~/.config/bswpm/autorun.

$HOME/.config/polybar/launch.sh

Kalau sudah, restart BSPWM.

2. Konfigurasi Memodifikasi Polybar

Saat pertama kali menjalankan Polybar, secara default akan menampilkan tampilan seperti ini.

Gambar 3

Gambar di atas adalah contoh dari pemanggilan [bar/example] dari file config yang belum kita modifikasi.

Sudah sangat keren yaa? Wkwkwkwk

Nah sekarang kita akan mem-breakdown isi dari file config.

Secara garis besar, di dalam file config, baris-baris kode tersebut terkelompokkan menjadi beberapa blok.

  1. Blok [colors]
  2. Blok [bar/nama_bar]
  3. Blok-blok [module/nama_modul]
  4. Blok [settings]

Selanjutnya, akan kita bahas satu-persatu mengenai isi yang ada di dalam blok-blok tersebut.

Tapi yang akan saya akan jadikan contoh adalah isi dari file config milik saya.

Blok [colors]

$HOME/.config/polybar/config
1[colors]
2foreground = #BCC3C3
3background = #002B36
4foreground-alt = #56696F
5background-alt = #073642
6alert = #CB4B16

Blok ini berisi variabel-variabel color yang dapat kita definisikan dan memberi nilai warna (Hexacolor).

Kita juga dapat membuat variabel baru selain dari variabel yang sudah ada, tinggal disesuaikan dengan kebutuhan kita akan variabel warna saja. Enak sekali bukan?

Cara penggunaan atau pemanggilan variabel color ini dengan menggunakan cara seperti ini,

  1. foreground = ${colors.foreground}
  2. background = ${colors.background}
  3. label-urgent-foreground = ${colors.alert}
  4. dll.

Jangan bingung dulu karena nanti akan teman-teman lihat contoh-contoh lain mengenai cara penggunannya pada blok-blok selanjutnya.

Blok [bar/nama_bar]

nama_bar di sini maksudnya nama dari bar yang teman-teman berikan.

Defaultnya masih bernama example ([bar/example]).

Kalau saya, karena saya menggunakan BSPWM, untuk alasan automatisasi pemanggilan nama bar pada script launch.sh saya menggunakan nama barbspwm ([bar/barbspwm]).

Berikut ini isi dari blok [bar/nama_bar].

Saya akan bahas bagian perbagian.

$HOME/.config/polybar/config
1[bar/barbspwm]
2monitor = ${env:MONITOR:}
3monitor-fallback = eDP1
4width = 100%
5height = 24
6radius = 5.0
7;offset-x = 0
8;offset-y = 0
9fixed-center = true
10bottom = false
  1. monitor =, untuk mendefinisikan dimana Polybar akan ditampilkan.

    Gunakan perintah di bawah ini untuk mengecek nama dari monitor yang sedang kita pergunakan.

    $ xrandr -q | grep " connected" | cut -d ' ' -f1
    

    Saya menggunakan nilai ${env:MONITOR:} karena berkaitan dengan blok code yang saya jalankan pada file launch.sh untuk mendefinisikan dual monitor.

  2. monitor-fallback =, sebagai backup apabila variabel monitor = tidak ditemukan nilainya.

  3. width = dan height =, untuk mendefinisikan lebar dan tinggi dari Polybar.

  4. radius =, untuk membuat sudut-sudut Polybar menjadi rounded.

  5. offset-x = dan offset-y =, apabila kalian ingin menggeser letak dari Polybar pada titik koordinat tertentu.

  6. fixed-center =, untuk membuat Polybar berada di tengah berdasarkan modules-center.

    Ketika bernilai false, posisi center akan ukuran dari blok yang lain.

  7. bottom =, untuk mendefinisikan letak Polybar pada monitor, berada di atas dari layar, atau berada di bawah.

    foreground = ${colors.foreground}
    background = ${colors.background}
    
  8. foreground =, untuk mendefinisikan warna foreground yang akan digunakan secara global oleh setiap modul yang menggunakan label dan icon.

    Untuk variabel seperti ini, dapat menggunakan pemanggilan variabel colors dengan cara seperti yang saya pergunakan di atas.

    foreground = ${colors.foreground}
    

    Atau dapat pula diisikan dengan hexa color code-nya.

    foreground = #002B36
    
  9. background =, untuk mendefinisikan warna background yang akan digunakan secara global oleh setiap modul.

    Variabel ini termasuk variabel warna. Seperti yang dicontohkan pada variabel foreground di atas.

    line-size = 1
    line-color = #dfdfdf
    
  10. line-size =, untuk mendefinisikan nilai dari tebal garis, baik garis bawah maupun garis atas, yang akan digunakan secara global.

  11. line-color =, untuk mendefinisikan nilai warna dari variabel line- di atas.

    ;border-size = 0
    border-top-size = 5
    border-bottom-size = 0
    border-left-size = 5
    border-right-size = 5
    ;border-color = ${colors.background}
    
  12. border-size =, untuk mendefinisikan size dari keempat sisi border dari Polybar.

    Contoh di atas menunjukkan bawha saya tidak mengaktifkan variabel ini, dikarenakan saya ingin memiliki nilai border yang berbeda setiap sisinya.

    Untuk itu saya menggunakan variabel border seperti contoh di bawahnya border-{sisi}-size =.

  13. border-top-size =, border-bottom-size =, border-left-size = , border-right-size =, untuk mendefinisikan ukuruan border sisi atas, bawa, kiri, dan kanan.

  14. border-color =, untuk mendefinisikan warna background dari border.

    Namun, saya tidak menggunakan border-color, agar border menjadi transparan.

    padding-left = 1
    padding-right = 1
    
  15. padding-left = dan padding-right =, untuk mendefinisikan besar padding yang ada pada sisi kanan dan kiri dari Polybar.

    Ingat, ini padding bukan margin, sehingga outputnya akan memberikan jarak pada sisi bagian dalam dari Polybar.

    Saya memberikan nilai 1, agar modul tidak terlalu dempet dengan sisi kanan dan kiri dari Polybar.

    module-margin-left = 0
    module-margin-right = 0
    
  16. module-margin-left = dan module-margin-right =, untuk mendefinisikan besarnya margin di sisi kanan atau kiri pada tiap modul.

    Saya tidak ingin membuat jarak yang terlalu jauh antar modul sehingga saya membuat nilainya menjadi 0.

    font-0 = Fira Code Retina:pixelsize=9;2
    font-1 = FontAwesome:pixelsize=10;2
    font-2 = Font Awesome 5 Brands:size=10;2
    font-3 = Fira Code Retina:weight=Bold:pixelsize=9;2
    font-4 = Fira Code Retina:weight=Bold:pixelsize=6;-1
    font-5 = FontAwesome:weight=Bold:pixelsize=4;-2
    
  17. font-{n} =, untuk mendefinisikan font beserta ukuran dan tinggi karakternya.

    Saya ambil contoh,

    font-0 = Fira Code Retina:pixelsize=9;2
             └──────────────┘ └─────────┘ ╵
                    a              b      c
    
    • (a) Adalah font yang kita akan gunakan.

    • (b) Adalah ukuran dari font yang akan kita gunakan.

    • (c) Adalah tinggi dari karakter font. Dapat bernilai negatif.

    ;separator =
    
  18. separator =, untuk mendefinisikan karakter pemisah antara modul.

    Karena saya tidak ingin ada karakter apapun yang memisahkan antar modul, maka saya disable.

    modules-left = bspwm xwindow
    modules-center =
    modules-right = xkeyboard netspdwlan netspdeth sp1 wlan eth sp2 xbacklight sp2 pulseaudio sp2 memory sp1 temperature sp2 battery sp2 date sp2 profile
    
  19. module-left =, module-center =, module-right =, untuk mendefinisikan modul-modul yang akan ditampilkan pada bar sesuai dengan blok posisinya masing-masing.

    Modul-modul ini yang akan kita konfigurasikan pada baris-baris selanjutnya di bawah.

    Untuk melihat apa saja modul-modul yang tersedia, dapat melihat pada Wiki Polybar, di sini.

    Kita akan bahas lebih lanjut pada pembahasan blok [bar/nama_modul].

    ;tray-position = right
    ;tray-padding = 0
    ;tray-detached = false
    ;tray-maxsize = 16
    ;tray-scale = 1.0
    ;tray-foreground = ${colors.foreground}
    ;tray-background = ${colors.background}
    ;tray-offses-x = 0
    ;tray-offset-y = 0
    
  20. Deretan baris kode di atas, digunakan untuk mengkonfigurasi trayicon yang akan ditampilkan pada Polybar.

    Sebagai catatan, saya tidak mengaktifkan tray icon pada [bar/nama_bar], karena saya akan meletakkan tray icon pada bar yang akan saya letakkan di bawah dan dapat saya buat show/hide dengan menggunakan kombinasi tombol pada keyboard. Bar ini saya beri nama [bar/traybspwm]. Kita akan bahas di bawah.

    wm-name = bspwm
    
  21. wm-name =, untuk mendefinisikan atom WM_NAME.

    wm-restack = bspwm
    
  22. wm-restack =, untuk menyusun kembali window bar dan meletakkannya di atas window manager yang kita pilih. Untuk memperbaiki masalah dimana bar tetap akan muncul pada saat window fullscreen.

    Terdapat dua Window Manager yang disupport, i3WM dan BSPWM.

    i3WM juga harus mengaktifkan override-redirect = true. Apabila ingin mengaktifkan fitur ini.

    override-redirect = false
    
  23. override-redirect =, untuk mengatur agar Window Manger tidak menghandle window.

    Saya menggunakan nilai false karena saya tidak ingin window yang tampil akan menutupi Polybar.

    cursor-click = pointer
    cursor-scroll = ns-resize
    
  24. cursor-click =, untuk mendefinisikan cursor yang digunakan saat berada di atas modul yang memiliki fungsi click.

  25. cursor-scroll =, untuk mendefinisikan fungsi dari scroll apabila dilakukan pada modul yang memiliki fungsi resize seperti modul backlight dan pulseaudio/alsa.

Untuk penjelasan lebih lengkap mengenai topik yang sudah saya bahas di atas, dapat merujuk pada Wiki Polybar, di sini.

Blok [module/nama_modul]

Untuk pembahasan modul, saya akan tulis dengan mendahulukan nama-nama modul yang sudah disediakan oleh Polybar.

Untuk beberapa modul yang teman-teman lihat (pada daftar modul di atas) tidak terdapat pada modul bawaan Polybar (custom module), akan saya tulis belakangan.

Modul BSPWM

$HOME/.config/polybar/config
1[module/bspwm]
2type = internal/bspwm
3
4pin-workspaces = true
5inline-mode = false
6enable-click = false
7enable-scroll = false
8reverse-scroll = false
9fuzzy-match = true
10
11format = <label-state> <label-mode>
12
13label-monitor = "%name%%{F#56696F} |%{F-}"
14
15label-dimmed-foreground = ${colors.foreground}
16label-dimmed-focused-background = ${colors.background}
17
18label-focused = "%{T6} %{T-}%{T1}%name%%{T-}%{F#56696F} |%{F-}"
19label-focused-foreground = #ffffff
20label-focused-background = ${colors.background}
21
22label-occupied = "%{T6} %{T-}%{T1}%name%%{T-}%{F#56696F} |%{F-}"
23
24label-urgent = "%{T6} %{T-}%{T1}%name%%{T-}%{F#56696F} |%{F-}"
25label-urgent-foreground = ${colors.alert}
26label-urgent-background = ${colors.background}
27
28label-empty = "%{T6}%{F#002B36} %{F-}%{T-}%name%%{F#56696F} |%{F-}"
29label-empty-foreground = ${colors.foreground-alt}
30
31label-tiled = []=
32label-monocle = [M]=
33label-floating = <><
34label-fullscreen = [F]
35label-pseudotiled = [T]
36label-locked = [X]
37label-locked-foreground = ${colors.foreground}
38label-sticky = [Y]
39label-sticky-foreground = ${colors.foreground}
40label-private = [Z]
41label-private-foreground = ${colors.foreground}
42
43label-separator =
44label-separator-padding = 0
45label-separator-foreground = ${colors.foreground-alt}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul BSPWM di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Pada baris kode di atas, teman-teman juga dapat melihat beberapa baris kode yang memiliki tag formating seperti ini.

  1. %{T3}...%{T-}, untuk Label Text Formating. T3 berarti variabel font-2, karena variabel font dimulai dari font-0.
  2. %{F#56696F}...%{F-}, untuk Label Color.

Penjelasan lebih lengkap mengenai Text Formating, tentang apa yang dapat dan tidak dapat dilakukan, silahkan merujuk ke halaman Wiki Polybar, di sini.

Modul xwindow

$HOME/.config/polybar/config
1[module/xwindow]
2type = internal/xwindow
3format = <label>
4format-padding = 0
5
6label = " %title%"
7label-maxlen = 30
8label-foreground = ${colors.foreground}
9label-background = ${colors.background}
10
11label-empty =
12label-empty-foreground = ${colors.background}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul xwindow di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul xkeyboard

$HOME/.config/polybar/config
1[module/xkeyboard]
2type = internal/xkeyboard
3blacklist-0 = num lock
4blacklist-1 = scroll lock
5
6format = <label-indicator>
7format-spacing = 0
8
9format-prefix = " "
10format-prefix-foreground = ${colors.alert}
11format-prefix-background = ${colors.background}
12
13label-layout = "%layout%"
14label-layout-foreground = ${colors.foreground}
15label-layout-background = ${colors.background}
16
17label-indicator-padding = 0
18label-indicator-margin = 0
19label-indicator = %{T4} CAPS %{T-}
20label-indicator-foreground = ${colors.alert}
21label-indicator-background = ${colors.background}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul xkeyboard di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul xbacklight

$HOME/.config/polybar/config
1[module/xbacklight]
2type = internal/xbacklight
3
4;format = "<label><bar>"
5format = "<label>"
6label = " %percentage%%"
7label-foreground = ${colors.foreground}
8label-background = ${colors.background}
9
10bar-width = 5
11bar-indicator = |
12bar-indicator-foreground = ${colors.foreground}
13bar-indicator-background = ${colors.background}
14bar-indicator-font = 1
15
16bar-fill = -
17bar-fill-font = 1
18bar-fill-foreground = ${colors.foreground}
19bar-fill-background = ${colors.background}
20
21bar-empty = -
22bar-empty-font = 1
23bar-empty-foreground = ${colors.foreground}
24bar-empty-background = ${colors.background}

Pada baris format =, terdapat dua tipe format yang saya gunakan, terkadang saya ingin menggunakan style dengan bar dan bukan dengan persentase. Namun, pada baris format = di atas, saya sedang menggunakan persentase.

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul xkeyboard di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

INFO

Sebagai catatan tambahan, beberapa dari teman-teman mungkin sudah tidak lagi menggunakan xbacklight sebagai backend untuk mengatur kecerahan layar.

Mungkin, dapat menggunakan modul backlight.

Modul PulseAudio

$HOME/.config/polybar/config
1[module/pulseaudio]
2type = internal/pulseaudio
3
4sink = alsa_output.pci-0000_12_00.3.analog-stereo
5
6use-ui-max = true
7
8interval = 5
9
10format-volume = <ramp-volume> <label-volume>
11
12label-muted =
13label-muted-foreground = ${colors.alert}
14
15ramp-volume-0 =
16ramp-volume-1 =
17ramp-volume-2 =

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul pulseaudio di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul Memory

$HOME/.config/polybar/config
1[module/memory]
2type = internal/memory
3interval = 1
4
5format-prefix = " "
6format-prefix-foreground = ${colors.foreground}
7format-prefix-background = ${colors.background}
8
9label = "%percentage_used%%"
10label-foreground = ${colors.foreground}
11label-background = ${colors.background}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul memory di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul CPU

$HOME/.config/polybar/config
1[module/cpu]
2type = internal/cpu
3interval = 1
4format-prefix = " "
5format-prefix-foreground = ${colors.foreground}
6format-prefix-background = ${colors.background}
7;format-underline = ${colors.foreground}
8label = "%percentage:2%%"
9label-foreground = ${colors.foreground}
10label-background = ${colors.background}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul CPU di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul FileSystem

$HOME/.config/polybar/config
1[module/filesystem]
2type = internal/fs
3interval = 25
4
5mount-0 = /
6
7label-mounted = " %percentage_used%%"
8label-mounted-foreground = ${colors.foreground}
9label-mounted-background = ${colors.background}
10
11label-unmounted = %mountpoint% not mounted
12label-unmounted-foreground = ${colors.foreground}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul filesystem di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul Temperature

$HOME/.config/polybar/config
1[module/temperature]
2type = internal/temperature
3thermal-zone = 0
4warn-temperature = 80
5
6format = "<ramp><label>"
7format-foreground = ${colors.foreground}
8format-background = ${colors.background}
9label = "%temperature-c%"
10label-foreground = ${colors.foreground}
11label-background = ${colors.background}
12
13format-warn = <ramp><label-warn>
14label-warn = "%temperature-c%"
15label-warn-foreground = ${colors.alert}
16
17ramp-0 = " "
18ramp-1 = " "
19ramp-2 = " "
20ramp-3 = " "
21ramp-4 = " "
22ramp-foreground = ${colors.foreground}
23ramp-background = ${colors.background}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul temperature di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Moudul Date

$HOME/.config/polybar/config
1[module/date]
2type = internal/date
3interval = 1
4
5date = "0%u%y%m%d"
6date-alt = "%a %Y/%m/%d"
7
8time = "%H%M"
9time-alt = " %H:%M"
10
11format-prefix = " "
12format-prefix-foreground = ${colors.foreground}
13format-prefix-background = ${colors.background}
14
15label = %date%%time%
16label-foreground = ${colors.foreground}
17label-background = ${colors.background}

Untuk penjelasan lebih lengkap mengenai blok-blok kode date network di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul Network

Untuk Wireless LAN

$HOME/.config/polybar/config
1[module/netspdwlan]
2type = internal/network
3interface = wlp4s0
4interval = 1.0
5format-connected = "<label-connected>"
6label-connected = " %downspeed:3%  %upspeed:3%"
7label-connected-foreground = ${colors.foreground}
8label-connected-background = ${colors.background}
9
10[module/wlan]
11type = internal/network
12interface = wlp4s0
13interval = 1.0
14
15format-connected = "<ramp-signal>"
16label-connected = " %essid:0:10:% "
17label-connected-foreground = ${colors.foreground}
18label-connected-background = ${colors.background}
19
20format-disconnected = <label-disconnected>
21label-disconnected = " OFFLINE "
22label-disconnected-foreground = ${colors.foreground}
23
24ramp-signal-0 = %{T5}0%{T-}
25ramp-signal-1 = %{T5}1%{T-}
26ramp-signal-2 = %{T5}2%{T-}
27ramp-signal-3 = %{T5}3%{T-}
28ramp-signal-foreground = ${colors.foreground}
29ramp-signal-background = ${colors.background}

Untuk Wired LAN

$HOME/.config/polybar/config
1[module/netspdeth]
2type = internal/network
3interface = enp0s31f6
4interval = 1.0
5format-connected = "<label-connected>"
6label-connected = " %downspeed:3%  %upspeed:3% |"
7label-connected-foreground = ${colors.foreground}
8label-connected-background = ${colors.background}
9
10
11[module/eth]
12type = internal/network
13interface = enp0s31f6
14interval = 1.0
15
16format-connected-prefix = " "
17format-connected-prefix-foreground = ${colors.foreground}
18format-connected-prefix-background = ${colors.background}
19label-connected = " %local_ip% "
20
21;format-disconnected = <label-disconnected>
22;label-disconnected =  %ifname%
23;label-disconnected-foreground = ${colors.foreground}

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul network di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul Battery

$HOME/.config/polybar/config
1[module/battery]
2type = internal/battery
3battery = BAT0
4adapter = AC
5full-at = 90
6
7format-charging = "<animation-charging><label-charging>"
8;format-charging-underline = ${colors.foreground}
9label-charging-foreground = ${colors.foreground}
10label-charging-background = ${colors.background}
11
12format-discharging = "<ramp-capacity><label-discharging>"
13;format-discharging-underline = ${self.format-charging-underline}
14label-discharging-foreground = ${colors.foreground}
15label-discharging-background = ${colors.background}
16
17format-full-prefix = "  "
18format-full-prefix-foreground = ${colors.foreground}
19format-full-prefix-background = ${colors.background}
20;format-full-underline = ${self.format-charging-underline}
21
22ramp-capacity-0 = "  "
23ramp-capacity-0-foreground = ${colors.alert}
24ramp-capacity-1 = "  "
25ramp-capacity-2 = "  "
26ramp-capacity-3 = "  "
27ramp-capacity-foreground = ${colors.foreground}
28ramp-capacity-background = ${colors.background}
29
30animation-charging-0 = "  "
31animation-charging-1 = "  "
32animation-charging-2 = "  "
33animation-charging-3 = "  "
34animation-charging-foreground = ${colors.foreground}
35animation-charging-background = ${colors.background}
36animation-charging-framerate = 750

Karena saya mempunyai dua battery, yaitu Internal (BAT0) dan Eksternal (BAT1), saya memodifikasi nama module menjadi [module/battery0] dan [module/battery1]. Saya mengcopy paste [module/battery0] menjadi [module/battery1] dan mengganti value pada variabel battery = menjadi BAT0.

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul battery di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Modul Text

$HOME/.config/polybar/config
1[module/profile]
2type = custom/text
3content = "%{T3}%{T-} BANDITHIJO"
4content-foreground = ${colors.foreground}
5content-background = ${colors.background}
6
7[module/sp1]
8type = custom/text
9content = " "
10content-foreground = ${colors.foreground}
11content-background = ${colors.background}
12
13[module/sp2]
14type = custom/text
15content = " | "
16;content = "  "
17content-foreground = ${colors.foreground-alt}
18content-background = ${colors.background}

Saya menggunkaan modul text untuk menambahkan beberapa element text pada Polybar. Seperti text bertulisakan “BANDITHIJO”.

Saya juga menggunakan modul text untuk memberikan jarak atau pun simbol pemisah seperti |.

Untuk penjelasan lebih lengkap mengenai blok-blok kode modul text di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Blok [settings]

Pada blok ini tidak banyak yang saya pahami.

Hanya mengikuti konfigurasi dari Wiki Polybar.

$HOME/.config/polybar/config
1[settings]
2throttle-output = 5
3throttle-output-for = 10
4throttle-input-for = 30
5screenchange-reload = true
6compositing-background = over
7compositing-foreground = over
8compositing-overline = over
9compositing-underline = over
10compositing-border = over
11pseudo-transparency = false

Untuk penjelasan lebih lengkap mengenai kode blok settings di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Blok [global/wm]

$HOME/.config/polybar/config
1[global/wm]
2margin-top = 0
3margin-bottom = 0

Untuk penjelasan lebih lengkap mengenai kode blok global/wm di atas, silahkan mengunjungi halaman Wiki Polybar, di sini.

Tips

Show/Hide Bar untuk Trayicon (konvensional)

PERHATIAN!

Pendekatan ini sudah tidak lagi saya pergunakan. Saya lebih merekomendasikan menggunakan pendekatan terbaru.

Terdapat banyak sekali kelemahan dari menggunakan pendekatan konvensional.

Namun, yang paling mengganggu saya adalah: Fungsi aplikasi yang sangat tergantung dengan trayicon, tidak berjalan dengan semestinya.

Contohnya seperti nm-applet yang apabila tidak disimpan di trayicon dan hanya berjalan sebagai background process, tidak akan memberikan notifikasi status network. Maka dari itu, saya lebih merekomendasikan untuk menggunakan pendekatan terbaru.

Cara terbaru ini memanfaatkan IPC (Interprocess Communication) agar kita dapat mengirimkan message process ke Polybar dengan menggunakan perintah polybar-msg.

Cara terbaru saya tulis pada artikel terpisah, Polybar sebagai Trayicon dengan Fitur Hide/Show Menggunakan polybar-msg

Karena saya tidak memerlukan trayicon selalu muncul pada tampilan Polybar saya. Karena icon-icon pada trayicon tidak selalu berinteraksi dengan saya. Saya berinteraksi dengan trayicon hanya apabila saya perlukan saja.

Maka dari itu, saya membuat trayicon terpisah pada bar tersendiri yang dapat di panggil apabila diperlukan dan disembunyikan apabila sudah tidak digunakan.

Caranya sangat mudah.

Dengan menambahkan bar kedua.

Saya akan berinama [bar/traybspwm]

Berikut ini isi dari bar ini.

$HOME/.config/polybar/config
1[bar/traybspwm]
2monitor = eDP1
3width = 5.0%
4height = 22
5radius = 5.0
6offset-x = -3
7offset-y = 0.6%
8fixed-center = true
9bottom = yes
10
11foreground = ${colors.foreground}
12background = ${colors.background}
13
14line-size = 1
15line-color = #dfdfdf
16
17border-size = 0
18
19padding-left = 0
20padding-right = 0
21
22module-margin-left = 0
23module-margin-right = 0
24
25font-0 = Fira Code Retina:pixelsize=9;2
26
27;separator =
28
29modules-left = sp1
30modules-center =
31modules-right = sp1
32
33tray-position = left
34tray-padding = 0
35tray-maxsize = 16
36tray-scale = 1.0
37tray-foreground = ${colors.foreground}
38tray-background = ${colors.background}
39tray-detached = true
40tray-offset-x = 3
41tray-offset-y = 0
42
43;wm-restack = bspwm
44
45override-redirect = true
46
47cursor-click = pointer
48cursor-scroll = ns-resize

Sepintas hampir mirip dengan [bar/barbspwm], namun apabila diperhatikan dengan baik, nilai yang ada di dalam bar ini sangat berbeda.

Selanjutnya tinggal membuat pemicu agar dapat dipanggil dan disembunyikan.

Pertama, buat dahulu script untuk mengaktifkan dan mematikan traybspwm ini.

$ touch ~/.local/bin/polybar-tray
$ chmod +x ~/.local/bin/polybar-tray
$ vim ~/.local/bin/polybar-tray
$HOME/.local/bin/polybar-tray
1#!/bin/sh
2
3status=${1}
4
5if [ $status = 'on' ]; then
6 polybar traybspwm &
7elif [ $status = 'off' ]; then
8 kill `ps aux | awk '/[p]olybar traybspwm/ {print $2}'`
9else
10 echo 'Wrong argument! [on/off]'
11fi

Maksud dari script di atas adalah, apabila kita memanggil polybar-tray on pada Terminal, maka bar traybspwm akan diaktifkan. Begitupula sebaliknya apabila kita menjalankan polybar-tray off.

Kedua, tinggal meletakkan pemanggilan ini pada keyboard shortcut pada Window Manager.

Saya akan mencontohkan pada BSPWM. Untuk teman-teman yang menggunakan Window Manager yang lain, silahkan menyesuaikan sendiri yaa. Hehehe.

Untuk BSPWM, konfigurasi keyboard shortcut ada pada file ~/.config/sxhkd/sxhkdrc.

Kita akan tambahkan blok kode untuk memanggil dan menyembunyikan traybspwm.

$ vim ~/.config/sxhkd/sxhkdrc

Tambahkan saja di baris paling akhir.

$HOME/.config/sxhkd/sxhkdrc
1# ...
2# ...
3
4# polybar-tray
5super + ~F12
6 {polybar-tray off; polybar-tray on, polybar-tray off}

Saya menggunakan kombinasi keyboard SUPER+F12 untuk mengaktifkan bar traybspwm dan SUPER+SHIFT+F12 untuk menyembunyikannya.

Berikut ini adalah demonstrasinya.

Gambar 4

Contoh File Konfigurasi

Nah, kalo sudah memahami blok demi blok di atas. Saya akan memberikan gambaran full dari baris kode konfigurasi Polybar yang saya miliki.

$HOME/.config/polybar/config
1;============================================================================;
2; ;
3; To learn more about how to configure Polybar ;
4; go to https://github.com/jaagr/polybar ;
5; ;
6; The README contains alot of information ;
7; ;
8;============================================================================;
9
10
11;-----------------------------------------------------------------------COLORS
12
13[colors]
14foreground = #BCC3C3
15background = #002B36
16foreground-alt = #56696F
17background-alt = #073642
18alert = #CB4B16
19
20;-----------------------------------------------------------------BAR/BARBSPWM
21
22[bar/barbspwm]
23monitor = ${env:MONITOR:}
24monitor-fallback = eDP1
25width = 100%
26height = 24
27radius = 5.0
28;offset-x = 0
29;offset-y = 0
30fixed-center = true
31bottom = false
32
33foreground = ${colors.foreground}
34background = ${colors.background}
35
36line-size = 1
37line-color = #dfdfdf
38
39;border-size = 0
40border-top-size = 5
41border-bottom-size = 0
42border-left-size = 5
43border-right-size = 5
44;border-color = ${colors.background}
45
46padding-left = 1
47padding-right = 1
48
49module-margin-left = 0
50module-margin-right = 0
51
52font-0 = Fira Code Retina:pixelsize=9;2
53font-1 = FontAwesome:pixelsize=10;2
54font-2 = Font Awesome 5 Brands:size=10;2
55font-3 = Fira Code Retina:weight=Bold:pixelsize=9;2
56font-4 = Fira Code Retina:weight=Bold:pixelsize=6;-1
57font-5 = FontAwesome:weight=Bold:pixelsize=4;-2
58
59;separator =
60
61modules-left = bspwm xwindow
62modules-center =
63modules-right = xkeyboard netspdwlan netspdeth sp1 wlan eth sp2 xbacklight sp2 pulseaudio sp2 memory sp1 temperature sp2 battery1 battery0 sp2 date sp2 profile
64
65;tray-position = right
66;tray-padding = 0
67;tray-detached = false
68;tray-maxsize = 16
69;tray-scale = 1.0
70;tray-foreground = ${colors.foreground}
71;tray-background = ${colors.background}
72;tray-offses-x = 0
73;tray-offset-y = 0
74
75wm-name = bspwm
76
77wm-restack = bspwm
78
79override-redirect = false
80
81cursor-click = pointer
82cursor-scroll = ns-resize
83
84;----------------------------------------------------------------BAR/TRAYBSPWM
85
86[bar/traybspwm]
87monitor = eDP1
88width = 5.0%
89height = 22
90radius = 5.0
91offset-x = -3
92offset-y = 0.6%
93fixed-center = true
94bottom = true
95
96foreground = ${colors.foreground}
97background = ${colors.background}
98
99line-size = 1
100line-color = #dfdfdf
101
102border-size = 0
103
104padding-left = 0
105padding-right = 0
106
107module-margin-left = 0
108module-margin-right = 0
109
110font-0 = Fira Code Retina:pixelsize=9;2
111
112;separator =
113
114modules-left = sp1
115modules-center =
116modules-right = sp1
117
118tray-position = left
119tray-padding = 0
120tray-maxsize = 16
121tray-scale = 1.0
122tray-foreground = ${colors.foreground}
123tray-background = ${colors.background}
124tray-detached = true
125tray-offset-x = 3
126tray-offset-y = 0
127
128;wm-restack = bspwm
129
130override-redirect = true
131
132cursor-click = pointer
133cursor-scroll = ns-resize
134
135;-----------------------------------------------------------------MODULE:BSPWM
136
137[module/bspwm]
138type = internal/bspwm
139
140pin-workspaces = true
141inline-mode = false
142enable-click = false
143enable-scroll = false
144reverse-scroll = false
145fuzzy-match = true
146
147format = <label-state> <label-mode>
148
149label-monitor = "%name%%{F#56696F} |%{F-}"
150
151label-dimmed-foreground = ${colors.foreground}
152label-dimmed-focused-background = ${colors.background}
153
154label-focused = "%{T6} %{T-}%{T1}%name%%{T-}%{F#56696F} |%{F-}"
155label-focused-foreground = #ffffff
156label-focused-background = ${colors.background}
157
158label-occupied = "%{T6} %{T-}%{T1}%name%%{T-}%{F#56696F} |%{F-}"
159
160label-urgent = "%{T6} %{T-}%{T1}%name%%{T-}%{F#56696F} |%{F-}"
161label-urgent-foreground = ${colors.alert}
162label-urgent-background = ${colors.background}
163
164label-empty = "%{T6}%{F#002B36} %{F-}%{T-}%name%%{F#56696F} |%{F-}"
165label-empty-foreground = ${colors.foreground-alt}
166
167label-tiled = []=
168label-monocle = [M]=
169label-floating = <><
170label-fullscreen = [F]
171label-pseudotiled = [T]
172label-locked = [X]
173label-locked-foreground = ${colors.foreground}
174label-sticky = [Y]
175label-sticky-foreground = ${colors.foreground}
176label-private = [Z]
177label-private-foreground = ${colors.foreground}
178
179label-separator =
180label-separator-padding = 0
181label-separator-foreground = ${colors.foreground-alt}
182
183;---------------------------------------------------------------MODULE:XWINDOW
184
185[module/xwindow]
186type = internal/xwindow
187format = <label>
188format-padding = 0
189
190label = " %title%"
191label-maxlen = 30
192label-foreground = ${colors.foreground}
193label-background = ${colors.background}
194
195label-empty =
196label-empty-foreground = ${colors.background}
197
198;--------------------------------------------------------------MODUL:XKEYBOARD
199
200[module/xkeyboard]
201type = internal/xkeyboard
202blacklist-0 = num lock
203blacklist-1 = scroll lock
204
205format = <label-indicator>
206format-spacing = 0
207
208format-prefix = " "
209format-prefix-foreground = ${colors.alert}
210format-prefix-background = ${colors.background}
211
212label-layout = "%layout%"
213label-layout-foreground = ${colors.foreground}
214label-layout-background = ${colors.background}
215
216label-indicator-padding = 0
217label-indicator-margin = 0
218label-indicator = %{T4} CAPS %{T-}
219label-indicator-foreground = ${colors.alert}
220label-indicator-background = ${colors.background}
221
222;------------------------------------------------------------MODULE:XBACKLIGHT
223
224[module/xbacklight]
225type = internal/xbacklight
226
227;format = "<label><bar>"
228format = "<label>"
229label = " %percentage%%"
230label-foreground = ${colors.foreground}
231label-background = ${colors.background}
232
233bar-width = 5
234bar-indicator = |
235bar-indicator-foreground = ${colors.foreground}
236bar-indicator-background = ${colors.background}
237bar-indicator-font = 1
238
239bar-fill = -
240bar-fill-font = 1
241bar-fill-foreground = ${colors.foreground}
242bar-fill-background = ${colors.background}
243
244bar-empty = -
245bar-empty-font = 1
246bar-empty-foreground = ${colors.foreground}
247bar-empty-background = ${colors.background}
248
249;------------------------------------------------------------MODULE:PULSEAUDIO
250
251[module/pulseaudio]
252type = internal/pulseaudio
253
254sink = alsa_output.pci-0000_12_00.3.analog-stereo
255
256use-ui-max = true
257
258interval = 5
259
260format-volume = <ramp-volume> <label-volume>
261
262label-muted =
263label-muted-foreground = ${colors.alert}
264
265ramp-volume-0 =
266ramp-volume-1 =
267ramp-volume-2 =
268
269;-----------------------------------------------------------------MODUL:MEMORY
270
271[module/memory]
272type = internal/memory
273interval = 1
274
275format-prefix = " "
276format-prefix-foreground = ${colors.foreground}
277format-prefix-background = ${colors.background}
278
279label = "%percentage_used%%"
280label-foreground = ${colors.foreground}
281label-background = ${colors.background}
282
283;-------------------------------------------------------------------MODULE:CPU
284
285[module/cpu]
286type = internal/cpu
287interval = 1
288format-prefix = " "
289format-prefix-foreground = ${colors.foreground}
290format-prefix-background = ${colors.background}
291;format-underline = ${colors.foreground}
292label = "%percentage:2%%"
293label-foreground = ${colors.foreground}
294label-background = ${colors.background}
295
296;------------------------------------------------------------MODULE:FILESYSTEM
297
298[module/filesystem]
299type = internal/fs
300interval = 25
301
302mount-0 = /
303
304label-mounted = " %percentage_used%%"
305label-mounted-foreground = ${colors.foreground}
306label-mounted-background = ${colors.background}
307
308label-unmounted = %mountpoint% not mounted
309label-unmounted-foreground = ${colors.foreground}
310
311;-----------------------------------------------------------MODULE:TEMPERATURE
312
313[module/temperature]
314type = internal/temperature
315thermal-zone = 0
316warn-temperature = 80
317
318format = "<ramp><label>"
319format-foreground = ${colors.foreground}
320format-background = ${colors.background}
321label = "%temperature-c%"
322label-foreground = ${colors.foreground}
323label-background = ${colors.background}
324
325format-warn = <ramp><label-warn>
326label-warn = "%temperature-c%"
327label-warn-foreground = ${colors.alert}
328
329ramp-0 = " "
330ramp-1 = " "
331ramp-2 = " "
332ramp-3 = " "
333ramp-4 = " "
334ramp-foreground = ${colors.foreground}
335ramp-background = ${colors.background}
336
337;------------------------------------------------------------------MODULE:DATE
338
339[module/date]
340type = internal/date
341interval = 1
342
343date = "0%u%y%m%d"
344date-alt = "%a %Y/%m/%d"
345
346time = "%H%M"
347time-alt = " %H:%M"
348
349format-prefix = " "
350format-prefix-foreground = ${colors.foreground}
351format-prefix-background = ${colors.background}
352
353label = %date%%time%
354label-foreground = ${colors.foreground}
355label-background = ${colors.background}
356
357;---------------------------------------------------------------MODULE:NETWORK
358
359[module/netspdwlan]
360type = internal/network
361interface = wlp4s0
362interval = 1.0
363format-connected = "<label-connected>"
364label-connected = " %downspeed:3%  %upspeed:3%"
365label-connected-foreground = ${colors.foreground}
366label-connected-background = ${colors.background}
367
368
369[module/wlan]
370type = internal/network
371interface = wlp4s0
372interval = 1.0
373
374format-connected = "<ramp-signal>"
375label-connected = " %essid:0:10:% "
376label-connected-foreground = ${colors.foreground}
377label-connected-background = ${colors.background}
378
379format-disconnected = <label-disconnected>
380label-disconnected = " OFFLINE "
381label-disconnected-foreground = ${colors.foreground}
382
383ramp-signal-0 = %{T5}0%{T-}
384ramp-signal-1 = %{T5}1%{T-}
385ramp-signal-2 = %{T5}2%{T-}
386ramp-signal-3 = %{T5}3%{T-}
387ramp-signal-foreground = ${colors.foreground}
388ramp-signal-background = ${colors.background}
389
390;-----------------------------------------------------------------------------
391
392[module/netspdeth]
393type = internal/network
394interface = enp0s31f6
395interval = 1.0
396format-connected = "<label-connected>"
397label-connected = " %downspeed:3%  %upspeed:3% |"
398label-connected-foreground = ${colors.foreground}
399label-connected-background = ${colors.background}
400
401
402[module/eth]
403type = internal/network
404interface = enp0s31f6
405interval = 1.0
406
407format-connected-prefix = " "
408format-connected-prefix-foreground = ${colors.foreground}
409format-connected-prefix-background = ${colors.background}
410label-connected = " %local_ip% "
411
412;format-disconnected = <label-disconnected>
413;label-disconnected =  %ifname%
414;label-disconnected-foreground = ${colors.foreground}
415
416;---------------------------------------------------------------MODULE:BATTERY
417
418[module/battery]
419type = internal/battery
420battery = BAT0
421adapter = AC
422full-at = 90
423
424format-charging = "<animation-charging><label-charging>"
425;format-charging-underline = ${colors.foreground}
426label-charging-foreground = ${colors.foreground}
427label-charging-background = ${colors.background}
428
429format-discharging = "<ramp-capacity><label-discharging>"
430;format-discharging-underline = ${self.format-charging-underline}
431label-discharging-foreground = ${colors.foreground}
432label-discharging-background = ${colors.background}
433
434format-full-prefix = "  "
435format-full-prefix-foreground = ${colors.foreground}
436format-full-prefix-background = ${colors.background}
437;format-full-underline = ${self.format-charging-underline}
438
439ramp-capacity-0 = "  "
440ramp-capacity-0-foreground = ${colors.alert}
441ramp-capacity-1 = "  "
442ramp-capacity-2 = "  "
443ramp-capacity-3 = "  "
444ramp-capacity-foreground = ${colors.foreground}
445ramp-capacity-background = ${colors.background}
446
447animation-charging-0 = "  "
448animation-charging-1 = "  "
449animation-charging-2 = "  "
450animation-charging-3 = "  "
451animation-charging-foreground = ${colors.foreground}
452animation-charging-background = ${colors.background}
453animation-charging-framerate = 750
454
455;------------------------------------------------------------------MODULE:TEXT
456
457[module/profile]
458type = custom/text
459content = "%{T3}%{T-} BANDITHIJO"
460content-foreground = ${colors.foreground}
461content-background = ${colors.background}
462
463[module/sp1]
464type = custom/text
465content = " "
466content-foreground = ${colors.foreground}
467content-background = ${colors.background}
468
469[module/sp2]
470type = custom/text
471content = " | "
472;content = "  "
473content-foreground = ${colors.foreground-alt}
474content-background = ${colors.background}
475
476;---------------------------------------------------------------------SETTINGS
477
478[settings]
479throttle-output = 5
480throttle-output-for = 10
481throttle-input-for = 30
482screenchange-reload = true
483compositing-background = over
484compositing-foreground = over
485compositing-overline = over
486compositing-underline = over
487compositing-border = over
488pseudo-transparency = false
489
490;--------------------------------------------------------------------GLOBAL/WM
491
492[global/wm]
493margin-top = 0
494margin-bottom = 0
495
496
497; vim:ft=dosini

Pesan Penulis

Polybar merupakan salah satu taskbar/panel yang mudah untuk dikonfigurasi dan dikustomisasi.

Saya sendiri sudah tak terhitung berapa kali berganti-ganti komposisi module Polybar yang saya gunakan ini. Hehehe.

Oh iya, sebagai gambaran, mungkin bisa meniru atau menggunakan konfigurasi yang sudah diracikkan oleh orang lain. Misalnya seperti, themes yang dicompose oleh adi1090x/polybar-themes.

Lumayan untuk bahan referensi.

Sekali lagi saya berpesan, tulisan ini bukan merupakan tandingan dari dokumentasi yang ditulis oleh developer dari aplikasi yang sedang kita gunakan, yaitu Polybar.

Sebaik-baik dokumentasi adalah dokumentasi yang ditulis dan dipelihara oleh si pembuat aplikasi tersebut.

Maka dari itu, apabila mengalami kendala pada proses konfigrasi Polybar, silahkan merujuk pada referensi-referensi yang sudah saya sertakan di bawah.

Sepertinya cukup seperti ini saja.

Terima kasih.

Referensi

  1. wiki.archlinux.org/index.php/List_of_applications#Taskbars
    Diakses tanggal: 2019/05/05

  2. github.com/jaagr/polybar
    Diakses tanggal: 2019/05/05