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 neko vrijeme danas ću rastrgati svoj xmonad.hs koji sam pripremio posebno za ovu priliku. Ova i druge konfiguracijske datoteke su posebno u Pasteu boje konzole, postavke prozora y gornja traka.

Možete ih preuzeti odatle i otvoriti u vašem omiljenom uređivaču teksta.

Pre

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

sudo aptitude instalirati ghc xmonad xmobar gmrun dmenu

I spremno. 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 sistemu i nekim pokretačima programa, dmenu i gmrun; koji su ljubazno već 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 tačku poređenja i oponašamo neke stvari koje sam već konfigurisao u minimalističkijem okruženju.

Ništa posebno

Ali iznenađenje. XMonad nas ovako pozdravlja. U hvatanju sam već otvorio gmrun, da pokažem da nije slomljen:

Ništa spektakularno

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

Pa da

Snimak zaslona prikazuje terminal koji izvodi ncmpcpp, MPD klijent za terminal; i GVim sesiju, obe sa bojama palete SolarizedLight. Dobiti ovo zapravo nije bilo teško, pa čak su i Vim i urxvt već bili spremni na mom sistemu.

Xmonad.hs, kako zastrašujuće!

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

- 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.

Šta se ovde dogodilo?

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

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 kompajleru da traži modul koji želi i daje mu funkcije sretnog modula. Da vidimo opet:

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

Naš program koristi tri zavisnosti. Prva nam donosi vlastite funkcije XMonada, druga i treća će nam pomoći da kasnije definiramo prečice na tastaturi i pokrenemo programe. Idemo dalje.

Varijable

Ta stvar je wrk i čemu služi Cjenimo kod bliže:

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

wrk je varijabla, koja je ekvivalentna listi od četiri elementa, svi nizovi; jer liste 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 DNK.
Ime je samo skraćenica i mogli bismo ga staviti myWorkspaces, pepitoRojo ili bilo što drugo, pod uvjetom da započinje malim slovom i navedemo ga u sljedećem odjeljku.
Ovdje počinje dobra stvar s tim da imamo na raspolaganju kompletan programski jezik, jer bismo iz varijable mogli definirati boju prozora:

windowColor = "#FFFFFF"

Ili čak stvoriti 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 šta se dogodilo, mislite da je ovo Haskell-ova vlastita struktura koju nazivamo spašava i u osnovi je poput stabla, ako-tada-drugog, ali organiziranije i ljepše. I ne brinite, kod sam napisao ja i dobro funkcionira.

Glavni odjeljak

Iz retka koji kaže main = do počeli smo specificirati ponašanje XMonada. Da vidimo to mirno.

Započinjanje 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 ekrana), demon zbog kojeg urxvt radi poput vjetra, demon mpd -a koji pušta moju muziku od početka i nikad je ne zatvorim - i kontrolu jačine zvuka. Da, to je to. Sintaksa je ista ako želite započeti ono što vam treba.

Konačna prilagođavanja

Ovdje definiramo neke stvari koje su obično samo lične preferencije. Na primjer, volim koristiti normalno beskorisni Super taster (zapravo onaj 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: muzika "," 3: neiskorišteni prostor "," 4: Ufff "]

I druge stvari koje nam Haskell-ova obrada liste stringova omogućava.
Debljina obruba je samo cijeli broj i ako želimo promijeniti boju prozora fokusiranu na funkciju moodColor koju smo upravo kreirali, jer varijablu ostavljamo ovako:

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

$ Na liniji xmonad ... to je samo primjena ispravnih asocijativnih funkcija, odnosno, uštedjeli smo nekoliko zagrada. 😀

Prečice na tastaturi

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

... , ((mod4Mask, xK_s), pojaviti "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. Stoga ću se ograničiti samo da vam kažem da opisujemo naredbe, njihove opcije i neke dodatne postavke, koje će biti prikazane u XMobaru.
Redak predloška sadrži sve radnje i smislio sam trik za prikaz pjesme koju slušam. Za ovaj trik i onaj za promjenu pjesme prečicama na tipkovnici potreban je 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.


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

22 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   ivanovblack rekao je

    ! Fantastično!

    Spectrwm sljedeći put? !Da gospodine!

  2.   TheSandman86 rekao je

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

  3.   anti rekao je

    Ups, propustio sam odrediti kuda idu ove datoteke, ali kad uredim post, šalje mi poruku o grešci:
    Fatalna greška: poziv nedefiniranoj funkciji 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 konfiguraciona datoteka: ~ / .xmonad / xmonad.hs
    Xmobarrc datoteka: ~ / .xmobarrc
    Konfiguracijska datoteka konzole: ~ / .Xdefaults
    ????

    1.    anti rekao je

      Izgleda da ne mogu uređivati ​​vlastite postove. Opciju ne mogu pronaći nigdje na radnoj površini. Imam nekoliko bugova, to je sve, minimalni popravci.

  4.   Nano rekao je

    Pa, čini mi se super zanimljivim jer je produktivnije što se tiče programiranja. Želim se zezati sa 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 i također iz izvora, ali nesrećna stvar ne želi raditi xD

    U svakom slučaju, LUA je nešto što MORAM naučiti i ništa bolje od gledanja lica ovih vrsta pločica.

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

    1.    Nano rekao je

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

      1.    anti rekao je

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

        1.    nano rekao je

          Da, smiri se, ostavi ih kako odgovaraju više nego što ih popravljam

  5.   xykyz rekao je

    Hvala anti, definitivno ću isprobati XMonad. Vidim da koristi osnovne Haskell-ove stvari bez potrebe za puno složenosti, kao što su čuvari, operater aplikacije i očito korištenje lista (inače to ne bi bio Haskell xD).

    Da vidimo kako to izgleda! 🙂

  6.   fernando rekao je

    Već dugo koristim program za popločavanje prozora, super. Kad budem imao vremena, napravit ću tutorial u kojem se nadam objasniti čitav proces, od instaliranja sjajnog programa do konfiguriranja skupa laganih programa i stvaranja vlastite teme.

    Ako je s vama u redu, kad ga budem imao, mogu vas obavijestiti kako biste ga mogli objaviti ovdje.

    Usput i uz vaše dopuštenje, malo oglašavam na svojoj maloj web stranici, ako želite možete pogledati, u slučaju da vas zanima neka publikacija:

    http://niferniware.sytes.net

    Hvala!

    1.    MSX rekao je

      Ako je Awesome 3, definitivno me zanima.

  7.   fernando rekao je

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

    Žao mi je zbog greške.

    A cheer!

    1.    živahno rekao je

      Stvarno mi se svidio tvoj blog ... ^^

      1.    fernando rekao je

        Hvala ti puno Elav, u kontaktu smo!

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

        Hvala!

  8.   MSX rekao je

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

    1.    anti rekao je

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

  9.   halonsov rekao je

    Odličan 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, puno hvala

    1.    MSX rekao je

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

  10.   Victor Salmeron rekao je

    Malo zapažanja za nastavnika, trenutno koristim Debian stable (Squeeze), a za instalaciju dmenua to se ne radi s aptitude install dmenu, već sa paketom bezalkoholnih alata, inače odličan vodič

    1.    anti rekao je

      Ista sposobnost to popravlja. Pored toga, redoslijed se tako bolje razumije.

  11.   tarantonijum rekao je

    Ovaj vodič pretpostavlja da ste instalirali x.
    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 režimu i dodajući alate i programe konzole, kao što su mutt, irssi, itd.

    1.    anti rekao je

      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.