Temná strana mozaiky (III): XMonad

Zdá sa, že som sa veľa modlil a je to tak, že dodnes nedávam milimeter nastavenia. Ako som sľuboval chvíľu dnes roztrhám svoje xmonad.hs, ktoré som pripravil špeciálne pre túto príležitosť. Tento a ďalšie konfiguračné súbory sa nachádzajú konkrétne v priečinku Prilepiť farby konzoly, nastavenia okna y horná lišta.

Môžete si ich odtiaľ stiahnuť a otvoriť vo svojom obľúbenom textovom editore.

Pred

Pre prípad, že by vás zaujímalo, bol môj desktop malý Openbox na stabilnej Debiane. Ak teraz preskočíte proces inštalácie distribúcie, mali by ste skontrolovať, či sú potrebné balíky v úložiskách. Urobme to (nezabudnite, že používam Debian):

sudo aptitude nainštalovať ghc xmonad xmobar gmrun dmenu

A pripravený. Práve sme nainštalovali, podľa vzhľadu; kompilátor Glasgow Haskell, ktorý je zodpovedný za zostavenie a tlmočenie Haskella; XMonad, správca okien, XMobar je lišta, ktorá poskytuje informácie o systéme a niektorých spúšťačoch programov, dmenu a gmrun; ktoré už prichádzajú, nakonfigurované tak, aby ich XMonad spúšťal pomocou Mod + P a Mod + Shift + P.

A takto vyzerala moja pracovná plocha. Povedal som to tak, že máme bod porovnania a napodobňujem niektoré veci, ktoré som už mal nakonfigurované v minimalistickejšom prostredí.

Nič zvláštne

Ale prekvapenie. XMonad nás takto víta. V snímke som už otvoril gmrun, aby ste videli, že nie je pokazený:

Nič veľkolepé

A chceme, aby to vyzeralo takto, už nakonfigurované a všetko:

Takže áno

Screenshot zobrazuje terminál, na ktorom je spustený ncmpcpp, klient MPD pre terminál; a relácia GVim, obe s farbami palety Solarizované svetlo. Získať to nebolo naozaj ťažké a dokonca aj Vim a urxvt už boli pripravené na mojom systéme.

Xmonad.hs, aké strašidelné!

Vôbec nie. Konfigurácia, ktorú sa chystáte vidieť, je mimoriadne jednoduchá a základná. Mal by fungovať na všetkých systémoch s XMonad 0.9.1, aj keď už je k dispozícii 0.10. No bojte sa, veľmi sa bojte:

- Konfigurácia Xmonad - Ako vidíte, je to celkom jednoduchý import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" spawn "dusík - restore" 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")] - Koniec konfigurácie. Jednoduché, ľahké a čisté.

Čo sa tu stalo?

Ak sa už zo strachu spamätali, vidíme, že naša konfigurácia sotva dosiahne 30 riadkov kódu. Po častiach vysvetlím, prečo ak ste to skopírovali a prilepili, XMonad zostaví program, ktorý sme práve napísali. Pripravený?

Sekcia závislostí

Na začiatku súboru sú tri riadky, ktoré začínajú kľúčovým slovom import. Rovnako ako v iných programovacích jazykoch pošle kompilátor, aby našiel požadovaný modul, a dá mu funkcie šťastného modulu. Uvidíme to znova:

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

Náš program používa tri závislosti. Prvý nám prináša vlastné funkcie XMonadu, druhý a tretí nám pomôže neskôr definovať klávesové skratky a spustiť programy. Pokračujme.

premenné

Táto vec je wrk a na čo to je? Vážme si tento kód bližšie:

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

wrk je premenná, ktorá je ekvivalentná zoznamu štyroch prvkov, všetkých reťazcov; pretože zoznamy Haskell akceptujú iba jeden typ položky. Ak sa pýtate, prečo som si vybral tieto štyri písmená pre svoje pracovné plochy, spomenul som si na štyri nukleové bázy DNA.
Názov je iba skratka a mohli by sme ho uviesť myWorkspaces, pepitoRojo alebo čokoľvek iné, pokiaľ sa začína malým písmenom a my ho špecifikujeme v nasledujúcej časti.
Tu začína dobrá vec, že ​​máme k dispozícii kompletný programovací jazyk, pretože farbu okna sme mohli definovať z premennej:

windowColor = "#FFFFFF"

Alebo dokonca vytvorte funkciu, ktorá vráti farbu s ohľadom na našu náladu:

moodColor m | m == "Smutné" = "# b0c4f6" - Niečo ako modrá | m == "Angry" = "# ba3f3f" - Niečo ako červená | m == "Šťastný" = "# 8bff7e" - Niečo ako zelené | inak = "#FFFFFF" - biela, pre neutrálne dni

A oveľa viac. Už cítite silu na prstoch? Jedna vec. Ak nerozumiete tomu, čo sa stalo, myslíte si, že toto je Haskellova vlastná štruktúra, ktorú nazývame stráž a je to v zásade ako strom ak-potom-iný, ale organizovanejší a peknejší. A nebojte sa, kód som napísal ja a funguje dobre.

