Membuat fitur help-me dengan menggunakan Dunst

Home About RSS

👤 Raffi Utama

🗓️ 23 May 2023

Tulisan ini terinspirasi dari blog “BanditHijo - Memanfaatkan Dunst Sebagai PopUp Notifikasi Bantuan Keyboard Shortcut”. Kali ini saya akan modifikasi tutorial tersebut dengan menggunakan wofi sebagai launcher pengganti rofi di wayland.

Apa itu dunst?

Dunst merupakan sebuah lightweight notification-daemon atau lebih gampangnya sebuah software yang akan menampilkan notifikasi di laptop. Kita dapat mengirimkan notifikasi melalui terminal dengan dunstify, previewnya kaya gini:

dunstify

Ide pembuatan dunst sebagai helper adalah dengan mengirimkan isi sebuah file sebagai body text ke dunstify. File tersebut akan kita asumsikan sebagai helper file yang terletak di folder $HOME/helper/. Contohnya, kode berikut digunakan untuk menampilkan semua file berekstensi *.md di folder tersebut.

$ basename --suffix=.md -- *.md

Output of basename command

Selanjutnya, kita akan memilih file yang akan ditampilkan dengan mode dmenu pada wofi. Caranya adalah dengan menambahkan parameter -d untuk mengaktifkan dmenu mode dan parameter -p "Need Help?" sebagai placeholder input text wofi

$ wofi -d -p "Need help?"

Preview of wofi command

Dari preview diatas, tidak muncul apapun, Hal ini karena mode dmenu pada wofi mensyaratkan input berupa stdin. Jadi, kita akan gabungkan perintah basename sebagai input ke wofi kodenya akan seperti ini

$ basename --suffix=.md -- *.md | wofi -d -p "Need help?"

Preview of combination command basename and wofi

Command wofi akan menampilkan output berupa nama dari helper file. nama file ini yang akan diprint dan dikirimkan ke dunst dengan cara menggabungkan script menjadi

#!/bin/bash

helper_file=$(basename --suffix=.md -- *.md | wofi -d -p "Need help?")

dunstify "Result: " "cat $helper_file.md"

Final Script

Final script

Dengan menambahkan pengecekan folder dan file, maka keseluruhan script yang dibuat adalah sebagai berikut

#!/bin/bash

DIR_HELPER="$HOME/helper/"

if ! [ -d $DIR_HELPER ]; then
	echo "DIR_HELPER Not Found"
	exit 1
fi

cd $DIR_HELPER

helper_file=$(basename --suffix=.md -- *.md | wofi -d -p "Need Help?")

# check if file exist not null
if ! [ -f "$DIR_HELPER/$helper_file.md" ]; then
	echo "Not Found"
	exit 1
fi

dunstify "⭐⭐⭐" "$(cat "$DIR_HELPER/$helper_file.md")

Simpan file ini dengan nama help-me dan masukkan ke dalam $PATH variabel. Kemudian dapat dibuat shortcut, contohnya pada sway dengan cara

bindsym $mod+Shift+slash exec help-me

Semoga bermanfaat