Het lijkt erop dat ik veel heb gebeden en het is dat ik tot op de dag van vandaag geen millimeter instellingen heb gedaan. Zoals ik heb beloofd een tijdje vandaag zal ik mijn xmonad.hs scheuren die ik speciaal voor deze gelegenheid heb voorbereid. Deze en andere configuratiebestanden bevinden zich in het bijzonder in de plak de kleuren van de console, de vensterinstellingen y de bovenste balk.
Je kunt ze daar downloaden en openen in je favoriete teksteditor.
Voor
Voor het geval je je afvroeg: mijn bureaublad was een kleine Openbox op Debian-stal. Als u het distributie-installatieproces op dit moment overslaat, moet u controleren of de benodigde pakketten zich in de repositories bevinden. Laten we dit doen (denk eraan dat ik op Debian zit):
sudo aptitude installeer ghc xmonad xmobar gmrun dmenu
En klaar. We hebben zojuist geïnstalleerd, in volgorde van verschijning; de Glasgow Haskell Compiler die verantwoordelijk is voor het samenstellen en interpreteren van Haskell; XMonad, de vensterbeheerder, XMobar is een balk die informatie weergeeft over het systeem en enkele programma-opstartprogramma's, dmenu en gmrun; die al zo vriendelijk zijn geconfigureerd dat XMonad ze start met Mod + P en Mod + Shift + P.
En zo zag mijn bureaublad eruit. Ik heb het zo gesteld dat we een vergelijkingspunt hebben en enkele dingen emuleren die ik al had geconfigureerd in een meer minimalistische omgeving.
Maar verrassing. XMonad verwelkomt ons zo. In de opname heb ik gmrun al geopend, zodat te zien is dat het niet kapot is:
En we willen dat het er zo uitziet, al geconfigureerd en zo:
Het screenshot toont een terminal met ncmpcpp, een MPD-client voor de terminal; en een GVim-sessie, beide met de kleuren van het palet SolarizedLicht. Om dit te krijgen was niet echt moeilijk en zelfs Vim en urxvt waren al klaar op mijn systeem.
De xmonad.hs, hoe eng!
Helemaal niet. De configuratie die u gaat zien, is uiterst eenvoudig en eenvoudig. Het zou moeten werken op alle systemen met XMonad 0.9.1, ook al is 0.10 al beschikbaar. Wees bang, erg bang:
- Xmonad-configuratie - Zoals je kunt zien, is het vrij eenvoudig import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" spawn "stikstof --herstel" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed" xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3 ", gerichtBorderColor =" # 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")] - Einde van configuratie. Simpel, gemakkelijk en schoon.
Wat is hier gebeurd?
Als ze al hersteld zijn van de schrik, kunnen we zien dat onze configuratie amper 30 regels code bereikt. Ik ga stukje voor stukje uitleggen waarom XMonad het programma compileert dat we zojuist hebben geschreven als je dit kopieert en plakt. Klaar?
De afhankelijkheden sectie
Aan het begin van het bestand zijn er drie regels die beginnen met het trefwoord importeren. Net als in andere programmeertalen, stuurt het de compiler om de gewenste module te zoeken en geeft het de functies van de geluksmodule. Laten we het nog eens zien:
importeer XMonad importeer XMonad.Util.EZConfig importeer XMonad.Util.Run
Ons programma gebruikt drie afhankelijkheden. De eerste brengt ons de XMonad-functies, de tweede en derde zullen ons later helpen om sneltoetsen te definiëren en programma's uit te voeren. Laten we door gaan.
Variabelen
Dat ding is werk en waar is het voor? Laten we de code nader bekijken:
wrk = ["A", "C", "G", "T"]
werk is een variabele die equivalent is aan een lijst van vier elementen, alle strings; omdat Haskell-lijsten slechts één itemtype accepteren. Als je je afvraagt waarom ik die vier letters voor mijn desktops heb gekozen, herinnerde ik me de vier nucleïnezuurbasen van DNA.
De naam is slechts een afkorting, en we zouden het myWorkspaces, pepitoRojo of wat dan ook kunnen noemen, zolang het begint met een kleine letter en we het specificeren in de volgende sectie.
Hier begint het goede aan het hebben van een volledige programmeertaal tot onze beschikking, omdat we de kleur van het venster zouden kunnen definiëren vanuit een variabele:
windowColor = "#FFFFFF"
Of maak zelfs een functie die een kleur teruggeeft met betrekking tot onze stemming:
moodColor m | m == "Sad" = "# b0c4f6" - Iets als blauw | m == "Angry" = "# ba3f3f" - Zoiets als rood | m == "Happy" = "# 8bff7e" --Zoiets als groen | else = "#FFFFFF" - Wit, voor neutrale dagen
En veel meer. Voel je de kracht al aan je vingers? Een ding. Als je niet begrijpt wat er is gebeurd, denk dan dat dit een Haskell's eigen structuur is die we noemen wacht en het is eigenlijk als een als-dan-anders-boom, maar meer georganiseerd en mooi. En maak je geen zorgen, de code is door mij geschreven en het werkt prima.
Het hoofdgedeelte
Van de regel die zegt main = doen we begonnen het gedrag van XMonad te specificeren. Laten we het rustig bekijken.
Dingen aftrappen in het begin
Dit kan op veel manieren worden bereikt, maar om de afhankelijkheden te vermijden en code schoner te maken, zij het duidelijk meer holbewoner, heb ik hiervoor gekozen:
xmproc <- spawnPipe "xmobar" spawn "stikstof --herstel" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"
De eerste regel start de XMobar, waarvan we het configuratiebestand later zullen zien.
Toen begonnen we een aantal essentiële dingen voor mij, een mooie wallpaper (dezelfde als die in de eerste screenshot), een demon die urxvt laat rennen als de wind, de demon van mpd -die mijn muziek vanaf het begin speelt en ik sluit nooit - en een volumeregeling. Ja, dat is het. De syntaxis is hetzelfde als u wilt beginnen met wat u nodig heeft.
Laatste aanpassingen
Hier definiëren we enkele dingen die meestal slechts persoonlijke voorkeuren zijn. Ik gebruik bijvoorbeeld graag de normaal gesproken nutteloze Super-toets (in feite de Windows-toets) in plaats van Alt, maar dat is mijn voorkeur. Als u terug wilt naar Super, verwijdert u de eerste regel.
- ... xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3", gerichtBorderColor = "# 002b26", workspaces = wrk} - ...
Vervolgens definiëren we onze terminal, urxvtc, want dat is wat we een cliënt van de demon noemen die we eerder liepen. Andere dingen, zoals de lijst met werkruimten, die we in zaken hadden kunnen plaatsen als:
, workspaces = ["H", "O", "L", "A"], workspaces = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], workspaces = [" 1: web "," 2: muziek "," 3: ongebruikte ruimte "," 4: Ufff "]
En andere dingen die de verwerking van de stringlijst van Haskell ons mogelijk maakt.
De dikte van de rand is slechts een geheel getal en als we de kleur van het venster willen veranderen, focust de functie stemmingKleur die we zojuist hebben gemaakt, omdat we de variabele zo laten:
--..., gerichtBorderColor = moodColor "Gelukkig" - ...
De $ aan de lijn xmonad ... het is slechts een toepassing van juiste associatieve functies, dat wil zeggen, we bewaren een paar haakjes. 😀
Toetsenbord sneltoetsen
Aan het einde van het bestand hebben we een lijst met tuples die enkele snelkoppelingen bevatten, in dit geval starten ze GVim, pauzeren of spelen ze de muziek, en versnellen of vertragen ze. Dat is het. De extraKeys-functie komt in de tweede module die we importeren en de achterste accenten zorgen ervoor dat het wordt uitgevoerd in de stijl van de div (/) -functie zoals 1/2 en niet div 1 2, waardoor het gemakkelijker te lezen is. Zo is het:
- ...} `additionalKeys` [((mod4Mask, xK_v), spawn" gvim "), ((mod4Mask, xK_c), spawn" mpc toggle "), ((mod4Mask, xK_a), spawn" mpc prev "), ((mod4Mask, xK_s), spawn "mpc next")]
Het .xmobarrc
Config {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", position = Top , lowerOnStart = False, commands = [Run Com "echo" ["$ USER"] "gebruikersnaam" 864000, Run Com "hostnaam" ["-s"] "hostnaam" 864000, Run Com "mpc current" [""] "mpd" 10, startdatum "% a% b% d" "date" 36000, startdatum "% H:% M" "time" 10, start StdinReader], sepChar = "'", alignSep = "} {" , template = "'gebruikersnaam' @ 'hostnaam'} {'mpd' | 'datum' - 'tijd'"
Dit zou moeten werken, en dat doet het ook. De syntaxis is wat complexer en u kunt deze het beste zelf analyseren om het te begrijpen. Dus ik zal mezelf beperken tot het vertellen dat we de commando's, hun opties en enkele extra instellingen beschrijven, die in XMobar zullen worden getoond.
De sjabloonregel bevat alle actie en ik bedacht een truc om het nummer waar ik naar luister weer te geven. Deze truc en de truc om het nummer te veranderen met sneltoetsen vereist mpc, een mpd-client die vanaf de terminal kan worden uitgevoerd.
Conclusies
Dat is het, denk ik. We hebben het hoofdbestand van XMonad al doorgenomen en begonnen Haskell te leren, of we het nu leuk vinden of niet. Als je verder wilt gaan, is er een heel goede gids om mee te beginnen.
In de volgende aflevering zullen we niet-programmeerbare managers onderzoeken, met name Spectrwm / Scrotwm. Tot ziens.
!Fantastisch!
Spectrwm de volgende keer? !Ja meneer!
Zeer goede gids, het ziet er erg interessant uit, ik wil een kijkje nemen, ook al ben ik meer dan comfortabel met mijn Openbox.
Oeps, ik heb niet gespecificeerd waar deze bestanden naartoe gaan, maar als ik het bericht bewerk, krijg ik een foutmelding:
Fatale fout: oproep naar ongedefinieerde functie get_header () in /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php online
Als iemand het kan bewerken, gaan ze als volgt:
Hoofdconfiguratiebestand: ~ / .xmonad / xmonad.hs
Xmobarrc-bestand: ~ / .xmobarrc
Console-configuratiebestand: ~ / .Xdefaults
????
Ik kan mijn eigen berichten niet bewerken. Ik kan de optie ook nergens op het bureaublad vinden. Ik heb een paar bugs, dat is alles, minimale reparaties.
Nou, ik vind het super interessant omdat het productiever is als het gaat om programmeren. Ik wil rotzooien met Awesome omdat ik echt LUA wil leren.
Het bestaat voor degenen onder ons die programmeren in Python Qtile, maar de waarheid is dat ik het niet kan laten draaien, ik gebruik Ubuntu en ik heb het geïnstalleerd via PPA en ook van bronnen, maar het ongelukkige wil niet werken xD
Hoe dan ook, LUA is iets dat ik MOET leren en niets beters dan elkaars gezichten zien met dit soort tegels.
Ga zo door, je bent op weg om een innerlijke auteur te worden DesdeLinux
En ja, ik studeer en in deze shit hebben ze geen Linux xD
Bedankt nano. Maar kun je me helpen met het redigeren van de artikelen nadat ze zijn gepubliceerd? Ik kan niet.
Ja, kalmeer, laat ze zoals ze beter passen dan ik ze repareer
Bedankt anti, ik zal XMonad zeker eens proberen. Ik zie dat het elementaire Haskell-dingen gebruikt zonder dat er veel complexiteit nodig is, zoals bewakers, de applicatie-operator en uiteraard het gebruik van lijsten (anders zou het Haskell xD niet zijn).
Laten we eens kijken hoe het eruit ziet! 🙂
Ik gebruik al heel lang een tegelvensterbeheerder, geweldig. Als ik tijd heb, zal ik een tutorial doen waarin ik het hele proces hoop uit te leggen, van het installeren van geweldig tot het configureren van een reeks lichtgewicht programma's en het maken van ons eigen thema.
Als het u goed lijkt, kan ik het u laten weten wanneer ik het heb, zodat u het hier kunt publiceren.
Overigens doe ik met jouw toestemming een beetje reclame op mijn kleine website, als je wilt kun je even kijken, voor het geval je interesse hebt in een publicatie:
http://niferniware.sytes.net
Groeten!
Als het Awesome 3 is, ben ik er zeker in geïnteresseerd.
Een detail, het gedeelte van het web waar ik de blog heb gehost, is:
http://niferniware.sytes.net/blog/
Het spijt me van de fout.
Een gejuich!
Ik vond je blog erg leuk ... ^^
Heel erg bedankt Elav, we hebben contact!
De waarheid is dat in zekere zin DesdeLinux Het heeft mij ertoe aangezet om een eigen blog te maken. Zoveel tijd met het gebruik van Linux doet je overwegen om iets terug te doen ^^
Groeten!
'Als je je afvraagt waarom ik die vier letters voor mijn bureau heb gekozen, herinnerde ik me de vier nucleïnezuurbases van DNA.'
Lief, +1
Ik hou echt van het idee om DNA op mijn bureau te leggen.
Uitstekende gids, dankzij haar probeer ik gewoon xmonad, en ik kan er maar één ding over zeggen, ik werd verliefd op xmonad, ik leg mijn hand er nog steeds niet op en toch lijkt het uitstekend, heel erg bedankt
Uitstekend, we hopen dat uw voortgang wordt omgezet in een post! =)
Een kleine opmerking voor de tutor, op dit moment gebruik ik Debian stable (Squeeze), en om het dmenu te installeren, doe ik dat niet met een aptitude install dmenu, maar met het suckless-tools-pakket, anders een uitstekende tutorial
Dezelfde aanleg lost het op. Bovendien wordt de bestelling zo beter begrepen.
In deze handleiding wordt ervan uitgegaan dat x's zijn geïnstalleerd.
In mijn geval begin ik alleen met een debian-console, waarmee ik xorg moest installeren. Het zou prima zijn, aangezien we op zoek zijn naar een minimalistische omgeving, beginnend bij een debian zonder grafische omgevingen, xmonad in de eenvoudige modus te installeren en tools en consoleprogramma's toe te voegen, zoals mutt, irssi, enz.
Ja, de X's waren al aan. Het bericht zelf legt uit dat ik ben begonnen met een minimale Debian die al met Openbox is gemaakt.