Heti Linux trükk – xmonadosok előnyben

Xmonad
Xmonad

A mai első trükk egy nagyon jó oldal az xmonad Linux alapok és a heskell alapok terén: https://lambdablob.com/posts/xmonad-overview/ . Az oldal angol, de nagyon érthető még Google fordítóval is. Elmagyarázza az alapokat is, megérheted ezáltal a xmonad konfigurációhoz szükséges alap heskell-t.

A második Linux tipp is az xmonad-hoz tartozik. A gyorsbillentyűzés ismert, itt nem is az alap beállítási lehetőségekre térnék ki, hiszen egyszerű. Felsorolja az ember a lenyomandó billentyűket, majd azt, hogy mit tegyen a gép. Én eddig abban a tévhitben voltam, hogy csak a mod+mod+betű lehet a maximális összetettségű kombináció. Nagyon hiányzott az ebbél strukturáltabb megoldás, amikor megadok egy kombinációt, majd azután egy plusz gombhoz rendelhetem a program indítását.

Miért? Mert egy sxhkd-ban és az I3wm-ben ez megoldható. Illetve egy idő után elfogynak a kényelmesen elérhető gombok, és jó lenne kissé rendezettebben indítani a programokat, funkciókat.

, ("M-S-f d", spawn "doublecmd")

, ("M-S-f k", spawn "krusader")

, ("M-S-f s", spawn "spacefm")

Így talán már érthetőbb a dolog. Lenyomjuk a mod, shift és a f(ájlkezelő) gombot majd azután a d, vagy k, vagy s jön. Bár a példa elég egyszerű, a lényeg érthető. Igen, ha valaki akarja és haskell-ben járatos, akkor a fenn ajánlott oldalt áttanulmányozva egyszerűbben, két listával, majd azt egyesítve megoldhatja szebben is. Nekem jó ez így, simán beírva.

Ha pedig kicsit jobb formázással, profibb megoldást keresel, akkor a

import Xmonad.Actions.Submap

és már strukturáltabban, jobban átláthatóbban teheted meg ugyanezt.

, ((modm, xK_F4), submap . M.fromList $

[ ((0, xK_n), spawn $ "audacity")

, ((0, xK_p), spawn $ "ocenaudio")

, ((0, xK_z), spawn $ "inkscape")

, ((0, xK_space), spawn $ "gimp")

])

Azaz mod+F4 majd a megfelelő gomb lenyomásával jutsz el a programhoz. Itt a 0 a sor elején azt jelzi, hogy nem adtál meg a sublist-ben módosító gombot. A fenti kötések csak példák, a tesztelésnél használtam őket.

Az egész szerkezet pont olyan formázást kíván meg, mint a megszokott. De a sublist felsorolást [] zárójelek fogják egybe, és az összes () jó helyen legyen.

Ez talán jobb megoldás ha több ilyen listát szeretnél, mint az első.

A CapsLock tipp újra

Az előző Linux tipp részben letiltottam a CapsLock-ot mert már kissé zavart, hogy időnként lenyomva marad, véletlenül. De ha már megvettük ezt a gombot, akkor azt használjuk fel!

Cseréljük le egy másik kódra és akkor használni tudjuk.

Én a Ctrl-t szavaztam meg oda, ami nagyon kényelmes: kisujj a CapsLock-on, az a, x, c és a v a megszokott szövegszerkesztő kombináció gyorsan elérhető a többivel.

/usr/bin/setxkbmap -option “ctrl:nocaps”

Érdemes ezt egy terminálablakban végrehajtani, hogy megbizonyosodjunk arról, hogy az eredmények megfelelnek-e az elvártnak. Majd a rendszerednek megfelelő autostart-ba berakni.

Vagy aki szeretné dinamikussá tenni a dolgot, annak lehet egy billentyűkombinációt is hozzárendelni, majd egy másikat a törléséhez, ahol a /usr/bin/setxkbmap -option törli az összes ilyen beállítást. Szuper!

Multimédia gombok és az xmonad

A gyorsbillentyűk megadása xmonad alatt inkább precizitás, mint magas szintű tudás kérdése. Bár sok zárójel, és pontos szintaktika kell, de nem okoz gondot senkinek. A probléma akkor van, ha a multimédiás gombokhoz akarunk rendelni valamit. Egyszerű halandó a megszokott mód lekéri a gomb nevét: XF86AudioLowerVolume stb.

, ((0, XF86AudioLowerVolume ), spawn $ "pactl set-sink-volume @DEFAULT_SINK@ -5%" )

Amikor újrafordítja a kedvenc xmonad-ját hibával találkozik:

Error detected while loading xmonad configuration file: /home/laci/.xmonad/xmonad.hs

xmonad.hs:219:13: error:* Data constructor not in scope:
F86AudioLowerVolume :: KeySym
* Perhaps you meant variable `xF86XK_AudioLowerVolume` (imported from Graphics.X11.ExtraTypes.XF86)
|
219 | , ((0, XF86AudioLowerVolume ), spawn $ “pactl set-sink-volume @DEFAULT_SINK@ -5%” )
| ^^^^^^^^^^^^^^^^^^^
Please check the file for errors.

Mi ez? Arra panaszkodik, hogy bizony ő ilyen billenytűt nem ismer. A megoldás valóban egyszerű, de nem könnyű rájönni.

Be kell importálni a

import Graphics.X11.ExtraTypes.XF86

modult. Majd a megszokott mód megadni a kulcskötéseket, azzal az eltéréssel, hogy kicsit át kell alakítani a kulcsok nevét.

XF86AudioLowerVolume helyett a xF86XK_AudioLowerVolume a megfelelő. Ha van egy listád a gombok nevéről (nekem az I3wm konfigban volt), akkor sima keres, cserél megoldással gyorsan megoldható, vagy a modul honlapján lévő neveket másolod be a konfigurációs fájlba.

, ((0, xF86XK_AudioLowerVolume ), spawn $ "pactl set-sink-volume @DEFAULT_SINK@ -5%" )

, ((0, xF86XK_AudioRaiseVolume ), spawn $ "pactl set-sink-volume @DEFAULT_SINK@ +5%" )

, ((0, xF86XK_AudioStop ), spawn $ "strawberry -s")

, ((0, xF86XK_AudioPrev ), spawn $ "strawberry -r")

, ((0, xF86XK_AudioPlay ), spawn $ "strawberry -p")

, ((0, xF86XK_AudioNext ), spawn $ "strawberry -f")

, ((0, xF86XK_AudioMute ), spawn $ "strawberry -u")

Ahogy látni nem egy bonyolult dolog, ha már tudjuk a gombok nevét.

Gondolom senkit nem lep meg, hogy az utóbbi időben az xmonad konfigurálásosával foglalkoztam, így a tippek nagy része ezt a rendszert érintette.

A MagyArch videócsatornán jelent meg egy polybar konfigurációs videó, amit érdemes megnézni.

A héten jelent meg janu fordításai is a PcLinuxOS magazinból.

Related Posts