Den mørke side af mosaikken (III): XMonad

Det ser ud til, at jeg har bedt meget, og det er, at jeg indtil i dag ikke lægger en millimeter indstillinger. Som jeg har lovet for et stykke tid i dag vil jeg rive min xmonad.hs fra hinanden, som jeg forberedte specielt til denne lejlighed. Denne og andre konfigurationsfiler er specifikt i Sæt ind konsolens farver, vinduesindstillingerne y den øverste bjælke.

Du kan downloade dem derfra og åbne dem i din yndlings teksteditor.

Før

Hvis du spekulerede på, var mit skrivebord en lille Openbox på Debian-stald. Spring over distributionsinstallationsprocessen for øjeblikket, skal du kontrollere, at de nødvendige pakker er i arkiverne. Lad os gøre dette (husk at jeg er på Debian):

sudo aptitude installer ghc xmonad xmobar gmrun dmenu

Og klar. Vi installerede lige i rækkefølge efter udseende; Glasgow Haskell Compiler, der har ansvaret for at kompilere og fortolke Haskell; XMonad, vinduesadministrator, XMobar er en bjælke, der præsenterer information om systemet og nogle programstartere, dmenu og gmrun; der venligt allerede er konfigureret, så XMonad lancerer dem med Mod + P og Mod + Shift + P.

Og sådan så mit skrivebord ud. Jeg udtrykker det, så vi har et sammenligningspunkt og efterligner nogle af de ting, som jeg allerede havde konfigureret i et mere minimalistisk miljø.

Ikke noget specielt

Men overraskelse. XMonad byder os sådan velkommen. I fangsten har jeg allerede åbnet gmrun, så det ses, at det ikke er brudt:

Intet spektakulært

Og vi vil have det til at se sådan ud, allerede konfigureret og alt:

Så ja

Skærmbilledet viser en terminal, der kører ncmpcpp, en MPD-klient til terminalen; og en GVim-session, begge med palettens farver Solariseret lys. At få dette var ikke rigtig svært, og selv Vim og urxvt var allerede klar på mit system.

Xmonad.hs, hvor skræmmende!

Slet ikke. Den konfiguration, du er ved at se, er ekstremt enkel og grundlæggende. Det skal fungere på alle systemer, der har XMonad 0.9.1, selvom 0.10 allerede er tilgængelig. Nå, vær bange, meget bange:

- Xmonad-konfiguration - Som du kan se, er det ret simpelt import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" spawn "nitrogen - gendan" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumes" xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3 ", focusBorderColor =" # 002b26 ", workspaces = wrk}` additionalKeys` [((mod4Mask, xK_v), spawn "gvim"), ((mod4Mask, xK_c), spawn "mpc toggle"), ((mod4Mask, xK_a) , spawn "mpc prev"), ((mod4Mask, xK_s), spawn "mpc next")] - Konfigurationsslut. Enkelt, let og rent.

Hvad skete der her?

Hvis de allerede er kommet sig efter skræmmen, kan vi se, at vores konfiguration næppe når 30 linjer kode. Jeg vil forklare del for del, hvorfor hvis du kopierede og indsatte dette, vil XMonad kompilere det program, vi lige har skrevet. Parat?

Afhængighedsafsnittet

Nær begyndelsen af ​​filen er der tre linjer, der starter med nøgleordet importere. Som i andre programmeringssprog sender den compileren for at finde det modul, den ønsker, og den giver funktionerne i det heldige modul. Lad os se det igen:

import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run

Vores program bruger tre afhængigheder. Den første bringer os XMonads egne funktioner, den anden og tredje hjælper os senere med at definere tastaturgenveje og køre programmer. Lad os fortsætte.

Variable

Den ting er wrk og hvad er det til? Lad os sætte pris på koden nærmere:

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

wrk er en variabel, der svarer til en liste med fire elementer, alle strenge; fordi Haskell-lister kun accepterer en varetype. Hvis du spekulerer på, hvorfor jeg valgte disse fire bogstaver til mine desktops, huskede jeg fire nukleiske baser af DNA.
Navnet er bare en forkortelse, og vi kan sætte det myWorkspaces, pepitoRojo eller hvad som helst, så længe det starter med små bogstaver, og vi specificerer det i næste afsnit.
Her begynder det gode ved at have et komplet programmeringssprog til vores rådighed, fordi vi kunne definere vinduesfarven fra en variabel:

windowColor = "#FFFFFF"

Eller opret en funktion, der returnerer en farve i forhold til vores humør:

humørFarve m | m == "Sad" = "# b0c4f6" - Noget som blå | m == "Vred" = "# ba3f3f" - Noget som rød | m == "Happy" = "# 8bff7e" - Noget som grønt | ellers = "#FFFFFF" - Hvid, i neutrale dage

