Az i3wm gyorsbillentyű kezelése

i3wm és i3gaps
I3 ablakkezelő

Az i3wm beállítása az extra gyorsbillentyűkhöz és a médiagombokhoz. Bár már sokan ismeritek az i3wm gyorsbillentyű megoldását, de lehet, hogy belefuttok abba a problémába, amibe én ma. A leírtak bármely olyan ablakkezelőhöz jó, aminél hasonló strukturált kötéseket megtehetsz. Ha jól emlékszem az sxhkd-ban is megteheted hasonló módon. Így nem csak az i3wm média és gyorsbillentyűzésehez lesz alkalmas a leírás, kis fantáziával a saját rendszeredben is használni fogod.
Vettem egy olyan billentyűzetet, aminél az Fn+funkció gombokhoz és plusz pár médiavezérlő gombhoz lehet párosítani egypár programot, illetve van tíz plusz gomb is, ami elvileg programozható makró gomb. Szuper.
Ez kell nekem, hiszen ha van tíz plusz, független gomb, akkor ahhoz programok indítását és egyéb funkciókat rakhatok, a médiavezérlő gombokkal meg a hang stb. lejátszást vezérlem. Plusz ott van egy kis görgő pad, amivel a hangerőt szabályozom. Igencsak nagyon kényelmes lesz.

Mi is a probléma?

Miután kigyönyörködtem magam az RGB csodájában, és megtaláltam a sima egy színnel világítás beállítását rögvest kipróbáltam a G1 makrózó gombot. A szokott mód le akartam kérdezni a nevét, a kódját. Az xev alkalmas erre, és ki is írta a választ:

state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,

Izé… ez nem jó, hiszen már van egy F1 gomb, aminek a kódjához már rendeltem is egy kötést, amit a G1 is simán végrehajt. Minek nekem két F1 gomb? Így nem lesz nekem használható, erre ki kell találni valamit, mert a megszokott bindsym $alt+F1 exec "/home/laci/bin/edconf.sh" kötéshez hasonlóan úgy gondoltam el, hogy ennek van egy pld. G1 neve és majd simán beírom a config-ba és két perc alatt végzem a tíz gombbal…

Kicsit tanulmányoztam a leírás, ami kéttenyérnyi papíron, mikroszkopikus méretű betűkkel közölte, hogy ez úgy működik, hogy a gombokhoz rögzíthetünk egy sorozatot a billentyűzet lenyomásából. Azaz felveszi a lenyomott gomb sorozatot és G1 nyomásával lejátssza. Ami nem rossz, de nekem nem ez kell. Azt pedig nem nagyon akarom, hogy pld. a fenti példa szerinti indítást felvegyen, azaz ne csak az alt+F1 lenyomásával, hanem egy gombbal kevesebbel, a G1 lenyomásával érjem ez az amúgy is meglévő gyorsbillentyűzést. Szép, de ehhez nem kell plusz gomb. Így az i3wm gyorsbillentyű megadás megszokott módját nem tudom használni…

Az i3wm gyorsbillentyű megoldása

Kisebb fejtörés után rájöttem, hogy nem is rossz ez a megoldás és készen is van minden ehhez. Az I3wm gyorsbillentyű kezelése szuper, mert ad olyan lehetőséget, aminél megnyomok egy kombinációt, pld. a Super+y kombót, majd egy másikat, és azt a parancsot végrehajtja. A példa az eredeti i3wm gyorsbillentyű konfigurációban ez volt:

# Press $mod+o followed by either f, t, Escape or Return to launch firefox,
# thunderbird or return to the default mode, respectively.
#set $mode_launcher Launch: [f]irefox [t]hunderbird
bindsym $mod+y mode "$mode_launcher"
#
mode "$mode_launcher" {
bindsym f exec firefox
bindsym t exec thunderbird

bindsym Escape mode "default"
bindsym Return mode "default"
}

A Firefox indítása: Super+y majd a f és azután vagy a Esc, vagy az Enter lenyomásával lépünk ki a funkcióból. Én eddig ezt a szerkezetet nem használtam, mert jellemzően elfelejtettem a kilépést, és amíg ebben a szerkezetben vagyok, a többi gyorsbillentyű nem működik. Szuper, már csak össze kell szedni a többi indítandó parancsot, beírni és megmagyarázni a billentyűzetnek, hogy a G1 lenyomásával induljon el a Super, y, f, Enter sorozat. Így belépünk a szerkezetbe, kiválasztjuk a programot, majd kilépünk a szerkezetből, hogy visszaálljon az eredeti kiosztás.

A felvétel minden billentyűzeten más és más lehet, nálam az Fn és G1 lenyomásával indul, majd odafigyelve elindítottam a felvétel: Super + y majd f majd Enter. Ezután le kell állítani a felvételt, mert addig veszi amíg le nincs állítva. Nagyon intelligensen a G1 színe megváltozott, jelezve, hogy már nem sima, üres gombocska, hanem egy olyan, ami komoly feladatokat lát el.
Bármi karakterláncot vissza fog játszani, így alkalmas bármilyen egyéb feladatra is ez a makrózás, akár egy programom belüli makrózásra is. Ami jó is lehet, de zavaró is, ha más programban indítod el a makrót.

Összefoglalva:

Maga az i3wm gyorsbillentyű megoldása nem nehéz, csak figyelmet kíván. Bár jobb lenne, ha ezek a gombok egy saját kóddal rendelkeznének, amit a többi, az összes eddig használthoz hasonlóan egyszerűen használhatnék, de így sem rossz. Legalább egy blokkban lesz az összes plusz extra gombhoz tartozó gyorsbillentyű sor a configban.

