Den mörka sidan av mosaiken (III): XMonad

Det verkar som om jag har bett mycket och det är att jag fram till idag inte lägger en millimeter inställningar. Som jag har lovat för ett tag idag ska jag riva min xmonad.hs som jag förberedde speciellt för detta tillfälle. Denna och andra konfigurationsfiler finns i klistra in specifikt konsolens färger, fönsterinställningarna y den övre stapeln.

Du kan ladda ner dem därifrån och öppna dem i din favorittextredigerare.

Före

Om du undrade var mitt skrivbord en liten Openbox på Debian-stall. Om du hoppar över distributionsinstallationsprocessen för tillfället bör du kontrollera att nödvändiga paket finns i förvaren. Låt oss göra detta (kom ihåg att jag är på Debian):

sudo aptitude installerar ghc xmonad xmobar gmrun dmenu

Och redo. Vi installerade just, i ordning efter utseende; Glasgow Haskell Compiler som ansvarar för att sammanställa och tolka Haskell; XMonad, fönsterhanteraren, XMobar är en stapel som presenterar information om systemet och vissa programstartare, dmenu och gmrun; som vänligen redan är konfigurerade så att XMonad lanserar dem med Mod + P och Mod + Shift + P.

Och så här såg mitt skrivbord ut. Jag uttrycker det så att vi kan jämföra och efterlikna några av de saker som jag redan hade konfigurerat i en mer minimalistisk miljö.

Inget speciellt

Men överraskning. XMonad välkomnar oss så här. I fångsten har jag redan öppnat gmrun för att visa att den inte är trasig:

Inget spektakulärt

Och vi vill att det ska se ut så här, redan konfigurerat och allt:

Så ja

Skärmdumpen visar en terminal som kör ncmpcpp, en MPD-klient för terminalen; och en GVim-session, båda med palettens färger Solariserat ljus. Att få detta var inte riktigt svårt och till och med Vim och urxvt var redan redo på mitt system.

Xmonad.hs, hur skrämmande!

Inte alls. Konfigurationen du ska se är extremt enkel och grundläggande. Det borde fungera på alla system med XMonad 0.9.1, även om 0.10 redan är tillgängligt. Var rädd, väldigt rädd:

- Xmonad-konfiguration - Som du kan se är det ganska enkelt att importera XMonad importera XMonad.Util.EZConfig importera XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = gör xmproc <- spawnPipe "xmobar" spawn "kväve - återställ" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed" 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")] - Avslutad konfiguration. Enkelt, enkelt och rent.

Vad hände här?

Om de redan har återhämtat sig från skrämmningen kan vi se att vår konfiguration knappt når 30 rader kod. Jag kommer att förklara del för del, varför om du kopierade och klistrade in detta kommer XMonad att sammanställa programmet vi just skrev. Redo?

Avhängighetsavsnittet

Nära början av filen finns det tre rader som börjar med nyckelordet importera. Som i andra programmeringsspråk skickar den kompilatorn för att hitta den modul som den vill ha och den ger funktionerna för den lyckliga modulen. Låt oss se det igen:

importera XMonad importera XMonad.Util.EZConfig importera XMonad.Util.Run

Vårt program använder tre beroenden. Den första ger oss XMonads egna funktioner, den andra och tredje hjälper oss senare att definiera kortkommandon och att köra program. Låt oss fortsätta.

variabler

Den saken är wrk och vad är det för? Låt oss ta en närmare titt på koden:

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

wrk är en variabel, som motsvarar en lista med fyra element, alla strängar; eftersom Haskell-listor endast accepterar en objekttyp. Om du undrar varför jag valde de fyra bokstäverna för mina stationära datorer, kom jag ihåg fyra nukleinsbaser av DNA.
Namnet är bara en förkortning, och vi kan uttrycka det myWorkspaces, pepitoRojo eller vad som helst, så länge det börjar med små bokstäver och vi specificerar det i nästa avsnitt.
Här börjar det goda med att ha ett komplett programmeringsspråk till vårt förfogande, för vi kan definiera fönstrets färg från en variabel:

windowColor = "#FFFFFF"

Eller till och med skapa en funktion som returnerar en färg med avseende på vårt humör:

moodColor m | m == "Sad" = "# b0c4f6" - Något som blått | m == "Angry" = "# ba3f3f" - Något som rött | m == "Happy" = "# 8bff7e" - Något som grönt | annars = "#FFFFFF" - Vit, för neutrala dagar

