Rofi – menü mester

Linux kezdő
Linux kezdő

Gyors, egyszerű választó menü, ami hordozható asztali környezet és ablakkezelők közt? Rofi. Pár lehetőséget kipróbáltam, de most ezt tartom a legegyszerűbbnek, legkisebb munka befektetésével a legjobb eredményt adónak. Mi is az a választó menü? Egy olyan grafikus panel, amiben felsorolhatok pár funkciót, lehetőséget és ha az egyiket kiválasztottam, akkor az a funkció elindul. A funkció bármi lehet, egy program, egy web lap megnyitása, egy zene lejátszása – bármi. Azaz valamiféle menüszerűség. Nekem pár olyan funkció kell, ami egy ilyen eszköznél szerintem alap. Az első, hogy n legyen bonyolult, azaz ha készítek egy sablont, az egyszerű legyen és villámgyorsan átírható más funkcióra. Ezt teljesen kielégíti a rofi. Egyszerű szerkezetű legyen, ne kelljen különféle programnyelveket megtanulni.

Ez is igaz a rofira. Hordozható legyen, mert ha asztalkezelők közt váltok, akkor ne kelljen specifikusan arra az asztalkezelőre átírni. Ez is a rofi tulajdonsága. Ami nekem nagyon fontos tényező: a menüből akár egérrel, akár pedig billentyűzetről választani tudjak.

A rofi telepítése

Egyszerű. Telepítsd a disztribúciód szerint. Majd látogass el a https://github.com/davatorium/rofi oldalra és nézd meg a leírását.

Egyszerű példa a rofi használatára

Ez a világ legegyszerűbb példája a rofi-ra. Egy sima kiléptetési menü, de sablonnak nagyon jó. A MagyArch i3-as kiléptető menü lesz a példa.

#!/bin/sh

DIALOG_RESULT=$(echo -e 'Quit i3\nHibernate\nReboot\nPoweroff' | rofi -dmenu -i -p "SYSTEM" -hide-scrollbar -tokenize -lines 7 -eh 1 -width 25 -location 0 -xoffset 0 -yoffset 0 -padding 20 -disable-history)

case $DIALOG_RESULT in

"Quit i3" ) pkill i3 ;;

"Hibernate") systemctl hibernate ;;

"Reboot") systemctl reboot ;;

"Poweroff") systemctl poweroff ;;

*) exit 0

esac

Ahogy az első sorból látod, ez egy sima szkript: #!/bin/sh. Szöveges fájl, így sima szövegszerkesztővel lehet szerkeszteni.

A DIALOG_RESULT=$ sor adja meg a panel tulajdonságait, ezt mindenképp érdemes átnézni, mert sok panel tulajdonságot felhasznál, hogy jól nézzen ki a panel. De ha valaki csak ennyit ír be:

DIALOG_RESULT=$(echo -e 'Quit i3\nHibernate\nReboot\nPoweroff' | rofi -dmenu -i -p "SYSTEM" )

Bőven elegendő lesz neki, hiszen az ablaknak lesz címsora „SYSTEM”, és meg is jelenik. A többi már inkább ízlés, és szépészeti megoldás. Már is is látható, hogy nagyon testre szabható a panel, a megjelenése, annak a helye és egyéb kinézeti, vagy praktikussági jellemzők. Ebbe most nem mennék bele, hiszen egy végtelen téma. A man és a help jól tárgyalja ezeket.

A fontosabb rész az echo -e 'Quit i3\nHibernate\nReboot\nPoweroff' ahol értelemszerűen felsorolod a választási lehetőségeket, azok nevét. Bár akármennyi menüpontot meghatározhatsz, de érdemes mértékletesnek lenni. Sok menü káoszt okoz, elmegy az user kedve a használattól. Kis gyorsító tipp: a menüpontok első betűje eltérő legyen. Így a menüből az első betű leütése után gyorsan választhatsz.

A tényleges munkaterület

case $DIALOG_RESULT in

"Quit i3" ) pkill i3 ;;

"Hibernate") systemctl hibernate ;;

"Reboot") systemctl reboot ;;

"Poweroff") systemctl poweroff ;;

*) exit 0

esac

Sima case/esac szerkezet, aminek a megértéséhet nulla programozási ismeret kell. Ha egyet láttál, és van mintád, akkor csak töltögetni kell.

"Hibernate") systemctl hibernate ;;

Az első tag pontosan egyezzen meg a felsorolásban megadott menüponttal. Én soha nem írok ide be semmit, hanem másolom az echo -e utáni részből. Így gyorsabb és nincs elírás.

Majd a parancs jön, amit végre kell hajtani. Én előbb – ha nem ilyen egyszerű – kipróbálom terminálban, és ha jó, csak bemásolom.

Az *) exit 0 egy fontos rész. Ezzel biztosítom, hogy ha bármi olyan billentyűt lenyomok, amivel nem kezdődik menü, akkor kilép a rofi. Ami nálam azt jelenti, hogy ha az Esc-et ütöm, akkor eltűnik a menü. Szuper!

Ennyi? Igen. Faék egyszerűségű megoldást mutattam, a sablon testre szabható, átírható. Kis figyelemmel, pontos munkával saját menüt hozhatsz létre.

Kipróbáltam, de hááát nem szép!

Így igaz! Alapbeállítás, bár eltérhet Linux disztribúciónként nem szép. De itt sem kell nagyon mély és bonyolult számítógépes ismeret:

rofi-theme-selector

Sok téma közül választhatsz, olyan lesz a kinézete, amilyent szeretnél a megjelenő rofi ablakoknak.

Ha pedig nevm találsz kedvedre valót, akkor a ‘/home/laci/.config/rofi/config’ fájlt szerkesztheted. Ha pedig az usr/share/rofi/themes/ könyvtárba körbenézel, az előredefiniált rofi-theme-selector témákat is átírhatod.

Pár alapvető parancs

rofi -show run

rofi -show drun

Ha ezeket hozzárendeled egy billentyű kombinációhoz, akkor egy start menüt kapsz. Ez természetesen szépítgethető, de a funkcióját betölti: kapsz egy startmenüt.

A futó ablakok közt a

rofi -show window

ad váltási lehetőséget. Itt is igaz, hogy ezen lehet szépíteni, pontosítani, de bőven kielégíti az elvárást már így is.

Egy hasonló megoldás már mutattam, a gyors szerkesztési részben. Ott nem az induló programokat, hanem egy szerkesztő program paraméterét, a megnyitandó fájlt választhattuk ki.

Related Posts