Hlavná časť

Z riadku, ktorý hovorí main = robiť sme začali špecifikovať správanie XMonadu. Pozrime sa na to pokojne.

Na začiatku odkopli veci

To sa dá dosiahnuť mnohými spôsobmi, ale aby som zostal bez závislostí a aby bol kód čistejší, aj keď jednoznačne jaskynnejší, rozhodol som sa pre toto:

xmproc <- spaPipe "xmobar" spawn "dusík - obnovenie" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"

Prvý riadok začína XMobar, ktorého konfiguračný súbor uvidíme neskôr.
Potom sme pre mňa začali niekoľko základných vecí, peknú tapetu (rovnakú ako na prvom obrázku), démona, ktorý núti urxvt bežať ako vietor, démona mpd - ktorý hrá moju hudbu od začiatku a nikdy sa nezatvorím - a ovládanie hlasitosti. Áno, to je všetko. Syntax je rovnaká, ak chcete spustiť to, čo potrebujete.

Záverečné úpravy

Tu definujeme niektoré veci, ktoré sú zvyčajne len osobnými preferenciami. Napríklad by som rád použil normálne nepoužiteľný kľúč Super (efektívne ten Windows) namiesto Alt, ale to je moja preferencia. Ak sa chcete vrátiť späť k Super, odstráňte prvý riadok.

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

Potom definujeme náš terminál, urxvtc, pretože tak hovoríme klientovi démona, ktorého sme utiekli skôr. Ďalšie veci, napríklad zoznam pracovných priestorov, ktoré sme mohli vložiť napríklad:

, workspaces = ["H", "O", "L", "A"], workspaces = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], workspaces = [" 1: web "," 2: hudba "," 3: nevyužitý priestor "," 4: Ufff "]

A ďalšie veci, ktoré nám umožňuje Haskellovo spracovanie zoznamov reťazcov.
Hrúbka orámovania je iba celé číslo a ak chceme zmeniť farbu okna zameraného funkciou náladaColor ktoré sme práve vytvorili, pretože premennú necháme takto:

--..., focusBorderColor = moodColor "Šťastný" - ...

$ Na riadku xmonad ... je to iba aplikácia správnych asociačných funkcií, to znamená, že si uložíme niekoľko zátvoriek. 😀

Klávesové skratky

Na konci súboru máme zoznam n-tic, ktoré obsahujú niektoré skratky, v tomto prípade spustia GVim, pozastavia alebo prehrajú hudbu a posúvajú ju ďalej alebo oneskorene. To je všetko. Funkcia additionalKeys sa dodáva v druhom module, ktorý importujeme, a zadné akcenty ho umožňujú vykonávať v štýle funkcie div (/) ako 1/2 a nie div 1 2, čo uľahčuje čítanie. Takže to je:

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

Súbor .xmobarrc

