Ang madilim na bahagi ng mosaic (III): XMonad

Tila marami akong nagawang pagdarasal at hanggang ngayon ay hindi ako naglalagay ng isang millimeter ng mga setting. Tulad ng ipinangako ko para sa isang sandali ngayon ay pupunitin ko ang aking xmonad.hs na inihanda ko lalo na para sa okasyong ito. Ito at iba pang mga file ng pagsasaayos ay nasa Paste, partikular ang mga kulay ng console, ang mga setting ng window y ang tuktok na bar.

Maaari mong i-download ang mga ito mula doon at buksan ang mga ito sa iyong paboritong text editor.

Bago

Kung sakaling nagtataka ka, ang aking desktop ay isang maliit na Openbox sa Debian stable. Nilaktawan ang proseso ng pag-install ng pamamahagi para sa ilang sandali, dapat mong i-verify na ang mga kinakailangang mga pakete ay nasa mga repository. Gawin natin ito (tandaan na nasa Debian ako):

sudo aptitude install ghc xmonad xmobar gmrun dmenu

At handa na. Naka-install lamang kami, sa pagkakasunud-sunod ng hitsura; ang Glasgow Haskell Compiler na siyang namamahala sa pag-iipon at pagbibigay kahulugan sa Haskell; Ang XMonad, ang window manager, ang XMobar ay isang bar na nagtatanghal ng impormasyon tungkol sa system at ilang mga launcher ng programa, dmenu at gmrun; na mabait na naka-configure upang mailunsad ng XMonad ang mga ito sa Mod + P at Mod + Shift + P.

At ito ang hitsura ng aking desktop. Inilagay ko ito upang magkaroon kami ng isang punto ng paghahambing at tularan ang ilan sa mga bagay na na-configure ko na sa isang mas minimalist na kapaligiran.

Normal lang, walang espesyal

Ngunit sorpresa. Inaanyayahan kami ng XMonad na tulad nito. Sa pagkuha ay binuksan ko na ang gmrun, upang ipakita na hindi ito nasira:

Walang kamangha-manghang

At nais naming magmukhang ganito, naka-configure na at lahat:

Kaya oo

Ipinapakita ng screenshot ang isang terminal na tumatakbo ncmpcpp, isang kliyente ng MPD para sa terminal; at isang sesyon ng GVim, kapwa may mga kulay ng paleta SolarizedLight. Ang pagkuha nito ay hindi talaga mahirap at maging ang Vim at urxvt ay handa na sa aking system.

Ang xmonad.hs, ang nakakatakot!

Hindi talaga. Ang pagsasaayos na makikita mo ay napaka-simple at pangunahing. Dapat itong gumana sa lahat ng mga system na may XMonad 0.9.1, kahit na magagamit na ang 0.10. Kaya, matakot, takot na takot:

- Pag-configure ng Xmonad - Tulad ng nakikita mo, medyo simpleng pag-import ng XMonad import XMonad.Util.EZConfig import XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc < - spawnPipe "xmobar" spawn "nitrogen --restore" spawn "urxvtd" spawn "mpd" spawn "xfce4-volulated" xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3" , focusBorderColor = "# 002b26", workspaces = wrk} `karagdagangKeys` [((mod4Mask, xK_v), itlog ng" gvim "), ((mod4Mask, xK_c), itlog ng" mpc toggle "), ((mod4Mask, xK_a), spawn "mpc prev"), ((mod4Mask, xK_s), spawn "mpc susunod")] - Pagtatapos ng pagsasaayos. Simple, madali at malinis.

Anong nangyari dito?

Kung nakarecover na sila mula sa takot, maaari naming makita na ang aming pagsasaayos ay bahagyang umabot sa 30 mga linya ng code. Ipapaliwanag ko nang paisa-isa, bakit kung kinopya mo at na-paste ito, ipo-compile ng XMonad ang program na isinulat lamang namin. Handa na?

Ang seksyon ng mga dependency

Malapit sa simula ng file may tatlong mga linya na nagsisimula sa keyword angkat. Tulad ng sa iba pang mga wika ng programa, ipinapadala nito ang tagatala upang maghanap para sa module na nais nito at binibigyan nito ang mga pagpapaandar ng masuwerteng modyul. Tingnan natin ito muli:

i-import ang XMonad import XMonad.Util.EZConfig import XMonad.Util.Run

