A mozaik sötét oldala (III): XMonad

Úgy tűnik, hogy sokat imádkoztam, és az, hogy a mai napig nem teszek be egy milliméteres beállításokat. Ahogy ígértem egy darabig ma letépem az xmonad.hs-t, amelyet külön erre az alkalomra készítettem. Ez és más konfigurációs fájlok kifejezetten a Beillesztés fájlban találhatók a konzol színei, az ablak beállításait y a felső sáv.

Innen letöltheti őket, és megnyithatja kedvenc szövegszerkesztőjében.

előtt

Ha kíváncsi lennél, az asztalom egy kis Openbox volt a Debian istállóban. A terjesztés telepítési folyamatának pillanatnyi kihagyásával ellenőriznie kell, hogy a szükséges csomagok vannak-e az adattárakban. Tegyük ezt (emlékezzünk arra, hogy a Debianon vagyok):

sudo aptitude telepítse a ghc xmonad xmobar gmrun menüt

És kész. Most telepítettük, megjelenésük sorrendjében; a Glasgow Haskell Compiler, amely a Haskell összeállításáért és tolmácsolásáért felel; Az XMonad, az ablakkezelő, az XMobar egy olyan sáv, amely információkat nyújt a rendszerről és néhány programindítóról, a menükről és a gmrun-ról; ez már kedvesen konfigurálva van úgy, hogy az XMonad elindítja őket a Mod + P és a Mod + Shift + P billentyűkombinációkkal.

És így nézett ki az asztalom. Úgy fogalmaztam, hogy legyen összehasonlítási pontunk, és utánozzam néhány olyan dolgot, amelyet már minimalista környezetben konfiguráltam.

Semmi különös

De meglepetés. XMonad így fogad minket. A rögzítésben már megnyitottam a gmrun-t, hogy láthassam, hogy nincs törve:

Semmi látványos

És azt akarjuk, hogy így nézzen ki, már konfigurálva és minden:

Szóval igen

A képernyőképen egy ncmpcpp futtató terminál látható, a terminál MPD kliense; és egy GVim munkamenet, mindkettő a paletta színeivel SolarizedLight. Ennek megszerzése nem volt igazán nehéz, és még a Vim és az urxvt is készen állt a rendszeremen.

Az xmonad.hs, milyen ijesztő!

Egyáltalán nem. A konfiguráció, amelyet látni fog, rendkívül egyszerű és alapvető. Minden olyan rendszeren működnie kell, amely rendelkezik az XMonad 0.9.1 verzióval, annak ellenére, hogy a 0.10 már elérhető. Nos, félj, nagyon félj:

- Xmonad konfiguráció - Amint láthatja, nagyon egyszerű az XMonad importálása az XMonad.Util.EZConfig importálása az XMonad.Util.Run importálása = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" spawn "nitrogén - restore" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed" xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e ", focusBorderColor =" # 3b002 ", munkaterületek = wrk}` továbbiKeys` [((mod26Mask, xK_v), spawn "gvim"), ((mod4Mask, xK_c), spawn "mpc toggle"), ((mod4Mask, xK_a) , spawn "mpc prev"), ((mod4Mask, xK_s), spawn "mpc next")] - A konfiguráció vége. Egyszerű, könnyű és tiszta.

Mi történt itt?

Ha már felépültek az ijesztgetésből, láthatjuk, hogy a konfigurációnk alig éri el a 30 kódsort. Részben elmagyarázom, hogy ha ezt másolta és beillesztette, az XMonad összeállítja az imént írt programot. Kész?

A függőségek szakasz

A fájl kezdete közelében három sor található, amelyek a kulcsszóval kezdődnek importál. Mint más programozási nyelvekben, a fordítót is elküldi, hogy megtalálja a kívánt modult, és megadja neki a szerencsés modul funkcióit. Lássuk újra:

importálás XMonad importálás XMonad.Util.EZConfig importálás XMonad.Util.Run

