Sembla que m'he fet molt de l'pregar i és que fins avui no em posat ni un mil·límetre de configuracions. Com vinc prometent des de fa una estona avui despedazaré meu xmonad.hs que vaig preparar especialment per a aquesta ocasió. Aquest i altres arxius de configuració són al Paste, específicament els colors de la consola, les configuracions de les finestres y la barra superior.
Pots descarregar-des d'aquí i obrir-les en el teu editor de text favorit.
Abans
Per si s'ho preguntaven, el meu escriptori era un petit Openbox a Debian estable. Obviant de moment el procés d'instal·lació de la distribució, has de verificar que els paquets necessaris estiguin en els repositoris. Fem això (recordant que estic a Debian):
suo aptitude install GHC xmonad xmobar gmrun dmenu
I llest. Acabem d'instal·lar, en ordre d'aparició; el Glasgow Haskell Compiler que s'encarrega de compilar i interpretar Haskell; XMonad, el gestor de finestres, XMobar és una barra que ens presenta informació de l'sitema i uns llançadors de programes, dmenu i gmrun; que amablement ja vénen configurats perquè XMonad els llavors feu arrencar amb Mod + P i Mod + Shift + P.
I així és com es veia el meu escriptori. El poso perquè tinguem un punt de comparació i emulemos algunes de les coses que ja tenia configurades en un ambient més minimalista.
Però sorpresa. XMonad ens rep així. A la captura ja he obert gmrun, perquè es vegi que no està descompost:
I nosaltres volem que es vegi així, ja configurat i tot:
La captura mostra una terminal corrent ncmpcpp, un client de MPD per a la terminal; i una sessió de gvim, totes dues amb els colors de la paleta SolarizedLight. Aconseguir això no va ser realment difícil i fins i tot Vim i urxvt ja estaven llestes en el meu sistema.
El xmonad.hs, ui quina por!
Per res. La configuració que estan a punt de veure és summament senzilla i bàsica. Hauria de funcionar en tots els sistemes que disposin de XMonad 0.9.1, encara que ja estigui disponible la 0.10. Doncs tinguin por, molta por:
- Configuració de Xmonad - Com veuen, és bastant simple import 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-volumed" xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3 ", focusedBorderColor =" # 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")] - Fi de la configuració. Simple, fàcil i net.
Què va passar aquí?
Si ja es van recuperar de l'ensurt, podem observar que la nostra configuració a penes i arriba a les 30 línies de codi. Vaig a explicar part per part, per què si vas copiar i pegar això, XMonad va compilar el programa que acabem d'escriure. A punt?
La secció de dependències
Gairebé a el principi de l'arxiu hi ha tres línies que comencen amb la paraula clau importar. Com en altres llenguatges de programació, mana a l'compilador a cercar el mòdul que vol i aquest li lliura les funcions de l'afortunat mòdul. Vegem-ho de nou:
import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run
El nostre programa usa tres dependències. La primera ens porta les funcions pròpies de XMonad, la segona i la tercera ens ajudaran més endavant a definir dreceres de teclat ia córrer programes. Seguim.
les variables
Que cosa és treball i perquè serveix. Apreciem el codi de més a prop:
wrk = [ "A", "C", "G", "T"]
treball és una variable, que equival a una llista de quatre elements, tots cadenes; per que les llistes d'Haskell només accepten un tipus d'element. Si es pregunten per què vaig triar aquestes quatre lletres per als meus escriptoris, acordin-de les XNUMX bases nucleiques de l'ADN.
El nom és només una abreviatura, i vam poder posar-li myWorkspaces, pepitoRojo o el que sigui, mentre comenci amb minúscula i el especifiquem en la següent secció.
Aquí comença el bo de tenir un llenguatge de programació complet a la nostra disposició, per que podríem definir el color de la finestra des d'una variable:
colorVentana = "#FFFFFF"
O fins i tot crear una funció que retorni un color respecte al nostre estat d'ànim:
moodColor m | m == "Trist" = "# b0c4f6" - Una cosa com blau | m == "Enutjat" = "# ba3f3f" - Una cosa com vermell | m == "Feliç" = "# 8bff7e" --Una cosa com verd | otherwise = "#FFFFFF" - Blanco per als dies neutrals
I moltes coses més. Ja senten el poder sobre els seus dits? Una cosa. Si no entenen que pas, pensin que això és una estructura pròpia d'Haskell a la qual li diem guarda i bàsicament és com un arbre if-then-else, però més organitzat i bonic. I no es preocupin, el codi ho vaig escriure jo i funciona bé.
La secció principal
A partir d'el rengle que diu main = do vam començar a específicar el comportament de XMonad. Vegem-ho amb calma.
Arrencant les coses a el principi
Això es pot aconseguir de moltes maneres, però per quedar-nos curts de dependències i fer un codi més net, encara que clarament més cavernari, vaig optar per això:
xmproc <- spawnPipe "xmobar" spawn "nitrogen --restore" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"
La primera línia arrenca el XMobar, el fitxer de configuració veurem més tard.
Després vam arrencar algunes coses indispensables per a mi, un fons de pantalla agradable (el mateix que el de la primera captura), un dimoni que fa a urxvt córrer com el vent, el dimoni de mpd -que posa la meva música des del principi i mai tanco - i un control de volum. Ja, això és tot. La sintaxi és la mateixa si volen arrencar el que vostès necessiten.
Els ajustos finals
Aquí definim algunes coses que normalment són només preferències personals. Per exemple, m'agrada fer servir a la normalment inútil tecla Super (efectivament, la de les finestres) en comptes de Alt, però aquesta és la meva preferència. Si volen tornar a Super, treguin la primera línia.
- ... xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3", focusedBorderColor = "# 002b26", workspaces = wrk} - ...
Després definim la nostra terminal, urxvtc, Per que així anomenem a un client de el dimoni que vam córrer anteriorment. Altres coses més, com la llista d'espais de treball, que bé podríem haver posat en coses com:
, Workspaces = [ "H", "O", "L", "A"], workspaces = [ "A", "R", "C", "H", "L", "I", "N "," O "," X "], workspaces = [" 1: web "," 2: musica "," 3: espacioInutil "," 4: Ufff "]
I altres coses que ens permet el processament de llistes de cadenes de Haskell.
El gruix de la vora és només un nombre enter i si volem canviar el color de la finestra enfocada per la funció moodColor que acabem de crear, doncs deixem la variable així:
--..., focusedBorderColor = moodColor "Feliç" - ...
El $ a la línia xmonad ... és només una aplicació de funcions associativa a dretes, és a dir, ens estalviem uns parèntesis. 😀
Les dreceres de teclat
El final de l'arxiu tenim una llista de tuples que contenen algunes dreceres, en aquest cas, llancen gvim, pausan o reprodueixen la música, i la avancen o la retarden. Això és tot. La funció additionalKeys ve en el segon mòdul que importem i els accents inversos fa que s'executi a l'estil de la funció div (/) com 1/2 i no div 1 2 cares, fent-lo més fàcil de llegir. Així està:
- ...} `additionalKeys` [((mod4Mask, xK_v), spawn" gvim "), ((mod4Mask, xK_c), spawn" mpc toggle "), ((mod4Mask, xK_a), spawn" mpc prev ") , ((mod4Mask, xK_s), spawn "mpc next")]
el .xmobarrc
Config {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgcolor = "# fdf6e3", fgColor = "# 657b83", position = Top , lowerOnStart = False, commands = [Run Com "echo" [ "$ USER"] "username" 864000, Run Com "hostname" [ "-s"] "hostname" 864000, Run Com "mpc current" [ ""] "mpd" 10, Run dati "% a% b% d" "date" 36000, Run dati "% H:% M" "time" 10, Run StdinReader], sepchar = " '", alignSep = "} {" , template = " 'username' @ 'hostname'} { 'mpd' | 'date' - 'time'"
Això hauria de funcionar, i de fet ho fa. La sintaxi és una mica més complexa i el millor és que la analizes tu mateix per entendre-la. Així que només em limitaré a dir-te que estem descrivint les ordres, les seves opcions i algunes configuracions extra, que seran mostrats en XMobar.
La línia template té tota l'acció i em vaig inventar un truc perquè mostri la cançó que estic escoltant. Aquest truc i el de canviar la cançó per dreceres de teclat requereixen d'mpc, un client de mpd executable des de la terminal.
Conclusions
Això és tot, crec. Ja revisem l'arxiu principal de XMonad i vam començar a aprendre Haskell ho vulguem o no. Si vols seguir hi ha una guia molt bona amb la que començar.
En la pròxima entrega explorarem als gestors no programables, específicament Spectrwm / Scrotwm. Ens veiem.
! Fantàstic!
La propera vegada Spectrwm? ! Sí senyor!
Molt bona guia, es veu molt interessant, m'estan entrant les ganes de donar-li un cop d'ull, tot i que estic mes que còmode amb el meu Openbox.
Ups, em va passar específicar on és que van aquests arxius, però quan li dono a editar el post, em envia un missatge d'error:
Fatal error: Call to undefined function get_header () in /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php on line
Si algú ho pot editar, van així:
Arxiu de configuració principal: ~ / .Xmonad / xmonad.hs
Arxiu de xmobarrc: ~ / .Xmobarrc
Arxiu de configuració de la consola: ~ / .Xdefaults
????
Sembla que no puc editar els meus propis posts. No trobo la opció per enlloc a l'escriptori tampoc. Tinc un parell d'errors, és tot, correccions mínimes.
Doncs em sembla super interessant ja que és mes productiu quan es tracta de programar. Jo vull ficar-me amb Awesome perquè la veritat vull aprendre LUA.
Hi per als que programem en Python Qtile, però la veritat és que no ho aconsegueixo fer córrer, camino fent servir Ubuntu i l'instal via PPA i també des de fonts però el molt desgraciat no vol funcionar xD
De totes maneres LUA és una cosa que HE aprendre i res millor que veure les cares amb aquest tipus de tils.
Segueix així anti, vas en camí a convertir-te en Autor dins de DesdeLinux
I sí, vaig a la universitat i en aquesta merda no tenen Linux xD
Gràcies nano. Però, ¿m'ajudes amb el d'editar els articles després de publicats? No puc.
Sí, tranquil, deixa'ls com a millor et quedin que jo els acord
Gràcies anti, definitivament vaig a provar XMonad. Veig que fa servir coses bàsiques d'Haskell sense necessitat de molta complexitat com les guardes, l'operador aplicació i evidentment l'ús de llistes (si no, no seria Haskell xD).
A veure que tal em queda! 🙂
Porto temps fent servir un tiling windows manager, Awesome. Quan tingui temps faré un tutorial en el que espero poder explicar tot el procés, des d'instal·lar awesome fins a configurar un set de programes lleugers i crear el nostre propi theme.
Si us sembla bé, quan el tingui us puc avisar perquè el publiqueu aquí.
De passada i amb el vostre permís, faig una mica de publicitat a la meva petita web, si voleu podeu fer-li un cop d'ull, per si us interessés alguna publicació:
http://niferniware.sytes.net
Una salutació!
Si és Awesome 3 definitivament m'interessa.
Un detall, la secció del web on tinc allotjat el bloc és:
http://niferniware.sytes.net/blog/
Lamento l'error.
Una salutació!
Em va agradar molt el teu bloc ... ^^
Moltes gràcies ILAV, estem en contacte!
La veritat és que en certa manera DesdeLinux em va incitar a crear el meu propi bloc. Tant temps usant Linux fa que un es plantegi aportar alguna cosa a canvi ^^
Una salutació!
«Si es pregunten per què vaig triar aquestes quatre lletres per als meus escriptoris, acordin-de les quatre bases nucleiques de l'ADN.»
Sweet, +1
Bé, m'agrada molt la idea de posar-li l'ADN als meus escriptoris.
Exelente guia, gràcies a ella tot just estic provant xmonad, i només puc dir una cosa del, m'enamori de xmonad, tot i no li fico mà i tot i aixi em sembla excel·lent, moltes gràcies
Excel·lent, esperem veure els teus avenços convertits en un post! =)
Una petita observació a l'estatut, en aquest moment ús Debian estable (Squeeze), i per instal·lar el dmenu, no es fa amb un aptitude install dmenu, sinó amb el paquet suckless-tools, d'altra banda, excel·lent Estatut
El mateix aptitude ho corregeix. A més s'entén millor l'ordre així.
Aquesta guia pressuposa que tens les x instal·lades.
En el meu cas, part d'una debian només consola, amb la qual cosa vaig haver de instal·lar xorg. Estaria bé, ja que el que busquem és un entorn minimalista, partir d'una debian sense entorns gràfics, instal·lar xmonad en mode simple i afegir eines i programes de consola, tipus mutt, irssi, etc ..
Sí, les X ja les tenia posades. El post mateix explica que vaig començar amb un Debian mínim ja fet amb Openbox.