Gumagamit ang aming programa ng tatlong mga dependency. Ang una ay nagdadala sa amin ng sariling mga pag-andar ng XMonad, ang pangalawa at pangatlo ay makakatulong sa amin sa paglaon upang tukuyin ang mga keyboard shortcut at upang magpatakbo ng mga programa. Magpatuloy tayo.

Mga variable

Ang bagay na iyon ay wrk at para saan ito Tingnan natin nang mabuti ang code:

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

wrk ay isang variable, na katumbas ng isang listahan ng apat na elemento, lahat ng mga string; dahil ang mga listahan ni Haskell ay tumatanggap lamang ng isang uri ng item. Kung nagtataka ka kung bakit pinili ko ang apat na liham na iyon para sa aking mga desktop, naalala ko ang apat na mga base ng nucleic ng DNA.
Ang pangalan ay isang pagpapaikli lamang, at maaari naming ilagay ito sa myWorkspaces, pepitoRojo o kung ano man, hangga't nagsisimula ito sa isang maliit na titik at tinukoy namin ito sa susunod na seksyon.
Nagsisimula rito ang magandang bagay tungkol sa pagkakaroon ng isang kumpletong wika sa pag-program na magagamit namin, dahil maaari naming tukuyin ang kulay ng window mula sa isang variable:

windowColor = "#FFFFFF"

O kahit na lumikha ng isang pagpapaandar na nagbabalik ng isang kulay na patungkol sa aming kalooban:

moodColor m | m == "Sad" = "# b0c4f6" - Isang bagay tulad ng asul | m == "Galit" = "# ba3f3f" - Isang bagay tulad ng pula | m == "Masaya" = "# 8bff7e" --Mga bagay tulad ng berde | kung hindi man = "#FFFFFF" - Puti, para sa mga walang kinikilingan na araw

At marami pang iba. Nararamdaman mo na ba ang lakas sa iyong mga daliri? Isang bagay. Kung hindi mo maintindihan kung ano ang nangyari, isipin na ito ay sariling istraktura ng Haskell na tinawag namin guarda at ito ay karaniwang tulad ng isang kung-pagkatapos-iba pang puno, ngunit mas organisado at maganda. At huwag magalala, ang code ay isinulat ko at ito ay gumagana nang maayos.

Ang pangunahing seksyon

Mula sa linya na nagsasabing pangunahing = gawin sinimulan naming tukuyin ang pag-uugali ng XMonad. Kalmado natin itong makita.

Sinisimulan ang mga bagay sa simula

Maaari itong makamit sa maraming paraan, ngunit upang maiwanan ang mga dependency at gawing mas malinis ang code, kahit na malinaw na mas maraming taong taga-lungga, pinili ko ito:

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

Sinisimula ng unang linya ang XMobar, na ang pagsasaayos ng file ay makikita natin sa paglaon.
Pagkatapos sinimulan namin ang ilang mahahalagang bagay para sa akin, isang magandang wallpaper (kapareho ng sa unang screenshot), isang demonyo na nagpapatakbo ng urxvt tulad ng hangin, ang demonyo ng mpd -na tumutugtog ng aking musika mula sa simula at hindi ko kailanman isara - at isang kontrol sa dami. Yeah, yun lang. Ang syntax ay pareho kung nais mong simulan kung ano ang kailangan mo.

Pangwakas na pagsasaayos

Tinutukoy namin dito ang ilang mga bagay na karaniwang mga kagustuhan lamang sa personal. Halimbawa, nais kong gamitin ang karaniwang walang silbi na Super key (mabisa ang mga bintana) sa halip na Alt, ngunit iyon ang aking kagustuhan. Kung nais mong bumalik sa Super, alisin ang unang linya.

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

Pagkatapos ay tinukoy namin ang aming terminal, urxvtc, sapagkat iyon ang tinatawag nating kliyente ng demonyo na pinatakbo namin kanina. Ang iba pang mga bagay, tulad ng listahan ng mga workspace, na maaari naming mailagay sa mga bagay tulad ng:

, workspaces = ["H", "O", "L", "A"], workspaces = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], workspaces = [" 1: web "," 2: music "," 3: hindi nagamit na puwang "," 4: Ufff "]

At iba pang mga bagay na pinapayagan sa amin ng pagproseso ng string list ni Haskell.
Ang kapal ng hangganan ay isang buong numero lamang at kung nais naming baguhin ang kulay ng window na nakatuon sa pagpapaandar moodColor na nilikha lamang namin, dahil iniiwan namin ang variable na tulad nito:

--..., naka-focusBorderColor = moodColor "Masaya" - ...