Programunk három függőséget használ. Az első az XMonad saját funkcióit hozza elénk, a második és a harmadik később segítséget nyújt a billentyűparancsok meghatározásában és a programok futtatásában. Folytassuk.

változók

Az a helyzet wrk és mire való? Értékeljük jobban a kódot:

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

wrk egy változó, amely egyenértékű négy elem listájával, az összes karakterlánccal; mert a Haskell-listák csak egy elemet fogadnak el. Ha kíváncsi vagy, miért választottam ezt a négy betűt az asztali gépeimhez, eszembe jutott a négy nukleáris bázis DNS-t.
A név csak rövidítés, és feltehetnénk a myWorkspaces, pepitoRojo vagy bármi mást, amennyiben kisbetűvel kezdődik, és a következő szakaszban megadjuk.
Itt kezdődik az a jó, hogy egy komplett programozási nyelv áll rendelkezésünkre, mert egy változóból meghatározhatjuk az ablak színét:

windowColor = "#FFFFFF"

Vagy akár hozzon létre egy olyan funkciót, amely színt ad vissza a hangulatunkhoz képest:

moodColor m | m == "Szomorú" = "# b0c4f6" - Valami kék | m == "Dühös" = "# ba3f3f" - Valami, mint a piros | m == "Boldog" = "# 8bff7e" - Valami, mint a zöld | különben = "#FFFFFF" - Fehér, semleges napokra

És még sok más. Már érzi az erőt az ujjain? Egy dolog. Ha nem érted, mi történt, gondolj arra, hogy ezt Haskell saját struktúrájának hívjuk Guarda és alapvetően olyan, mint egy ha-akkor-más fa, de szervezettebb és csinosabb. És ne aggódj, a kódot én írtam, és jól működik.

A fő szakasz

Abból a sorból, amely azt mondja fő = csinál elkezdtük meghatározni az XMonad viselkedését. Lássuk nyugodtan.

Kezdetben rúgni a dolgokat

Ezt sokféleképpen el lehet érni, de a függőségektől való távolmaradás érdekében és a kód tisztábbá tétele érdekében, bár egyértelműen barlanglakók vagyunk, ezt választottam:

xmproc <- spawnPipe "xmobar" spawn "nitrogén --restore" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"

Az első sor elindítja az XMobart, amelynek konfigurációs fájlját később láthatjuk.
Aztán elkezdtünk néhány alapvető dolgot számomra, egy szép háttérképet (ugyanaz, mint az első képernyőképen), egy démont, amely az urxvt-t úgy futtatja, mint a szél, az mpd démona - amely a kezdetektől játssza le a zenémet, és soha nem zárok be - és egy hangerőszabályzóval. Igen, ennyi. A szintaxis ugyanaz, ha el akarja kezdeni, amire szüksége van.

Végső kiigazítások

Itt meghatározunk néhány dolgot, amelyek általában csak személyes preferenciák. Például az Alt helyett a normálisan haszontalan Super kulcsot (gyakorlatilag a Windows egyet) szeretem használni, de ez az én preferencia. Ha vissza akar térni a Super programba, távolítsa el az első sort.

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

Ezután meghatározzuk a terminálunkat, urxvtc, mert ezt hívjuk a korábban futtatott démon ügyfelének. Más dolgok, például a munkaterületek listája, amelyeket feltehettünk, például:

, munkaterületek = ["H", "O", "L", "A"], munkaterületek = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], munkaterületek = [" 1: web "," 2: zene "," 3: kihasználatlan hely "," 4: Ufff "]

És egyéb dolgokat, amelyeket Haskell karakterlánc-feldolgozása lehetővé tesz számunkra.
A szegély vastagsága csak egész szám, és ha meg akarjuk változtatni a függvény által fókuszált ablak színét hangulatszín amit most hoztunk létre, mert így hagyjuk a változót:

--..., focusBorderColor = moodColor "Boldog" - ...

A $ a sorban xmonad ... ez csak a megfelelő asszociatív függvények alkalmazása, vagyis néhány zárójelet elmentünk. 😀

Gyorsbillentyűket

