Tamna strana mozaika (III): XMonad

Čini se da sam se puno molio i to je da do danas nisam stavio milimetar postavki. Kao što sam i obećavao trenutak danas ću rastrgati svoj xmonad.hs koji sam pripremio posebno za ovu priliku. Ova i druge konfiguracijske datoteke nalaze se u lijepljenju, posebno boje konzole, postavke prozora y gornja traka.

Odatle ih možete preuzeti i otvoriti u omiljenom uređivaču teksta.

Prije

U slučaju da se pitate, moja radna površina bila je mali Openbox na Debian staji. Preskačući postupak instalacije distribucije trenutno, trebali biste provjeriti nalaze li se potrebni paketi u spremištima. Učinimo ovo (sjetimo se da sam na Debianu):

sudo aptitude instalirati ghc xmonad xmobar gmrun dmenu

I spreman. Upravo smo instalirali, prema redoslijedu izgleda; Glasgow Haskell Compiler koji je zadužen za sastavljanje i tumačenje Haskella; XMonad, upravitelj prozora, XMobar je traka koja predstavlja informacije o sustavu i nekim pokretačima programa, dmenu i gmrun; koji su već ljubazno konfigurirani tako da ih XMonad lansira sa Mod + P i Mod + Shift + P.

I ovako je izgledala moja radna površina. Izložio sam to tako da imamo točku usporedbe i oponašamo neke stvari koje sam već konfigurirao u minimalističkijem okruženju.

Ništa posebno

Ali iznenađenje. XMonad nas ovako pozdravlja. U hvatanju sam već otvorio gmrun, tako da možete vidjeti da nije slomljen:

Ništa spektakularno

I želimo da izgleda ovako, već konfigurirano i sve ostalo:

Pa da

Snimak zaslona prikazuje terminal koji pokreće ncmpcpp, MPD klijent za terminal; i GVim sesiju, obje s bojama palete Solarizirana svjetlost. Dobiti ovo zapravo nije bilo teško, pa čak su i Vim i urxvt već bili spremni na mom sustavu.

Xmonad.hs, kako zastrašujuće!

Nikako. Konfiguracija koju ćete vidjeti izuzetno je jednostavna i osnovna. Trebao bi raditi na svim sustavima s XMonad 0.9.1, iako je 0.10 već dostupan. Pa, bojte se, jako se bojte:

- Konfiguracija Xmonad - Kao što vidite, prilično je jednostavan uvoz XMonad import XMonad.Util.EZConfig import XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" mrijest "dušik --restore" mrijest "urxvtd" mrijest "mpd" mrijest "xfce4-volumed" xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e ", focusBorderColor =" # 3b002 ", workspaces = wrk}` AdditionalKeys` [((mod26Mask, xK_v), mrijest "gvim"), ((mod4Mask, xK_c), mrijest "mpc toggle"), ((mod4Mask, xK_a) , mrijest "mpc prev"), ((mod4Mask, xK_s), mrijest "mpc sljedeći")] - Kraj konfiguracije. Jednostavno, lako i čisto.

Što se ovdje dogodilo?

Ako su se već oporavili od zastrašivanja, možemo vidjeti da naša konfiguracija jedva doseže 30 redaka koda. Objasnit ću dio po dio, zašto ako ste ovo kopirali i zalijepili, XMonad će sastaviti program koji smo upravo napisali. Spreman?

Odjeljak ovisnosti

Na početku datoteke nalaze se tri retka koji počinju s ključnom riječi uvoz. Kao i u drugim programskim jezicima, on šalje prevoditelju da pronađe modul koji želi i daje mu funkcije sretnog modula. Da vidimo opet:

uvoz XMonad uvoz XMonad.Util.EZConfig uvoz XMonad.Util.Run

Naš program koristi tri ovisnosti. Prva nam donosi funkcije XMonad, druga i treća pomoći će nam kasnije da definiramo prečace na tipkovnici i pokrenemo programe. Idemo dalje.

Varijable

Ta stvar jest rad i čemu služi Cjenimo kod bliže:

wrk = ["A", "C", "G", "T"]

rad je varijabla koja je ekvivalentna popisu od četiri elementa, svi nizovi; jer popisi Haskell prihvaćaju samo jednu vrstu predmeta. Ako se pitate zašto sam odabrao ta četiri slova za svoje radne površine, sjetio sam se četiri nukleinske baze DNA.
Ime je samo kratica i mogli bismo ga staviti myWorkspaces, pepitoRojo ili bilo što drugo, pod uvjetom da započinje malim slovom i ako ga navedemo u sljedećem odjeljku.
Ovdje počinje dobra stvar s raspolaganjem cjelovitim programskim jezikom, jer bismo iz varijable mogli definirati boju prozora:

windowColor = "#FFFFFF"

Ili čak stvorite funkciju koja vraća boju s obzirom na naše raspoloženje:

moodColor m | m == "Sad" = "# b0c4f6" - Nešto poput plave | m == "Angry" = "# ba3f3f" - Nešto poput crvene | m == "Happy" = "# 8bff7e" - Nešto poput zelene | inače = "#FFFFFF" - Bijelo, za neutralne dane