Og meget mere. Føler du allerede styrken på dine fingre? En ting. Hvis du ikke forstår, hvad der skete, skal du tro, at dette er en Haskells egen struktur, som vi kalder Guarda og det er grundlæggende som et hvis-så-andet træ, men mere organiseret og smukt. Og rolig, koden blev skrevet af mig, og den fungerer fint.

Hovedafsnittet

Fra linjen der siger hoved = gør vi begyndte at specificere XMonads opførsel. Lad os se det roligt.

Sparker ting i starten

Dette kan opnås på mange måder, men for at undgå afhængigheder og gøre kode renere, omend klart mere huleboer, valgte jeg dette:

xmproc <- spawnPipe "xmobar" spawn "nitrogen - gendan" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"

Den første linje starter XMobar, hvis konfigurationsfil vi vil se senere.
Så startede vi nogle vigtige ting for mig, et dejligt tapet (det samme som det i det første skærmbillede), en dæmon, der får urxvt til at løbe som vinden, dæmonen til mpd - som spiller min musik fra starten, og jeg lukker aldrig - og en lydstyrkekontrol. Ja, det er det. Syntaksen er den samme, hvis du vil starte det, du har brug for.

Endelige justeringer

Her definerer vi nogle ting, der normalt kun er personlige præferencer. For eksempel kan jeg godt lide at bruge den normalt ubrugelige Super-nøgle (effektivt windows one) i stedet for Alt, men det er min præference. Fjern den første linje, hvis du vil gå tilbage til Super.

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

Så definerer vi vores terminal, urxvtc, for det er det, vi kalder en klient for den dæmon, som vi kørte tidligere. Andre ting, som listen over arbejdsområder, som vi kunne have lagt i ting som:

, workspaces = ["H", "O", "L", "A"], workspaces = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], workspaces = [" 1: web "," 2: music "," 3: unused space "," 4: Ufff "]

Og andre ting, som Haskells strenglistebehandling giver os mulighed for at gøre.
Grænsens tykkelse er bare et helt tal, og hvis vi vil ændre farven på det vindue, der er fokuseret af funktionen humørFarve som vi lige har oprettet, fordi vi forlader variablen sådan:

--..., focusBorderColor = humørColor "Happy" - ...

$ På linjen xmonad ... det er kun en anvendelse af rigtige associative funktioner, det vil sige, vi gemmer et par parenteser. 😀

Tastaturgenveje

I slutningen af ​​filen har vi en liste over tupler, der indeholder nogle genveje, i dette tilfælde starter de GVim, sætter musikken på pause eller afspiller musikken og fremfører eller forsinker den. Det er det. Den ekstraKeys-funktion kommer i det andet modul, vi importerer, og de bageste accenter gør det til at udføre i stil med div (/) -funktionen som 1/2 og ikke div 1 2, hvilket gør det lettere at læse. Sådan er det:

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

.Xmobarrc

