Den mørke siden av mosaikken (III): XMonad

Det ser ut til at jeg har bedt mye, og det er at jeg til dags dato ikke legger en millimeter innstillinger. Som jeg har lovet for en stund i dag vil jeg rive fra meg xmonad.hs som jeg forberedte spesielt for denne anledningen. Denne og andre konfigurasjonsfiler er i Lim inn, spesielt konsollfargene, vinduinnstillingene y den øverste linjen.

Du kan laste dem ned derfra og åpne dem i favoritt teksteditoren din.

Før

Hvis du lurte på, var skrivebordet mitt en liten Openbox på Debian-stall. Hvis du hopper over distribusjonsinstallasjonsprosessen for øyeblikket, bør du bekrefte at de nødvendige pakkene er i repositoriene. La oss gjøre dette (husk at jeg er på Debian):

sudo aptitude installer ghc xmonad xmobar gmrun dmenu

Og klar. Vi har nettopp installert, i rekkefølge etter utseende; Glasgow Haskell Compiler som har ansvaret for å kompilere og tolke Haskell; XMonad, vindusbehandling, XMobar er en stolpe som presenterer informasjon om systemet og noen programstartere, dmenu og gmrun; som allerede er konfigurert slik at XMonad lanserer dem med Mod + P og Mod + Shift + P.

Og slik så skrivebordet mitt ut. Jeg sa det slik at vi kan sammenligne oss og etterligne noen av tingene jeg allerede hadde konfigurert i et mer minimalistisk miljø.

Ikke noe spesielt

Men overraskelse. XMonad ønsker oss velkommen slik. I fangsten har jeg allerede åpnet gmrun, slik at man ser at den ikke er ødelagt:

Ikke noe spektakulært

Og vi vil at det skal se slik ut, allerede konfigurert og alt:

Så ja

Skjermbildet viser en terminal som kjører ncmpcpp, en MPD-klient for terminalen; og en GVim-økt, begge med fargene på paletten Solarisert lys. Å få dette var ikke veldig vanskelig, og til og med Vim og urxvt var allerede klare på systemet mitt.

Xmonad.hs, så skummelt!

Ikke i det hele tatt. Konfigurasjonen du er i ferd med å se er ekstremt enkel og grunnleggende. Den skal fungere på alle systemer som har XMonad 0.9.1, selv om 0.10 allerede er tilgjengelig. Vær redd, veldig redd:

- Xmonad-konfigurasjon - Som du kan se, er det ganske enkelt å importere XMonad importere XMonad.Util.EZConfig importere XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" spawn "nitrogen --gjenopprett" 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")] - Konfigurasjonens slutt. Enkelt, enkelt og rent.

Hva skjedde her?

Hvis de allerede gjenopprettet fra skremmen, kan vi se at konfigurasjonen vår knapt når 30 linjer med kode. Jeg skal forklare del for del, hvorfor hvis du kopierte og limte inn dette, vil XMonad kompilere programmet vi nettopp skrev. Klar?

Avhengighetsseksjonen

Nær begynnelsen av filen er det tre linjer som starter med nøkkelordet importere. Som i andre programmeringsspråk, sender den kompilatoren for å finne modulen den ønsker, og den gir funksjonene til den heldige modulen. La oss se det igjen:

importere XMonad importere XMonad.Util.EZConfig importere XMonad.Util.Run

Programmet vårt bruker tre avhengigheter. Den første gir oss XMonads egne funksjoner, den andre og tredje vil hjelpe oss senere å definere hurtigtaster og å kjøre programmer. La oss fortsette.

variabler

Den tingen er wrk og hva er det til? La oss sette pris på koden nærmere:

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

wrk er en variabel, som tilsvarer en liste med fire elementer, alle strenger; fordi Haskell-lister bare godtar en varetype. Hvis du lurer på hvorfor jeg valgte de fire bokstavene til skrivebordene mine, husket jeg fire nukleinbaser av DNA.
Navnet er bare en forkortelse, og vi kan si det myWorkspaces, pepitoRojo eller hva som helst, så lenge det begynner med små bokstaver og vi spesifiserer det i neste avsnitt.
Her begynner det gode med å ha et komplett programmeringsspråk til vår disposisjon, fordi vi kunne definere fargen på vinduet fra en variabel:

windowColor = "#FFFFFF"

Eller til og med lage en funksjon som returnerer en farge med hensyn til humøret vårt:

humørFarge m | m == "Sad" = "# b0c4f6" - Noe som blått | m == "Angry" = "# ba3f3f" - Noe som rødt | m == "Happy" = "# 8bff7e" - Noe som grønt | ellers = "#FFFFFF" - Hvit, i nøytrale dager

Og mye mer. Føler du allerede kraften på fingrene? En ting. Hvis du ikke forstår hva som skjedde, tro at dette er en Haskells egen struktur som vi kaller Guarda og det er i utgangspunktet som et hvis-da-annet-tre, men mer organisert og pent. Og ikke bekymre deg, koden ble skrevet av meg og den fungerer bra.

Hoveddelen

Fra linjen som sier hoved = gjør Vi begynte å spesifisere oppførselen til XMonad. La oss se det rolig.

Sparker ting i begynnelsen

Dette kan oppnås på mange måter, men for å være kort avhengig og gjøre koden renere, om enn tydeligvis mer huleboer, valgte jeg dette:

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

Den første linjen starter XMobar, hvis konfigurasjonsfil vi vil se senere.
Så startet vi noen viktige ting for meg, et fint bakgrunnsbilde (det samme som det i første skjermbilde), en demon som får urxvt til å løpe som vinden, demonen til mpd - som spiller musikken min fra begynnelsen og jeg lukker aldri - og en volumkontroll. Ja, det er det. Syntaksen er den samme hvis du vil starte det du trenger.

Endelige justeringer

Her definerer vi noen ting som vanligvis bare er personlige preferanser. For eksempel liker jeg å bruke den normalt ubrukelige Super-nøkkelen (effektivt windows one) i stedet for Alt, men det er min preferanse. Fjern første linje hvis du vil gå tilbake til Super.

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

Så definerer vi terminalen vår, urxvtc, fordi det er det vi kaller en klient av demonen vi kjørte tidligere. Andre ting, som listen over arbeidsområder, som vi kunne ha lagt inn ting som:

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

Og andre ting som Haskells strenglistebehandling tillater oss.
Tykkelsen på rammen er bare et helt tall, og hvis vi vil endre fargen på vinduet fokusert av funksjonen humørFarge som vi nettopp opprettet, fordi vi lar variabelen være slik:

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

$ På linjen xmonad ... det er bare en anvendelse av riktige assosierende funksjoner, det vil si at vi sparer noen parenteser. 😀

Tastatursnarveier

På slutten av filen har vi en liste over tupler som inneholder noen snarveier. I dette tilfellet starter de GVim, stopper eller spiller av musikken, og forskyver eller forsinker den. Det er det. Den ekstraKeys-funksjonen kommer i den andre modulen vi importerer, og de bakre aksentene gjør at den kjøres i stil med div (/) -funksjonen som 1/2 og ikke div 1 2, noe som gjør det lettere å lese. Sånn er det:

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

.Xmobarrc

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

Dette skal fungere, og det gjør det faktisk. Syntaksen er litt mer kompleks, og det er best hvis du analyserer det selv for å forstå det. Så jeg vil bare begrense meg til å fortelle deg at vi beskriver kommandoene, deres valg og noen ekstra innstillinger, som vil bli vist i XMobar.
Mallinjen har all handlingen, og jeg kom med et triks for å vise sangen jeg hører på. Dette trikset og det å endre sangen ved hurtigtaster krever mpc, en mpd-klient som kan kjøres fra terminalen.

Konklusjoner