I mnogo više. Osjećate li već snagu na prstima? Jedna stvar. Ako ne razumijete što se dogodilo, mislite da je ovo Haskell-ova vlastita struktura koju nazivamo Guarda i u osnovi je poput stabla, ako tada postoji, ali organiziranije i ljepše. I ne brinite, kod sam napisao ja i dobro funkcionira.

Glavni odjeljak

Iz retka koji kaže glavni = učiniti počeli smo precizirati ponašanje XMonada. Da vidimo mirno.

Započeti stvari na početku

To se može postići na mnogo načina, ali kako bih izbjegao ovisnosti i učinio kôd čišćim, iako očito jasnijim čovjekom, odlučio sam se za ovo:

xmproc <- spawnPipe "xmobar" mrijest "dušik --restore" mrijest "urxvtd" mrijest "mpd" mrijest "xfce4-volumed"

Prvi redak započinje XMobar, čiju ćemo konfiguracijsku datoteku vidjeti kasnije.
Tada smo započeli neke bitne stvari za mene, lijepu pozadinu (istu kao ona na prvom snimku zaslona), demon zbog kojeg urxvt radi poput vjetra, demon mpd -a koji pušta moju glazbu od početka i nikad je ne zatvorim - i kontrola glasnoće. Da, to je to. Sintaksa je ista ako želite započeti ono što vam treba.

Konačne prilagodbe

Ovdje definiramo neke stvari koje su obično samo osobne preferencije. Na primjer, volim koristiti normalno beskorisnu Super tipku (zapravo onu Windows) umjesto Alt, ali to je moja preferencija. Ako se želite vratiti u Super, uklonite prvi redak.

- ... xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3", focusBorderColor = "# 002b26", workspaces = wrk} - ...

Tada definiramo naš terminal, urxvtc, jer tako zovemo klijenta demona kojeg smo ranije trčali. Ostale stvari, poput popisa radnih prostora, koje smo mogli staviti u stvari poput:

, radni prostori = ["H", "O", "L", "A"], radni prostori = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], radni prostori = [" 1: web "," 2: glazba "," 3: neiskorišteni prostor "," 4: Ufff "]

I druge stvari koje nam omogućuje obrada popisa nizova Haskell.
Debljina obruba je samo cijeli broj i ako želimo promijeniti boju prozora fokusiranu na funkciju Boja raspoloženja koju smo upravo stvorili, jer varijablu ostavljamo ovako:

--..., focusBorderColor = moodColor "Happy" - ...

$ Na liniji xmonad ... To je samo primjena desnih asocijativnih funkcija, tj. čuvamo neke zagrade. 

Tipkovni prečaci

Na kraju datoteke imamo popis korpica koje sadrže neke prečace, u ovom slučaju pokreću GVim, pauziraju ili reproduciraju glazbu te je unaprijed ili odgađaju. To je to. Funkcija AdditionalKeys dolazi u drugom modulu koji uvozimo, a stražnji akcenti čine da se izvršava u stilu funkcije div (/) poput 1/2, a ne div 1 2, što olakšava čitanje. Tako je:

- ...} `AdditionalKeys` [((mod4Mask, xK_v), mrijest" gvim "), ((mod4Mask, xK_c), mrijest" mpc toggle "), ((mod4Mask, xK_a), mrijest" mpc prev ") , ((mod4Mask, xK_s), mrijesti "mpc next")]

.Xmobarrc