Konfigurácia {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", pozícia = na začiatok , lowerOnStart = False, commands = [Run Com "echo" ["$ USER"] "používateľské meno" 864000, Run Com "hostname" ["-s"] "hostname" 864000, Run Com "mpc current" [""] "mpd" 10, dátum spustenia "% a% b% d" "dátum" 36000, dátum spustenia "% H:% M" "čas" 10, spustenie StdinReader], sepChar = "'", alignSep = "} {" , template = "'username' @ 'hostname'} {'mpd' | 'date' - 'time'"

Toto by malo fungovať a vlastne aj funguje. Syntax je o niečo zložitejšia a najlepšie je, ak si ju sami analyzujete, aby ste jej porozumeli. Obmedzím sa na to, že vám poviem, že popisujeme príkazy, ich možnosti a niektoré ďalšie nastavenia, ktoré sa zobrazia v XMobar.
Riadok šablóny má všetku akciu a ja som vymyslel trik, ako zobraziť skladbu, ktorú počúvam. Tento trik a ten, ktorý mení skladbu pomocou klávesových skratiek, vyžaduje mpc, klienta mpd spustiteľného z terminálu.

Závery

To je všetko, myslím si. Už sme skontrolovali hlavný súbor XMonad a začali sme sa učiť Haskell, či sa nám to páči alebo nie. Ak chcete pokračovať, je tu veľmi dobrý sprievodca.
V ďalšom pokračovaní preskúmame neprogramovateľných manažérov, konkrétne Spectrwm / Scrotwm. Maj sa.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   ivanovčierna dijo

    ! Fantastické!

    Spectrwm nabudúce? !Áno Pane!

  2.   The Sandman86 dijo

    Veľmi dobrý sprievodca, vyzerá to veľmi zaujímavo, chcem sa na to pozrieť, aj keď mi môj Openbox vyhovuje viac ako dobre.

  3.   proti dijo

    Hops, neuvedel som, kam tieto súbory smerujú, ale keď upravím príspevok, pošle mi chybové hlásenie:
    Fatal error: Call to undefined function get_header () in /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php on line
    Ak to niekto môže upraviť, urobí to takto:

    Hlavný konfiguračný súbor: ~ / .xmonad / xmonad.hs
    Súbor Xmobarrc: ~ / .xmobarrc
    Konfiguračný súbor konzoly: ~ / .Xdefaults
    😀

    1.    proti dijo

      Zdá sa mi, že nemôžem upravovať svoje vlastné príspevky. Túto voľbu tiež nenájdem nikde na pracovnej ploche. Mám pár chýb, to je všetko, minimálne opravy.

  4.   Nano dijo

    Považujem to za super zaujímavé, pretože je produktívnejšie, pokiaľ ide o programovanie. Chcem si zahrať s Awesome, pretože sa naozaj chcem naučiť LUA.

    Existuje pre nás, ktorí programujeme v Pythone Qtile, ale pravdou je, že to nemôžem spustiť, používam Ubuntu a nainštaloval som ho cez PPA a tiež zo zdrojov, ale tá nešťastná vec nechce pracovať xD

    Každopádne LUA je niečo, čo sa MUSÍM naučiť a nič lepšie ako vidieť si navzájom tváre týchto druhov dlaždíc.

    Len tak ďalej, ste na dobrej ceste stať sa Autorom DesdeLinux

    1.    Nano dijo

      A áno, som na vysokej škole a v týchto sračkách nemajú Linux xD

      1.    proti dijo

        Ďakujem nano. Môžete mi však pomôcť s úpravou článkov po ich publikovaní? Nemôžem.

        1.    nano dijo

          Áno, upokojte sa, nechajte ich tak, ako sa hodia lepšie, ako ja ich opravím

  5.   xykyz dijo

    Vďaka anti, určite vyskúšam XMonad. Vidím, že používa základné veci Haskell bez potreby väčšej zložitosti ako stráže, operátor aplikácie a zjavne použitie zoznamov (inak by to nebol Haskell xD).

    Pozrime sa, ako to vyzerá! 🙂

  6.   Fernando dijo

    Už dlhšiu dobu používam správcu obkladov systému Windows, super. Keď budem mať čas, urobím si tutoriál, v ktorom dúfam, že budem schopný vysvetliť celý proces, od úžasnej inštalácie až po konfiguráciu sady ľahkých programov a vytvorenie vlastnej témy.

    Ak sa vám to zdá dobré, keď ho mám, dám vám vedieť, aby ste ho tu mohli zverejniť.

    Mimochodom a s vaším dovolením robím trochu reklamu na svojom malom webe, ak chcete, môžete sa pozrieť, v prípade, že by vás zaujímala nejaká publikácia:

    http://niferniware.sytes.net

    Zdravím!

    1.    MSX dijo

      Ak je to Awesome 3, určite ma to zaujíma.

  7.   Fernando dijo

    Jeden detail, časť webu, kde som blog hostil, je:
    http://niferniware.sytes.net/blog/

    Mrzí ma chyba.

    Na zdravie!

    1.    živý dijo

      Veľmi sa mi páčil váš blog ... ^^

      1.    Fernando dijo

        Ďakujem veľmi pekne Elav, sme v kontakte!

        Pravda je taká, že istým spôsobom DesdeLinux Podnietilo ma to k vytvoreniu vlastného blogu. Toľko času používania Linuxu núti človeka zvážiť, či na oplátku niečím prispieť ^^

        Zdravím!

  8.   MSX dijo

    „Ak sa pýtaš, prečo som si pre svoje stoly vybral tie štyri písmená, spomenul som si na štyri nukleové bázy DNA.“
    Sladké, +1

    1.    proti dijo

      No veľmi sa mi páči myšlienka dať si na stôl DNA.

  9.   halonsov dijo

    Vynikajúca sprievodkyňa, vďaka nej len skúšam xmonad, a môžem k tomu povedať iba jedno, zamiloval som sa do xmonadu, stále na neho nedávam ruku a stále sa mi zdá vynikajúci, ďakujem pekne

    1.    MSX dijo

      Výborne, dúfame, že sa váš pokrok zmenil na príspevok! =)

  10.   Victor Salmeron dijo

    Trochu postrehu pre tútora, momentálne používam stabilný Debian (Squeeze) a na inštaláciu dmenu sa to nedeje pomocou aptitude install dmenu, ale s balíkom suckless-tools, inak vynikajúci tutoriál

    1.    proti dijo

      Rovnaká schopnosť to opravuje. Okrem toho je objednávka takto lepšie pochopená.

  11.   tarantónium dijo

    Táto príručka predpokladá, že máte nainštalovaných x.
    V mojom prípade vychádzam iba z debianovej konzoly, s ktorou som si musel nainštalovať xorg. Bolo by to v poriadku, pretože to, čo hľadáme, je minimalistické prostredie, počnúc debianom bez grafických prostredí, inštaláciou xmonad v jednoduchom režime a pridaním nástrojov a konzolových programov, ako sú mutt, irssi atď.

    1.    proti dijo

      Áno, X už boli zapnuté. Samotný príspevok vysvetľuje, že som začal s minimálnym Debianom, ktorý už bol vyrobený v Openboxe.