Och mycket mer. Känner du redan kraften på dina fingrar? En sak. Om du inte förstår vad som hände, tänk att detta är en Haskells egen struktur som vi kallar guarda och det är i grund och botten som ett om-då-annat träd, men mer organiserat och vackert. Och oroa dig inte, koden skrevs av mig och den fungerar bra.

Huvudavsnittet

Från linjen som säger huvud = gör vi började specificera beteendet hos XMonad. Låt oss se det lugnt.

Sparkar saker i början

Detta kan uppnås på många sätt, men för att hålla korta beroenden och göra koden renare, om än klart mer grottman, valde jag detta:

xmproc <- spawnPipe "xmobar" spawn "kväve - återställ" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"

Den första raden startar XMobar, vars konfigurationsfil vi kommer att se senare.
Sedan startade vi några väsentliga saker för mig, en fin bakgrundsbild (samma som den i den första skärmdumpen), en demon som får urxvt att springa som vinden, mpd-demon - som spelar min musik från början och jag stänger aldrig - och en volymkontroll. Ja det var det. Syntaxen är densamma om du vill starta vad du behöver.

Slutliga justeringar

Här definierar vi några saker som vanligtvis bara är personliga preferenser. Till exempel gillar jag att använda den vanligtvis värdelösa Super-tangenten (effektivt windows one) istället för Alt, men det är min preferens. Om du vill gå tillbaka till Super tar du bort den första raden.

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

Sedan definierar vi vår terminal, urxvtc, för det är det vi kallar en klient för den demon vi sprang tidigare. Andra saker, som listan över arbetsytor, som vi kunde ha lagt in saker som:

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

Och andra saker som Haskells stränglistabehandling tillåter oss.
Gränsens tjocklek är bara ett heltal och om vi vill ändra färgen på fönstret som fokuseras av funktionen humörFärg som vi just skapade eftersom vi lämnar variabeln så här:

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

$ På linjen xmonad ... det är bara en tillämpning av rätt associativa funktioner, det vill säga vi sparar några parenteser. 😀

Tangentbordsgenvägar

I slutet av filen har vi en lista med tuples som innehåller några genvägar, i det här fallet startar de GVim, pausar eller spelar musiken och förskjuter eller fördröjer den. Det är allt. Den extraKeys-funktionen kommer i den andra modulen som vi importerar och de bakre accenterna gör att den körs i stil med div (/) -funktionen som 1/2 och inte div 1 2, vilket gör det lättare att läsa. Så är det:

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

.Xmobarrc