Konfigurer {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", position = Top , lowerOnStart = False, commands = [Run Com "echo" ["$ USER"] "username" 864000, Run Com "hostname" ["-s"] "hostname" 864000, Run Com "mpc current" [""] "mpd" 10, Kørselsdato "% a% b% d" "dato" 36000, Kørselsdato "% H:% M" "tid" 10, Kør StdinReader], sepChar = "'", alignSep = "} {" , template = "'brugernavn' @ 'hostname'} {'mpd' | 'date' - 'time'"

Dette skal fungere, og det gør det faktisk. Syntaksen er lidt mere kompleks, og det er bedst, at du selv analyserer den for at forstå den. Så jeg vil bare begrænse mig til at fortælle dig, at vi beskriver kommandoerne, deres muligheder og nogle ekstra indstillinger, som vises i XMobar.
Skabelonlinjen har al handling, og jeg kom med et trick for at vise den sang, jeg lytter til. Dette trick og det, der ændrer sangen til tastaturgenveje, kræver mpc, en mpd-klient, der kan køres fra terminalen.

konklusioner

Det er det, tror jeg. Vi har allerede gennemgået XMonad-hovedfilen og begyndt at lære Haskell, uanset om vi kan lide det eller ej. Hvis du vil fortsætte, er der en meget god guide til at begynde med.
I den næste rate vil vi udforske ikke-programmerbare ledere, specifikt Spectrwm / Scrotwm. Vi ses.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   ivanovsort sagde han

    !Fantastisk!

    Spectrwm næste gang? !Ja Hr!

  2.   Sandman86 sagde han

    Meget god guide, det ser meget interessant ud, jeg vil se, selvom jeg er mere end fortrolig med min Openbox.

  3.   anti sagde han

    Ups, jeg savnede at angive, hvor disse filer går, men når jeg redigerer indlægget, sender det mig en fejlmeddelelse:
    Fatal fejl: Ring til udefineret funktion get_header () i /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php online
    Hvis nogen kan redigere det, går de sådan:

    Hovedkonfigurationsfil: ~ / .xmonad / xmonad.hs
    Xmobarrc-fil: ~ / .xmobarrc
    Konsolkonfigurationsfil: ~ / .Xdefaults
    ????

    1.    anti sagde han

      Jeg ser ikke ud til at redigere mine egne indlæg. Jeg kan heller ikke finde muligheden nogen steder på skrivebordet. Jeg har et par fejl, det er alt, minimale rettelser.

  4.   Nano sagde han

    Nå, jeg finder det super interessant, da det er mere produktivt, når det kommer til programmering. Jeg vil rode med Awesome, fordi jeg virkelig vil lære LUA.

    Det findes for dem af os, der programmerer i Python Qtile, men sandheden er, at jeg ikke kan få det til at køre, jeg bruger Ubuntu, og jeg installerede det via PPA og også fra kilder, men den uheldige ting ønsker ikke at arbejde xD

    Under alle omstændigheder er LUA noget, jeg SKAL lære og intet bedre end at se hinandens ansigter med denne type fliser.

    Hold det op anti, du er på vej til at blive en forfatter indeni DesdeLinux

    1.    Nano sagde han

      Og ja, jeg er på college og i dette lort har de ikke Linux xD

      1.    anti sagde han

        Tak nano. Men kan du hjælpe mig med redigering af artiklerne, efter at de er offentliggjort? Jeg kan ikke.

        1.    nano sagde han

          Ja, rolig, lad dem være, da de passer bedre, end jeg ordner dem

  5.   xykyz sagde han

    Tak anti, jeg vil helt sikkert prøve XMonad. Jeg ser, at det bruger grundlæggende Haskell-ting uden behov for meget kompleksitet, såsom vagter, applikationsoperatøren og naturligvis brugen af ​​lister (ellers ville det ikke være Haskell xD).

    Lad os se, hvordan det ser ud! 🙂

  6.   Fernando sagde han

    Jeg har brugt en flisebelagt windows manager i lang tid, Awesome. Når jeg har tid, laver jeg en tutorial, hvor jeg håber at forklare hele processen, fra installation af fantastisk til konfiguration af et sæt lette programmer og oprettelse af vores eget tema.

    Hvis det virker godt for dig, kan jeg fortælle dig det, når jeg har det, så du kan offentliggøre det her.

    Forresten og med din tilladelse gør jeg en smule reklame på min lille hjemmeside, hvis du vil, kan du kigge, hvis du er interesseret i en publikation:

    http://niferniware.sytes.net

    Greetings!

    1.    MSX sagde han

      Hvis det er Awesome 3, er jeg bestemt interesseret i det.

  7.   Fernando sagde han

    En detalje, det afsnit på nettet, hvor jeg har været vært for bloggen, er:
    http://niferniware.sytes.net/blog/

    Jeg er ked af fejlen.

    En jubel!

    1.    Elav sagde han

      Jeg kunne virkelig godt lide din blog ... ^^

      1.    Fernando sagde han

        Mange tak Elav, vi er i kontakt!

        Sandheden er det på en måde DesdeLinux Det fik mig til at lave min egen blog. Så meget tid ved at bruge Linux gør, at man overvejer at bidrage med noget til gengæld ^^

        Greetings!

  8.   MSX sagde han

    "Hvis du undrer dig over, hvorfor jeg valgte disse fire bogstaver til mine skriveborde, huskede jeg de fire DNA-kernebaser."
    Sød, +1

    1.    anti sagde han

      Nå, jeg kan virkelig godt lide ideen om at lægge DNA på mine skriveborde.

  9.   halonsov sagde han

    Fremragende guide, takket være hende prøver jeg bare xmonad, og jeg kan kun sige en ting om det, jeg blev forelsket i xmonad, jeg lægger stadig ikke min hånd på det og stadig virker det fremragende, mange tak

    1.    MSX sagde han

      Fremragende, vi håber at se dine fremskridt forvandlet til et indlæg! =)

  10.   Victor Salmeron sagde han

    En lille observation til vejlederen, i øjeblikket bruger jeg Debian stabil (Squeeze), og for at installere dmenuen gøres det ikke med en egnethedsinstallationsdmenu, men med den sukkeløse værktøjspakke, ellers fremragende tutorial

    1.    anti sagde han

      Den samme kapacitet løser det. Derudover forstås ordren bedre sådan.

  11.   tarantonium sagde han

    Denne guide antager, at du har installeret x'er.
    I mit tilfælde starter jeg kun fra en debian-konsol, som jeg skulle installere xorg med. Det ville være fint, da det vi leder efter er et minimalistisk miljø, der starter fra en debian uden grafiske miljøer, installerer xmonad i enkel tilstand og tilføjer værktøjer og konsolprogrammer, såsom mutt, irssi osv.

    1.    anti sagde han

      Ja, X'erne var allerede tændt. Selve indlægget forklarer, at jeg startede med en minimal Debian, der allerede var oprettet med Openbox.