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.