visual wofi

Menyusun Session Manager Wayland Sederhana dengan Wofi.

Setiap Desktop Environment (DE) dan kadang beberapa window manager (wm) memiliki fitur session manager, di mana session manager ini berfungsi untuk logout (keluar dari DE / WM), restart (restart distro) dan shutdown / poweroff (mematikan perangkat). Hari ini kita akan bereksperimen menyusun session manager sederhana menggunakan wofi. Mari kita simak !

Wofi, aplikasi apa itu ?

Secara sederhana, wofi merupakan padanan dan alternatif untuk rofi, sebuah peluncur / launcher aplikasi. Tidak hanya berfungsi sebagai launcher aplikasi, wofi juga bisa digunakan sebagai :

  • menu.
  • bagian dari GUI.
  • alternaif dmenu.
  • dan lain-lain.

Wofi secara khusus berjalan di lingkungan wayland. Oleh karena itu, kita akan menyusun session manager khusus untuk lingkungan wayland.

Persiapan.

Berikut ini adalah beberapa hal yang perlu dipersiapkan :

  • wofi, bisa dipasang melalui paket manager.

  • perintah untuk melakukan logout, restart, dan shutdown.

    untuk pengguna distro dengan systemd :

      - restart : `systemctl reboot`.
      - shutdown : `systemctl poweroff`.
    

    untuk pengguna distro non-systemd :

      - restart : `loginctl reboot`.
      - shutdown : `loginctl poweroff`.
    

    untuk perintah logout kembali ke kompositor wayland masing-masing, alternatif yang bisa kita pakai adalah killall nama_kompositor.

  • Text editor.

  • Font awesome (optional).

Langkah menyusun.

Baiklah, persiapan sudah kita lakukan, saatnya menyusun !

  • Menyusun daftar menu.

    Daftar menu di sini adalah daftar apa saja yang akan kita pilih. Kita akan membuat 1 daftar menu yang berisi 4 item : – Shutdown. – Restart. – Logout. – Cancel.

    Kita bisa menulisnya sebagai berikut :

    menu=" Shutdown\n Restart\n Logout\n Cancel"
    
  • Memvisualisasikan daftar menu & menyortir item yang terpilih.

    Daftar menu sudah terbuat, sekarang kita perlu memvisualisasikannya dengan wofi. Berikut adalh contohnya :

    selected=$(echo -e $menu | \
    wofi -W 10% --dmenu --line 5 \
    --cache-file /dev/null -p "Wolo" | \
    awk '{print tolower ($2)}')
    

Hasil visualisasi dari menu :

visual wofi

  • Membuat fungsi untuk setiap item.

    Daftar menu yang sudah divisualisasikan dengan wofi ketika kita pilih masih memiliki fungsi kosong / tidak terjadi apa-apa ketika kita pilih. Sekarang kita perlu membuat fungsi untuk setiap item, mulai dari Shutdown, Restart, Logout, dan Cancel.

    • Shutdown.
    shutdown () {
    	pilih="Yes\nNo\nBack"
    	
    	selected=$(echo -e $pilih | wofi -W 10% --dmenu --line 3 --cache-file /dev/null -p "Shutdown ?" | awk '{print tolower ($1)}')
    	
    	case $selected in
    	   yes)
    	      exec loginctl poweroff;;
    	   no)
    	      exec killall wofi;;
    	   back)
    	      $0;;
    	esac
    }
    
    • Restart.
    reboot () {
    	pilih="Yes\nNo\nBack"
    	
    	selected=$(echo -e $pilih | wofi -W 10% --dmenu --line 3 --cache-file /dev/null -p "Reboot ?" | awk '{print tolower ($1)}')
    	
    	case $selected in
    	   yes)
    	      exec loginctl reboot;;
    	   no)
    	      exec killall wofi;;
    	   back)
    	      $0;;
    	esac
    }
    
    • Logout.
    killwaycomp () {
    	if pgrep -x "dwl" > /dev/null; then
    		killall dwl
    	elif pgrep -x "sway" > /dev/null; then
    		killall sway
    	elif pgrep -x "labwc" > /dev/null; then
    		killall labwc
    	elif pgrep -x "hikari" > /dev/null; then
    		killall hikari
    	fi
    }
    log_out () {
    	pilih="Yes\nNo\nBack"
    	
    	selected=$(echo -e $pilih | wofi -W 10% --dmenu --line 3 --cache-file /dev/null -p "Logout Wayland ?" | awk '{print tolower ($1)}')
    	
    	case $selected in
    	   yes)
    	      killwaycomp;;
    	   no)
    	      exec killall wofi;;
    	   back)
    	      $0;;
    	esac
    }
    
  • Menentukan fungsi untuk item yang terpilih.

    Setelah fungsi untuk setiap item sudah terbuat, kita peru menentukan fungsi untuk item yang terpilih. Kita bisa menggunakan case dari bash.

    case $selected in
       shutdown)
          shutdown;;
       restart)
          reboot;;
       logout)
          log_out;;
       cancel)
          exec killall wofi;;
    esac
    
  • menyusun semua menjadi satu kesatuan dan menjadikannya executable.

Gabungkanlah semua bagian menjadi satu bagian skrip bash ! Agar bisa berjalan, jangan lupa menjadikannya executable dengan perintah chmod +x namaskrip.

Percobaan

Setelah skrip bash sudah tersimpan dan menjadi executable, kita perlu mencobanya.

  • Masuk ke kompositor wayland (misal sway) !
  • Buka terminal !
  • jalankan skrip session manager-nya !
  • Pilih salah satu item (misal logout) ! Jika berhasil logout, maka skrip kita berjalan dan sukses.
visual wofi
visual wofi2

Penutup.

Hari ini kita sudah mencoba bereksperimen membuat session manager sederhana dengan wofi. Semoga bisa diikuti dan berhasil. Terima kasih dan sampai bertemu di post selanjutnya.

Artikel Terkait

Leave a Reply

Your email address will not be published. Required fields are marked *