Det er det, tror jeg. Vi har allerede gjennomgått hovedfilen til XMonad og begynte å lære Haskell om vi liker det eller ikke. Hvis du vil fortsette, er det en veldig god guide til å begynne med.
I neste avdeling vil vi utforske ikke-programmerbare ledere, spesielt Spectrwm / Scrotwm. Ser deg.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   ivanovblack sa

    !Fantastisk!

    Spectrwm neste gang? ! Ja sir!

  2.   TheSandman86 sa

    Veldig god guide, det ser veldig interessant ut, jeg ønsker å ta en titt, selv om jeg er mer enn komfortabel med Openbox.

  3.   anti sa

    Beklager, jeg savnet å spesifisere hvor disse filene går, men når jeg redigerer innlegget, sender det meg en feilmelding:
    Fatal feil: Ring til udefinert funksjon get_header () i /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php on line
    Hvis noen kan redigere det, går de slik:

    Hovedkonfigurasjonsfil: ~ / .xmonad / xmonad.hs
    Xmobarrc-fil: ~ / .xmobarrc
    Konsollkonfigurasjonsfil: ~ / .Xdefaults
    ????

    1.    anti sa

      Jeg ser ikke ut til å redigere mine egne innlegg. Jeg finner ikke alternativet noe sted på skrivebordet heller. Jeg har et par feil, det er alt, minimale reparasjoner.

  4.   Nano sa

    Vel, jeg synes det er veldig interessant siden det er mer produktivt når det gjelder programmering. Jeg vil rote med Awesome fordi jeg virkelig vil lære LUA.

    Den eksisterer for de av oss som programmerer i Python Qtile, men sannheten er at jeg ikke kan få den til å kjøre, jeg bruker Ubuntu og installerte den via PPA og også fra kilder, men den uheldige tingen vil ikke fungere xD

    Uansett, LUA er noe jeg MÅ lære og ikke noe bedre enn å se hverandres ansikter med denne typen fliser.

    Hold det opp anti, du er på vei til å bli en forfatter innen DesdeLinux

    1.    Nano sa

      Og ja, jeg er på college og i denne dritten har de ikke Linux xD

      1.    anti sa

        Takk nano. Men kan du hjelpe meg med å redigere artiklene etter at de er publisert? Jeg kan ikke.

        1.    nano sa

          Ja, ro deg ned, la dem være som de passer bedre enn jeg fikser dem

  5.   xykyz sa

    Takk anti, jeg vil definitivt prøve XMonad. Jeg ser at den bruker grunnleggende Haskell-ting uten behov for mye kompleksitet som vakter, applikasjonsoperatøren og åpenbart bruk av lister (ellers ville det ikke være Haskell xD).

    La oss se hvordan det ser ut! 🙂

  6.   Fernando sa

    Jeg har brukt en flislegger windows manager i lang tid, kjempebra. Når jeg har tid, vil jeg gjøre en opplæring der jeg håper å kunne forklare hele prosessen, fra å installere kjempebra til å konfigurere et sett med lette programmer og lage vårt eget tema.

    Hvis det virker bra for deg, kan jeg fortelle deg det når jeg har det, slik at du kan publisere det her.

    Forresten og med din tillatelse, gjør jeg litt omtale på den lille nettsiden min. Hvis du vil kan du ta en titt, i tilfelle du er interessert i en publikasjon:

    http://niferniware.sytes.net

    En hilsen!

    1.    MSX sa

      Hvis det er Awesome 3, er jeg absolutt interessert i det.

  7.   Fernando sa

    En detalj, delen av nettet der jeg har vært bloggen, er:
    http://niferniware.sytes.net/blog/

    Jeg beklager feilen.

    Et jubel!

    1.    livlig sa

      Jeg likte virkelig bloggen din ... ^^

      1.    Fernando sa

        Tusen takk Elav, vi er i kontakt!

        Sannheten er det på en måte DesdeLinux Det fikk meg til å lage min egen blogg. Så mye tid på å bruke Linux gjør at man vurderer å bidra med noe tilbake ^^

        En hilsen!

  8.   MSX sa

    "Hvis du lurer på hvorfor jeg valgte de fire bokstavene til skrivebordene mine, husket jeg de fire DNA-kjernebasene."
    Søt, +1

    1.    anti sa

      Vel, jeg liker virkelig ideen om å sette DNA på pultene mine.

  9.   halonsov sa

    Utmerket guide, takket være henne prøver jeg bare xmonad, og jeg kan bare si en ting om det, jeg ble forelsket i xmonad, jeg legger fremdeles ikke hånden på det, og fremdeles virker det utmerket, tusen takk

    1.    MSX sa

      Utmerket, vi håper å se fremgangen din blir til et innlegg! =)

  10.   Victor Salmeron sa

    En liten observasjon til veilederen, for øyeblikket bruker jeg Debian stable (Squeeze), og for å installere dmenyen, gjøres det ikke med en passende dmenu-installasjonsmeny, men med den sukkløse verktøypakken, ellers utmerket opplæring

    1.    anti sa

      Den samme evnen fikser det. I tillegg er rekkefølgen bedre forstått slik.

  11.   tarantonium sa

    Denne guiden forutsetter at du har installert x-er.
    I mitt tilfelle starter jeg bare fra en debian-konsoll, som jeg måtte installere xorg med. Det ville være greit, siden det vi leter etter er et minimalistisk miljø, som starter med en debian uten grafiske miljøer, installerer xmonad i enkel modus og legger til verktøy og konsollprogrammer, for eksempel mutt, irssi, etc.

    1.    anti sa

      Ja, X-ene var allerede på. Selve innlegget forklarer at jeg startet med en minimal Debian som allerede var laget med Openbox.