Konfigurera {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", position = Top , lowerOnStart = Falskt, kommandon = [Kör Com "echo" ["$ USER"] "användarnamn" 864000, Kör Com "värdnamn" ["-s"] "värdnamn" 864000, Kör Com "mpc aktuell" [""] "mpd" 10, Run Date "% a% b% d" "date" 36000, Run Date "% H:% M" "time" 10, Run StdinReader], sepChar = "'", alignSep = "} {" , mall = "'användarnamn' @ 'värdnamn'} {'mpd' | 'datum' - 'tid'"

Detta borde fungera, och det gör det faktiskt. Syntaxen är lite mer komplex och det är bäst att analysera den själv för att förstå den. Så jag begränsar mig bara till att berätta att vi beskriver kommandona, deras alternativ och några extra inställningar, som kommer att visas i XMobar.
Mallraden har all action och jag kom med ett knep för att visa låten jag lyssnar på. Detta knep och det att ändra låten med kortkommandon kräver mpc, en mpd-klient som kan köras från terminalen.

Slutsatser

Det är det, tror jag. Vi har redan granskat XMonad-filen och börjat lära oss Haskell, oavsett om vi gillar det eller inte. Om du vill fortsätta finns det en mycket bra guide till att börja med.
I nästa del kommer vi att utforska icke-programmerbara chefer, speciellt Spectrwm / Scrotwm. Vi ses.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   ivanovsvart sade

    !Fantastisk!

    Spectrwm nästa gång? ! Ja sir!

  2.   TheSandman86 sade

    Mycket bra guide, det ser väldigt intressant ut, jag vill titta, även om jag är mer än bekväm med min Openbox.

  3.   anti sade

    Oj, jag missade att ange vart dessa filer går, men när jag redigerar inlägget skickar det mig ett felmeddelande:
    Dödligt fel: Ring till odefinierad funktion get_header () i /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php on line
    Om någon kan redigera det går de så här:

    Huvudkonfigurationsfil: ~ / .xmonad / xmonad.hs
    Xmobarrc-fil: ~ / .xmobarrc
    Konsol konfigurationsfil: ~ / .Xdefaults
    ????

    1.    anti sade

      Jag verkar inte kunna redigera mina egna inlägg. Jag kan inte heller hitta alternativet någonstans på skrivbordet. Jag har ett par buggar, det är allt, minimala korrigeringar.

  4.   Nano sade

    Jag tycker det är väldigt intressant eftersom det är mer produktivt när det gäller programmering. Jag vill röra med Awesome eftersom jag verkligen vill lära mig LUA.

    Det finns för de av oss som programmerar i Python Qtile, men sanningen är att jag inte kan få det att köra, jag använder Ubuntu och installerade det via PPA och även från källor men det olyckliga vill inte fungera xD

    Hur som helst LUA är något som jag MÅSTE lära mig och inget bättre än att se varandras ansikten med dessa typer av plattor.

    Sigue así anti, vas en camino a convertirte en Autor dentro de DesdeLinux

    1.    Nano sade

      Och ja, jag är på college och i den här skiten har de inte Linux xD

      1.    anti sade

        Tack nano. Men kan du hjälpa mig med att redigera artiklarna efter att de har publicerats? Jag kan inte.

        1.    nano sade

          Ja, lugna, lämna dem eftersom de passar bättre än jag fixar dem

  5.   xykyz sade

    Tack anti, jag kommer definitivt att prova XMonad. Jag ser att den använder grundläggande Haskell-saker utan behov av mycket komplexitet som vakterna, applikationsoperatören och uppenbarligen användningen av listor (annars skulle det inte vara Haskell xD).

    Låt oss se hur det ser ut! 🙂

  6.   Fernando sade

    Jag har använt en kakelfönsterhanterare länge, fantastiskt. När jag har tid kommer jag att göra en handledning där jag hoppas kunna förklara hela processen, från att installera fantastiskt till att konfigurera en uppsättning lätta program och skapa vårt eget tema.

    Om det är okej med dig kan jag meddela dig när jag har det så att du kan publicera det här.

    Förresten och med din tillåtelse annonserar jag lite på min lilla webbplats, om du vill kan du ta en titt, om du är intresserad av någon publikation:

    http://niferniware.sytes.net

    Hälsningar!

    1.    MSX sade

      Om det är Awesome 3 är jag definitivt intresserad av det.

  7.   Fernando sade

    En detalj, det avsnitt på webben där jag har varit värd för bloggen är:
    http://niferniware.sytes.net/blog/

    Jag är ledsen för misstaget.

    Ett jubel!

    1.    livlig sade

      Jag gillade verkligen din blogg ... ^^

      1.    Fernando sade

        Tack så mycket Elav, vi är i kontakt!

        La verdad es que en cierto modo DesdeLinux me incitó a crear mi propio blog. Tanto tiempo usando Linux hace que uno se plantee aportar algo a cambio ^^

        Hälsningar!

  8.   MSX sade

    "Om du undrar varför jag valde de fyra bokstäverna till mina skrivbord, kom jag ihåg de fyra nukleiska baserna av DNA."
    Söt, +1

    1.    anti sade

      Jag gillar verkligen tanken att lägga DNA på mina skrivbord.

  9.   halonsov sade

    Utmärkt guide, tack vare henne försöker jag bara xmonad, och jag kan bara säga en sak om det, jag blev kär i xmonad, jag lägger fortfarande inte min hand på det och ändå verkar det utmärkt, tack så mycket

    1.    MSX sade

      Utmärkt, vi hoppas att dina framsteg förvandlas till ett inlägg! =)

  10.   Victor Salmeron sade

    En liten observation till handledaren, just nu använder jag Debian stable (Squeeze), och för att installera dmenyn görs det inte med en lämplig installations-dmenu, utan med det suklösa verktygspaketet, annars en utmärkt handledning

    1.    anti sade

      Samma skicklighet fixar det. Dessutom är ordningen bättre förstått så här.

  11.   tarantonium sade

    Den här guiden förutsätter att du har installerat x.
    I mitt fall börjar jag bara från en debian-konsol, som jag var tvungen att installera xorg med. Det skulle vara bra, eftersom det vi letar efter är en minimalistisk miljö, som börjar med en debian utan grafiska miljöer, installerar xmonad i enkelt läge och lägger till verktyg och konsolprogram, såsom mutt, irssi, etc.

    1.    anti sade

      Ja, Xs var redan på. Själva inlägget förklarar att jag började med en minimal Debian som redan gjorts med Openbox.