A fájl végén van egy lista azokról a sorokról, amelyek tartalmaznak néhány parancsikont, ebben az esetben elindítják a GVim-et, szüneteltetik vagy lejátszják a zenét, és előre vagy késleltetik. Ez az. Az AdditionalKeys függvény az importált második modulban található, és a hátsó ékezetek a div (/) függvény stílusában hajtják végre, például 1/2 és nem div 1 2, így könnyebben olvasható. Tehát ez:

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

A .xmobarrc

Config {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", position = Felső , lowerOnStart = Hamis, parancsok = [A Com futtatása "echo" ["$ USER"] "felhasználónév" 864000, a Com futtatása "hosztnév" ["-s"] "hosztnév" 864000, a Com futtatása "mpc current" [""] "mpd" 10, Futtatás dátuma "% a% b% d" "date" 36000, Futtatás dátuma "% H:% M" "time" 10, Futtatás StdinReader], sepChar = "" ", alignSep ="} {" , template = "'felhasználónév' @ 'hosztnév'} {'mpd' | 'dátum' - 'idő'"

Ennek működnie kell, és valójában működik is. A szintaxis egy kicsit összetettebb, és a legjobb, ha saját maga elemzi, hogy megértse. Tehát csak arra korlátozom magam, hogy elmondjam neked, hogy leírjuk a parancsokat, azok opcióit és néhány extra beállítást, amelyek az XMobar-ban jelennek meg.
A sablon sorában minden akció megtalálható, és kitaláltam egy trükköt, hogy megmutassam a hallgatott dalt. Ehhez a trükkhöz és ahhoz, hogy a dalt billentyűparancsokra váltsa, mpc szükséges, a terminálról futtatható mpd kliens.

Következtetések

Ennyi, azt hiszem. Már átnéztük a fő XMonad fájlt, és elkezdtük tanulni a Haskellt, akár tetszik, akár nem. Ha folytatni akarod, akkor egy nagyon jó útmutató indulhat.
A következő részben nem programozható menedzsereket fogunk felfedezni, különös tekintettel a Spectrwm / Scrotwm-re. Találkozunk.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   ivanovfekete dijo

    !Fantasztikus!

    Spectrwm legközelebb? !Igen Uram!

  2.   A Homokember86 dijo

    Nagyon jó útmutató, nagyon érdekesnek tűnik, szeretnék egy pillantást vetni, bár több mint elégedett vagyok az Openbox-szal.

  3.   anti dijo

    Hoppá, elmulasztottam meghatározni, hova kerüljenek ezek a fájlok, de amikor szerkesztem a bejegyzést, hibaüzenetet küld nekem:
    Végzetes hiba: A (z) get_header () függvény hívása a /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php on-line
    Ha valaki szerkesztheti, így jár:

    Fő konfigurációs fájl: ~ / .xmonad / xmonad.hs
    Xmobarrc fájl: ~ / .xmobarrc
    Konzol konfigurációs fájl: ~ / .X alapértelmezések
    ????

    1.    anti dijo

      Úgy tűnik, nem tudom szerkeszteni a saját bejegyzéseimet. Az asztalon sem találom sehol a lehetőséget. Van pár hibám, ennyi, minimális javítások.

  4.   Nano dijo

    Nos, szuper érdekesnek tartom, mivel produktívabb a programozás terén. Össze akarok kavarni Awesome-mal, mert nagyon szeretnék megtanulni LUA-t.

    Azok számára létezik, akik Python Qtile-ben programozunk, de az az igazság, hogy nem tudom futtatni, Ubuntu-t használok, és PPA-n keresztül, valamint forrásból is telepítettem, de a sajnálatos dolog nem akar működni xD

    Mindenesetre az LUA-t KELL tanulnom, és semmi sem jobb, mint látni az arcát ilyen típusú csempékkel.

    Csak így tovább, úton vagy afelé, hogy belső szerzővé válj DesdeLinux

    1.    Nano dijo

      És igen, egyetemen vagyok, és ebben a szarban nincs Linux xD-jük

      1.    anti dijo

        Köszönöm nano. De tudna segíteni a cikkek szerkesztésében, miután azok megjelentek? Nem tudok.

        1.    nano dijo

          Igen, nyugodj meg, hagyd őket, ahogy jobban passzolnak, mint ahogy én megjavítom őket

  5.   xykyz dijo

    Köszönöm anti, mindenképpen kipróbálom az XMonadot. Úgy látom, hogy alapvető Haskell cuccokat használ anélkül, hogy sok bonyolultságra lenne szükség, mint például az őrök, az alkalmazáskezelő és nyilvánvalóan a listák használata (különben nem a Haskell xD lenne).

    Lássuk, hogyan néz ki! 🙂

  6.   Fernando dijo

    Már régóta használom az ablakcsempézést, Awesome. Amikor lesz időm, elkészítek egy oktatóanyagot, amelyben remélem, hogy elmagyarázom az egész folyamatot, a fantasztikus telepítéstől kezdve a könnyű programok beállításáig és a saját témánk létrehozásáig.

    Ha ez rendben van veled, akkor amikor tudom, értesíthetek, hogy itt közzétehesd.

    Egyébként és az Ön engedélyével hirdetem egy kicsit a kis weboldalamon, ha szeretné, megnézheti, hátha bármilyen publikáció felkeltette az érdeklődését:

    http://niferniware.sytes.net

    Üdvözlet!

    1.    MSX dijo

      Ha Awesome 3, mindenképpen érdekel.

  7.   Fernando dijo

    Az egyik részlet, a web azon része, ahol a blogot üzemeltettem:
    http://niferniware.sytes.net/blog/

    Sajnálom a hibát.

    Jókedv!

    1.    élénk dijo

      Nagyon tetszett a blogod ... ^^

      1.    Fernando dijo

        Köszönöm szépen Elav, kapcsolatba lépünk!

        Az igazság az, hogy bizonyos értelemben DesdeLinux Ez késztetett arra, hogy létrehozzam a saját blogomat. A Linux használatával eltöltött sok idő arra készteti az embert, hogy cserébe hozzájáruljon valamivel ^^

        Üdvözlet!

  8.   MSX dijo

    "Ha kíváncsi, miért választottam ezt a négy betűt az asztalomhoz, eszembe jutott a DNS négy nukleáris bázisa."
    Édes, +1

    1.    anti dijo

      Nos, nagyon tetszik az ötlet, hogy DNS-t tegyek az asztalomra.

  9.   halonsov dijo

    Kiváló útmutató, hála neki, csak kipróbálom az xmonadot, és csak egyet tudok mondani róla, beleszerettem az xmonadba, még mindig nem teszem rá a kezem, és mégis kiválónak tűnik, köszönöm szépen

    1.    MSX dijo

      Remek, reméljük, hogy az előrehaladás posztokká válik! =)

  10.   Victor Salmeron dijo

    Egy kis észrevétel az oktatónak, jelenleg a Debian stabil (Squeeze) szoftvert használom, és a dmenu telepítéséhez nem egy aptitude install dmenu-t használunk, hanem a suckless-tools csomaggal, egyébként kiváló oktatóanyag

    1.    anti dijo

      Ugyanaz az alkalmasság javítja. Ezenkívül a sorrendet jobban megértik így.

  11.   tarantonium dijo

    Ez az útmutató feltételezi, hogy x telepítve van.
    Az én esetemben csak egy debian konzolról indulok, ezért telepítenem kellett az xorg-ot. Rendben lenne, hiszen amit keresünk, az egy minimalista környezet, kezdve egy grafikus környezetek nélküli debiantól, egyszerű módban telepítve az xmonad-ot, és hozzáadva olyan eszközöket és konzolos programokat, mint a mutt, az irssi stb.

    1.    anti dijo

      Igen, az X-ek már be voltak kapcsolva. Maga a bejegyzés elmagyarázza, hogy egy minimális Debian-nal kezdtem, amelyet már az Openbox-szal készítettem.