Ang $ sa linya xmonad ... ito ay isang aplikasyon lamang ng tamang mga kaugnay na pag-andar, iyon ay, nagse-save kami ng ilang panaklong. 😀

Mga Shortcut sa Keyboard

Sa pagtatapos ng file mayroon kaming isang listahan ng mga tuple na naglalaman ng ilang mga shortcut, sa kasong ito, inilulunsad nila ang GVim, i-pause o i-play ang musika, at isulong o maantala ito. Ayan yun. Ang pagpapaandar na karagdagangKeys ay dumating sa pangalawang module na na-import namin at ginagawa ng mga pabalik na accent na isagawa ito sa istilo ng div (/) na paggana tulad ng 1/2 at hindi div 1 2, na ginagawang mas madaling basahin. Kaya ito ay:

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

Ang .xmobarrc

Config {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "#ff6e3", fgColor = "# 657b83", posisyon = Itaas , lowerOnStart = Mali, utos = [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 = "'username' @ 'hostname'} {'mpd' | 'date' - 'time'"

Dapat itong gumana, at talagang gumagana ito. Ang syntax ay medyo mas kumplikado at pinakamahusay na kung susuriin mo ito mismo upang maunawaan ito. Kaya lilimitahan ko lamang ang aking sarili na sabihin sa iyo na inilalarawan namin ang mga utos, kanilang mga pagpipilian at ilang dagdag na setting, na ipapakita sa XMobar.
Ang linya ng template ay mayroong lahat ng aksyon at nakagawa ako ng isang trick upang maipakita ang kantang nakikinig ako. Ang trick na ito at ang isa upang baguhin ang kanta sa pamamagitan ng mga keyboard shortcut ay nangangailangan ng mpc, isang mpd client na maipapatupad mula sa terminal.

Konklusyon

Iyon lang, sa palagay ko. Sinuri na namin ang pangunahing file ng XMonad at nagsimulang malaman ang Haskell kung gusto namin ito o hindi. Kung nais mong magpatuloy mayroong isang napakahusay na gabay upang magsimula sa.
Sa susunod na yugto ay susuriin namin ang mga hindi programmable na tagapamahala, partikular ang Spectrwm / Scrotwm. Magkita tayo


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   ivanovblack dijo

    Hindi kapani-paniwala!

    Spectrwm sa susunod? !Opo, ginoo!

  2.   TheSandman86 dijo

    Napakagandang gabay, mukhang napaka-kagiliw-giliw, nais kong tingnan, kahit na higit akong komportable sa aking Openbox.

  3.   anti dijo

    Oops, napalampas ko ang pagtukoy kung saan pupunta ang mga file na ito, ngunit kapag na-edit ko ang post, nagpapadala ito sa akin ng isang mensahe ng error:
    Malalang error: Tumawag sa hindi natukoy na pag-andar get_header () sa /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php sa linya
    Kung may makakapag-edit nito, pupunta ito nang ganito:

    Pangunahing file ng pagsasaayos: ~ / .xmonad / xmonad.hs
    Xmobarrc file: ~ / .xmobarrc
    File ng pagsasaayos ng console: ~ / .Xdefaults
    ????

    1.    anti dijo

      Parang hindi ko mai-edit ang sarili kong mga post. Hindi ko rin makita ang pagpipilian kahit saan sa desktop. Mayroon akong isang pares ng mga bug, iyon lang, kaunting pag-aayos.

  4.   Nano dijo

    Sa gayon, nakita ko itong sobrang kawili-wili dahil mas mabunga ito pagdating sa programa. Gusto kong guluhin ang Kahanga-hanga dahil nais kong matuto ng LUA.

    Mayroon ito para sa amin na nag-program sa Python Qtile, ngunit ang totoo ay hindi ko ito kayang patakbuhin, gumagamit ako ng Ubuntu at na-install ko ito sa pamamagitan ng PPA at mula rin sa mga mapagkukunan ngunit ang hindi kanais-nais na bagay ay ayaw gumana xD

    Gayunpaman LUA ay isang bagay na DAPAT kong matutunan at walang mas mahusay kaysa sa nakikita ang mukha ng bawat isa sa mga ganitong uri ng mga tile.

    Keep it up anti, malapit ka nang maging Author within DesdeLinux

    1.    Nano dijo

      At oo, nasa kolehiyo ako at sa ganitong tae wala silang Linux xD

      1.    anti dijo

        Salamat nano. Ngunit, maaari mo ba akong tulungan sa pag-edit ng mga artikulo pagkatapos ma-publish? Hindi ko kaya.

        1.    nano dijo

          Oo, huminahon, iwanan ang mga ito habang mas umaangkop sila kaysa sa pag-aayos ko sa kanila

  5.   xykyz dijo

    Salamat anti, tiyak na susubukan ko ang XMonad. Nakikita ko na gumagamit ito ng pangunahing mga bagay sa Haskell nang hindi nangangailangan ng maraming pagiging kumplikado tulad ng mga guwardya, ang operator ng application at malinaw naman ang paggamit ng mga listahan (kung hindi man ay ito ang Haskell xD).

    Tingnan natin ang hitsura nito! 🙂

  6.   Fernando dijo

    Gumagamit ako ng matagal na tagapamahala ng windows. Kapag may oras ako ay gumawa ako ng isang tutorial kung saan inaasahan kong maipaliwanag ang buong proseso, mula sa pag-install ng kahanga-hangang hanggang sa pag-configure ng isang hanay ng mga magaan na programa at paglikha ng aming sariling tema.

    Kung sa tingin mo ay mabuti sa iyo, kapag mayroon ako maaari kong ipaalam sa iyo upang mai-publish mo ito rito.

    Sa pamamagitan ng paraan at sa iyong pahintulot, gumagawa ako ng kaunting advertising sa aking maliit na website, kung nais mong tumingin ka, kung sakaling interesado ka sa anumang publication:

    http://niferniware.sytes.net

    Pagbati!

    1.    msx dijo

      Kung ito ay Kahanga-hanga 3 Tiyak na interesado ako rito.

  7.   Fernando dijo

    Isang detalye, ang seksyon ng web kung saan ko na-host ang blog ay:
    http://niferniware.sytes.net/blog/

    Humihingi ako ng paumanhin tungkol sa pagkakamali.

    Isang saya!

    1.    masigla dijo

      Nagustuhan ko talaga ang iyong blog… ^^

      1.    Fernando dijo

        Maraming salamat Elav, nakikipag-ugnay kami!

        Ang katotohanan ay iyon sa isang paraan DesdeLinux Ito ang nagtulak sa akin na gumawa ng sarili kong blog. Napakaraming oras sa paggamit ng Linux ay ginagawang isaalang-alang ng isang tao na mag-ambag ng isang bagay bilang kapalit ^^

        Pagbati!

  8.   msx dijo

    "Kung nagtataka ka kung bakit pinili ko ang apat na liham na iyon para sa aking mga mesa, naalala ko ang apat na mga base ng nucleic ng DNA."
    Matamis, +1

    1.    anti dijo

      Kaya, gusto ko talaga ang ideya ng paglalagay ng DNA sa aking mga mesa.

  9.   halonsov dijo

    Mahusay na patnubay, salamat sa kanya Sinusubukan ko lang ang xmonad, at masasabi ko lamang ang isang bagay tungkol dito, nahulog ako sa pag-ibig sa xmonad, hindi ko pa rin inilagay ang aking kamay at kahit na parang mahusay ito, maraming salamat

    1.    msx dijo

      Mahusay, inaasahan naming makita ang iyong pag-unlad na naging isang post! =)

  10.   Victor Salmeron dijo

    Ang isang maliit na pagmamasid sa tagapagturo, sa ngayon ay gumagamit ako ng Debian stable (Squeeze), at upang mai-install ang dmenu, hindi ito tapos sa isang kakayahan na mag-install ng dmenu, ngunit sa pakete na walang mga tool, kung hindi man, mahusay na tutorial

    1.    anti dijo

      Inaayos ito ng parehong kakayahan. Bilang karagdagan, ang order ay mas nauunawaan tulad nito.

  11.   tarantonium dijo

    Ipinapalagay ng gabay na ito na mayroon kang naka-install na x.
    Sa aking kaso, nagsisimula ako mula sa isang debian console lamang, kaya kailangan kong mag-install ng xorg. Mabuti, dahil ang hinahanap namin ay isang minimalist na kapaligiran, simula sa isang debian nang walang mga grapikong kapaligiran, pag-install ng xmonad sa simpleng mode at pagdaragdag ng mga tool at programa ng console, tulad ng mutt, irssi, atbp.

    1.    anti dijo

      Oo, ang X ay nasa. Ang post mismo ay nagpapaliwanag na nagsimula ako sa isang maliit na Debian na nagawa sa Openbox.