Konfigurirajte {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", position = Top , lowerOnStart = False, naredbe = [Pokreni Com "echo" ["$ USER"] "username" 864000, Run Com "hostname" ["-s"] "hostname" 864000, Run Com "mpc current" [""] "mpd" 10, Datum pokretanja "% a% b% d" "datum" 36000, Datum pokretanja "% H:% M" "vrijeme" 10, Pokreni StdinReader], sepChar = "'", alignSep = "} {" , predložak = "'korisničko ime' @ 'ime hosta'} {'mpd' | 'datum' - 'vrijeme'"

Ovo bi trebalo uspjeti, i zapravo je tako. Sintaksa je malo složenija i najbolje je ako je sami analizirate kako biste je razumjeli. Dakle, ograničit ću se samo na to da vam kažem da opisujemo naredbe, njihove mogućnosti i neke dodatne postavke, koje će biti prikazane u XMobaru.
Redak predloška ima sve radnje i smislio sam trik za prikaz pjesme koju slušam. Ovaj trik i onaj za promjenu pjesme tipkovnim prečacima zahtijevaju mpc, mpd klijent koji se može izvršiti s terminala.

Zaključci

To je to, mislim. Već smo pregledali glavnu datoteku XMonad i počeli učiti Haskell htjeli mi to ili ne. Ako želite nastaviti, za početak postoji vrlo dobar vodič.
U sljedećem dijelu istražit ćemo neprogramirane upravitelje, posebno Spectrwm / Scrotwm. Vidimo se.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

      ivanovblack dijo

    !Fantastičan!

    Spectrwm sljedeći put? !Da gospodine!

      TheSandman86 dijo

    Vrlo dobar vodič, izgleda vrlo zanimljivo, želim ga pogledati, iako mi je više nego ugodno s mojim Openboxom.

      anti dijo

    Ups, propustio sam odrediti kamo te datoteke idu, ali kad uredim post, šalje mi poruku o pogrešci:
    Kobna pogreška: poziv na nedefiniranu funkciju get_header () u /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php na mreži
    Ako ga netko može urediti, ide ovako:

    Glavna konfiguracijska datoteka: ~ / .xmonad / xmonad.hs
    Xmobarrc datoteka: ~ / .xmobarrc
    Datoteka za konfiguraciju konzole: ~ / .X zadano
    ????

         anti dijo

      Čini mi se da ne mogu uređivati ​​vlastite postove. Opciju ne mogu pronaći nigdje na radnoj površini. Imam par bugova, to je to, minimalni popravci.

      Nano dijo

    Pa, čini mi se super zanimljivim jer je produktivnije što se tiče programiranja. Želim se petljati s Awesomeom jer stvarno želim naučiti LUA.

    Postoji za nas koji programiramo na Python Qtileu, ali istina je da ga ne mogu pokrenuti, koristim Ubuntu i instalirao sam ga preko PPA-a, a također iz izvora, ali nesretnik ne želi raditi xD

    U svakom slučaju, LUA je nešto što MORAM naučiti i ništa bolje od međusobnog viđanja lica s ovom vrstom pločica.

    Nastavite dalje, na putu ste da postanete autor u DesdeLinux-u

         Nano dijo

      I da, ja sam na fakultetu i u ovom sranju nemaju Linux xD

           anti dijo

        Hvala nano. Ali, možete li mi pomoći pri uređivanju članaka nakon što su objavljeni? Ne mogu.

             nano dijo

          Da, smiri se, ostavi ih kako bolje pristaju nego što ih popravljam

      xykyz dijo

    Hvala anti, definitivno ću isprobati XMonad. Vidim da koristi osnovne Haskell-ove stvari bez potrebe za puno složenosti poput čuvara, operatora aplikacije i očito upotrebe popisa (inače to ne bi bio Haskell xD).

    Da vidimo kako to izgleda! 🙂

      Fernando dijo

    Već duže vrijeme koristim upravitelj popločanih prozora, Sjajno. Kad budem imao vremena, napravit ću tutorial u kojem se nadam da ću moći objasniti cijeli postupak, od instaliranja sjajnog programa do konfiguriranja niza laganih programa i stvaranja vlastite teme.

    Ako vam se čini dobrim, kad ga budem imao, mogu vas obavijestiti kako biste ga mogli objaviti ovdje.

    Usput i uz vaše dopuštenje, pomalo oglašavam svoju malu web stranicu, ako želite možete je pogledati, u slučaju da vas zanima neka publikacija:

    http://niferniware.sytes.net

    Pozdrav!

         MSX dijo

      Ako je Awesome 3 mene to definitivno zanima.

      Fernando dijo

    Jedan detalj, odjeljak na kojem sam bio domaćin bloga je:
    http://niferniware.sytes.net/blog/

    Žao mi je zbog pogreške.

    Navijati!

         živo dijo

      Stvarno mi se svidio vaš blog ... ^^

           Fernando dijo

        Hvala ti puno Elav, u kontaktu smo!

        Istina je da me na neki način DesdeLinux potaknuo na stvaranje vlastitog bloga. Toliko vremena korištenja Linuxa natjera na razmišljanje o doprinosu nečemu zauzvrat ^^

        Pozdrav!

      MSX dijo

    "Ako se pitate zašto sam odabrao ta četiri slova za svoje stolove, sjetio sam se četiri nukleinske baze DNA."
    Slatko, +1

         anti dijo

      Pa, stvarno mi se sviđa ideja da DNK stavim na svoje stolove.

      halonsov dijo

    Izvrsan vodič, zahvaljujući njoj samo pokušavam xmonad, i mogu reći samo jedno, zaljubio sam se u xmonad, još uvijek ne stavljam ruku na njega i još uvijek se čini izvrsnim, hvala lijepa

         MSX dijo

      Izvrsno, nadamo se da ćemo vaš napredak pretvoriti u objavu! =)

      Victor Salmeron dijo

    Malo opažanje učitelju, trenutno koristim Debian stable (Squeeze), a za instalaciju dmenua to se ne radi s aptitude install dmenu, već s paketom bezalkoholnih alata, inače izvrstan vodič

         anti dijo

      Ista sklonost to popravlja. Uz to, redoslijed se ovako bolje razumije.

      tarantonij dijo

    Ovaj vodič pretpostavlja da ste instalirali x-ove.
    U mom slučaju započinjem samo s debian konzolom, s kojom sam morao instalirati xorg. Bilo bi u redu, jer ono što tražimo je minimalističko okruženje, počevši od debiana bez grafičkih okruženja, instalirajući xmonad u jednostavnom načinu i dodajući alate i programe konzole, kao što su mutt, irssi itd.

         anti dijo

      Da, X-ovi su već bili uključeni. Sam post objašnjava da sam započeo s minimalnim Debianom koji je već napravljen s Openboxom.