Remélem segítettem valamit, ha van ilyen plusz gomb, ami makrózható nálad is. Bár nem váltja meg a világot, de gyors munkát lehet vele végezni, ha értelmes feladatra makrózod be.

Multimédia gombok beállítása

Ez már nem okozhat gondot, itt mindegyiknek van normális, saját neve, kódja. Kivéve aminek nincs, ilyen lehet egy görgetőpad, vagy a billentyűzet kikapcsoló gomb. A praktikusság azt kívánja szerintem, hogy előbb az összes gomb kódját kérdezzük le, írjuk fel. Nálam ez rendre:

XF86ToolsF86AudioLowerVolume
XF86AudioRaiseVolume
XF86AudioMute
XF86AudioStop
XF86AudioPrev
XF86AudioPlay
XF86AudioNext
XF86Mail
XF86HomePage
XF86Calculator
XF86Search

Amit érdemes tudni, hogy hiába van az Fn+F3, egy multimédiás XF86AudioRaiseVolume külön billentyű, és esetleg egy hangerő görgő külön gombon fizikailag, ha mindhárom egy XF86AudioRaiseVolume kódot ad vissza, akkor nem tudunk mindegyikhez más-más billentyűkombinációt rakni, egyszer kell megadni a XF86AudioRaiseVolume-hez rendelt teendőt és mindhárom – fizikailag különböző – billentyűre vonatkozni fog.
A következő lépés már ismert, megadjuk a kívánt parancsot a i3wm gyorsbillentyű kombinációhoz. Ami első látásra egyszerű. De előbb gondoljuk át, mit is akarunk? A legtöbb multimédiásnak mondott gomb gyakorlatilag egyszerű, hiszen oda bármit lehet kötni, de érdemes a XF86Mail-hoz a levelezőt kötni. Bár nem előírás, és bármi mehet oda is, de ha már ott van a rajzocska rajta, akkor legyen is ott a program.
Ami már komolyabb kérdést vet fel az a hangerő stb. szabályozása.

Mit is akarunk vele? A hangerőt szabályozni. De melyiket? Kétféle hangerőnk van, amit érdemes elválasztani. A hangrendszerünk hangereje és a lejátszó program hangereje. Az elsőnél központilag szabályozod az erőt, azaz minden hangot adó program egyforma mértékben lesz erősebb, vagy halkabb. A másiknál egy adott program, pld. az általam használt hanganyag katalogizáló, a strawberry ereje lesz szabályozva. Ha csak egyféle programot használsz az összes hangot is tartalmazó fájlhoz, akkor nem kérdés, de ha már van a strawberry, és az smplayer, a VLC stb. akkor nem ideális egyhez kötni a gombot. Én azt választottam, hogy a központi hangot szabályom fel és le. A programokban pedig – ha kell finomítok – a program saját lehetőségeivel.
Az, hogy a Te rendszeredben hogyan szabályozod a hangerőt azt egyéni lehet, nekem a pulseaudio adja a hangot. Így az alábbi kötéseket kellett összehozni:

bindsym XF86AudioLowerVolume exec "pactl set-sink-volume @DEFAULT_SINK@ -5%"
bindsym XF86AudioRaiseVolume exec "pactl set-sink-volume @DEFAULT_SINK@ +5%"

Ezen lehet finomítani, hogy csak ez egy százalékot erősítsen, de lehet emelni is hogy többet. A saját beállításaidat magad kísérletezd ki, kis google keresés után már szuperül megoldható.

A következő probléma megint fontos kérdés: a leállítás, a következő hangfájlra lépés stb. melyik programhoz legyen kötve. Itt már nem feltétlen tudnánk megoldani, hogy minden programban egy parancs szerint ugorjon a következő zeneszámra.
Az is egy megoldás lehet, ha egy gombhoz több parancsot adsz meg, de pld. az i3wm gyorsbillentyű megoldása ezt nem tolerálja.
Hm… így első lépésben meg kell határozni a leginkább használt programot, ami nálam strawberry, ami egy clementine klón. Majd a használni kívánt leállít, előre ugrik stb. parancsokat ki kell keresni a leírásból. Amit itt nem is olyan nehéz, mert a helpje szuper, érthető és nagyon jól áttekinthető.

XF86AudioMute strawberry -u, bár itt az általános elnémítást is használhatnánk, ha úgy kívánjuk
XF86AudioStop strawberry -s
XF86AudioPrev strawberry -r
XF86AudioPlay strawberry -p
XF86AudioNext strawberry -f

Érdekességképp teszem hozzá, hogy hasonlóan több lejátszóhoz, a strawberry is ismeri azt a kellemes funkciót, hogy egy paranccsal le állítja a lejátszást, ha az fut, elindítja, ha nem. Ami igencsak kellemes megoldás.
Ami apró, de kényelmi megoldás, hogy ha már az összes multimédiás stb. gomb kódját, nevét felsoroltuk, akkor nem töröljük ki az i3wm gyorsbillentyű felsorolásból, hanem csak kikommentejük a nem használtat. Így amikor eset mégis kell már csak beírjuk a kulcsot, nem kell lekérdezni a pontos nevét.

Kb. ennyi feladatot ró ránk, ha a plusz makró gombokat és a multimédiás gombokat is szeretnénk használni az i3wm gyorsbillentyű megoldásában.

Related Posts