Wydaje się, że dużo się modliłem i to jest to, że do dziś nie stawiam milimetra ustawień. Jak obiecałem chwila dzisiaj rozerwę na strzępy moje xmonad.hs, które przygotowałem specjalnie na tę okazję. W szczególności ten i inne pliki konfiguracyjne znajdują się w sekcji Wklej kolory konsoli, ustawienia okna y górny pasek.
Możesz je stamtąd pobrać i otworzyć w swoim ulubionym edytorze tekstu.
Przed
Jeśli się zastanawiasz, mój pulpit był małym Openboxem w stabilnej Debianie. Pomijając na razie proces instalacji dystrybucji, powinieneś sprawdzić, czy niezbędne pakiety znajdują się w repozytoriach. Zróbmy to (pamiętając, że jestem na Debianie):
sudo aptitude zainstaluj ghc xmonad xmobar gmrun dmenu
I gotowy. Właśnie zainstalowaliśmy, w kolejności pojawiania się; Glasgow Haskell Compiler, który jest odpowiedzialny za kompilację i interpretację Haskell; XMonad, menedżer okien, XMobar to pasek prezentujący informacje o systemie i niektórych programach uruchamiających, dmenu i gmrun; które uprzejmie są już skonfigurowane, więc XMonad uruchamia je z Mod + P i Mod + Shift + P.
A tak wyglądał mój pulpit. Postawiłem to tak, abyśmy mieli punkt odniesienia i naśladowali niektóre rzeczy, które już skonfigurowałem w bardziej minimalistycznym środowisku.
Ale niespodzianka. XMonad wita nas w ten sposób. W przechwytywaniu już otworzyłem gmrun, więc widać, że nie jest zepsuty:
I chcemy, żeby wyglądało to tak, już skonfigurowane i wszystko:
Zrzut ekranu pokazuje terminal z uruchomionym ncmpcpp, klientem MPD dla terminala; oraz sesja GVim, obie z kolorami z palety Światło słoneczneL. Uzyskanie tego nie było trudne i nawet Vim i urxvt były już gotowe w moim systemie.
Xmonad.hs, jakie straszne!
Ani trochę. Konfiguracja, którą zaraz zobaczysz, jest niezwykle prosta i podstawowa. Powinien działać na wszystkich systemach, które mają XMonad 0.9.1, mimo że 0.10 jest już dostępne. Cóż, bój się, bardzo się bój:
- Konfiguracja Xmonad - Jak widać, jest to całkiem proste import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run wrk = ["A", "C", "G", "T"] main = do xmproc <- spawnPipe "xmobar" spawn "azot --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 konfiguracji. Proste, łatwe i czyste.
Co tu się stało?
Jeśli już otrząsnęli się ze strachu, widzimy, że nasza konfiguracja ledwie osiąga 30 linii kodu. Mam zamiar wyjaśnić część po części, dlaczego jeśli skopiowałeś i wkleiłeś to, XMonad skompiluje program, który właśnie napisaliśmy. Gotowy?
Sekcja zależności
W pobliżu początku pliku znajdują się trzy wiersze zaczynające się od słowa kluczowego importować. Podobnie jak w innych językach programowania, wysyła kompilator w celu znalezienia żądanego modułu i nadaje mu funkcje szczęśliwego modułu. Zobaczmy to ponownie:
import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run
Nasz program używa trzech zależności. Pierwsza dostarcza nam własne funkcje XMonada, druga i trzecia pomogą nam później zdefiniować skróty klawiaturowe i uruchomić programy. Idźmy dalej.
Zmienne
Tak jest praca i do czego to służy? Przyjrzyjmy się bliżej kodowi:
wrk = [„A”, „C”, „G”, „T”]
praca jest zmienną, która jest odpowiednikiem listy czterech elementów, wszystkich łańcuchów; ponieważ listy Haskell akceptują tylko jeden typ elementu. Jeśli zastanawiasz się, dlaczego wybrałem te cztery litery na moje komputery stacjonarne, przypomniałem sobie cztery zasady nukleinowe DNA.
Nazwa jest tylko skrótem i możemy ją wpisać myWorkspaces, pepitoRojo lub cokolwiek innego, o ile zaczyna się od małej litery i określimy ją w następnej sekcji.
Tutaj zaczyna się dobra rzecz związana z posiadaniem pełnego języka programowania do naszej dyspozycji, ponieważ możemy zdefiniować kolor okna ze zmiennej:
windowColor = "#FFFFFF"
Lub nawet utwórz funkcję, która zwraca kolor w odniesieniu do naszego nastroju:
moodColor m | m == "Sad" = "# b0c4f6" - Coś w rodzaju niebieskiego | m == "Angry" = "# ba3f3f" - Coś jak czerwony | m == "Happy" = "# 8bff7e" - Coś jak zielony | w przeciwnym razie = "#FFFFFF" - biały, dla dni neutralnych
I wiele więcej. Czy już czujesz siłę na palcach? Jedna sprawa. Jeśli nie rozumiesz, co się stało, pomyśl, że jest to własna struktura Haskella, którą nazywamy guarda i jest w zasadzie jak drzewo jeśli-to-jeszcze, ale jest bardziej zorganizowane i ładne. I nie martw się, kod został napisany przeze mnie i działa dobrze.
Główna sekcja
Z linii, która mówi main = do zaczęliśmy określać zachowanie XMonada. Spójrzmy na to spokojnie.
Na początek
Można to osiągnąć na wiele sposobów, ale aby pozostać bez zależności i uczynić kod czystszym, choć wyraźnie bardziej jaskiniowcem, zdecydowałem się na to:
xmproc <- spawnPipe "xmobar" spawn "azot --restore" spawn "urxvtd" spawn "mpd" spawn "xfce4-volumed"
Pierwsza linia uruchamia XMobar, którego plik konfiguracyjny zobaczymy później.
Potem zaczęliśmy kilka istotnych dla mnie rzeczy, ładną tapetę (taką samą jak na pierwszym zrzucie ekranu), demon, który sprawia, że urxvt biegnie jak wiatr, demon mpd - który gra moją muzykę od początku i nigdy nie zamykam - i regulator głośności. Tak, to jest to. Składnia jest taka sama, jeśli chcesz rozpocząć to, czego potrzebujesz.
Końcowe korekty
Tutaj definiujemy kilka rzeczy, które zwykle są tylko osobistymi preferencjami. Na przykład lubię używać normalnie bezużytecznego klawisza Super (właściwie Windows) zamiast Alt, ale to moje preferencje. Jeśli chcesz wrócić do Super, usuń pierwszą linię.
- ... xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3", focusBorderColor = "# 002b26", workspaces = wrk} - ...
Następnie definiujemy nasz terminal, urxvtc, bo tak nazywamy klienta demona, którego prowadziliśmy wcześniej. Inne rzeczy, takie jak lista obszarów roboczych, które moglibyśmy umieścić w takich rzeczach, jak:
, obszary robocze = [„H”, „O”, „L”, „A”], obszary robocze = [„A”, „R”, „C”, „H”, „L”, „I”, „N „,„ U ”,„ X ”], obszary robocze = [„ 1: internet ”,„ 2: muzyka ”,„ 3: nieużywane miejsce ”,„ 4: Ufff ”]
I inne rzeczy, na które pozwala nam przetwarzanie listy ciągów Haskella.
Grubość obramowania to po prostu liczba całkowita i jeśli chcemy zmienić kolor okna, na które skupia się funkcja nastrójKolor które właśnie stworzyliśmy, ponieważ zostawiamy zmienną w ten sposób:
--..., focusBorderColor = moodColor "Happy" - ...
Znak $ na linii xmonad ... jest to tylko zastosowanie odpowiednich funkcji asocjacyjnych, to znaczy, że zostawiamy kilka nawiasów. 😀
Skróty klawiszowe
Na końcu pliku mamy listę krotek, które zawierają pewne skróty, w tym przypadku uruchamiają GVim, pauzują lub odtwarzają muzykę i przyspieszają ją lub opóźniają. Otóż to. Funkcja additionalKeys znajduje się w drugim module, który importujemy, a tylne akcenty sprawiają, że jest ona wykonywana w stylu funkcji div (/), takiej jak 1/2, a nie div 1 2, dzięki czemu jest łatwiejsza do odczytania. A więc to jest:
- ...} `additionalKeys` [((mod4Mask, xK_v), spawn" gvim "), ((mod4Mask, xK_c), spawn" mpc toggle "), ((mod4Mask, xK_a), spawn" mpc prev "), ((mod4Mask, xK_s), spawn „następny mpc”)]
Plik .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, Data uruchomienia "% a% b% d" "date" 36000, Data uruchomienia "% H:% M" "time" 10, Uruchom StdinReader], sepChar = "'", alignSep = "} {" , template = "'nazwa użytkownika' @ 'nazwa hosta'} {'mpd' | 'data' - 'godzina'"
To powinno działać i faktycznie działa. Składnia jest nieco bardziej złożona i najlepiej jest przeanalizować ją samodzielnie, aby ją zrozumieć. Ograniczę się więc do tego, aby powiedzieć, że opisujemy polecenia, ich opcje i dodatkowe ustawienia, które zostaną pokazane w XMobar.
Linia szablonu zawiera całą akcję i wymyśliłem sztuczkę, aby pokazać piosenkę, której słucham. Ta sztuczka i ta, która zmienia utwór na skróty klawiaturowe, wymagają mpc, klienta mpd wykonywalnego z terminala.
Wnioski
Myślę, że to wszystko. Przejrzeliśmy już główny plik XMonad i zaczęliśmy uczyć się Haskella, czy nam się to podoba, czy nie. Jeśli chcesz kontynuować, na początek znajdziesz bardzo dobry przewodnik.
W następnej części omówimy nieprogramowalne menedżery, w szczególności Spectrwm / Scrotwm. Do zobaczenia.
!Fantastyczny!
Spectrwm następnym razem? !Tak jest!
Bardzo dobry przewodnik, wygląda bardzo interesująco, chcę rzucić okiem, chociaż czuję się bardziej niż komfortowo z moim Openboxem.
Ups, przegapiłem określenie, gdzie trafiają te pliki, ale kiedy edytuję post, wysyła mi komunikat o błędzie:
Błąd krytyczny: wywołanie niezdefiniowanej funkcji get_header () w /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php on line
Jeśli ktoś może go edytować, postępuje tak:
Główny plik konfiguracyjny: ~ / .xmonad / xmonad.hs
Plik Xmobarrc: ~ / .xmobarrc
Plik konfiguracyjny konsoli: ~ / .Xdefaults
????
Nie mogę edytować własnych postów. Nie mogę też znaleźć tej opcji na pulpicie. Mam kilka błędów, to wszystko, minimalne poprawki.
Cóż, uważam to za bardzo interesujące, ponieważ jest bardziej produktywne, jeśli chodzi o programowanie. Chcę zadzierać z Awesome, ponieważ naprawdę chcę się nauczyć LUA.
Istnieje dla tych z nas, którzy programują w Pythonie Qtile, ale prawda jest taka, że nie mogę go uruchomić, używam Ubuntu i zainstalowałem go przez PPA, a także ze źródeł, ale niefortunna rzecz nie chce działać xD
W każdym razie LUA to coś, czego MUSZĘ się nauczyć i nie ma nic lepszego niż oglądanie siebie nawzajem na tego typu płytkach.
Tak trzymaj, jesteś na dobrej drodze do zostania Autorem w sobie DesdeLinux
I tak, jestem na studiach iw tym gównie nie mają Linuksa xD
Dzięki nano. Ale czy możesz mi pomóc w edycji artykułów po ich opublikowaniu? Nie mogę.
Tak, uspokój się, zostaw je tak, jak pasują lepiej niż je naprawiam
Dzięki anty, na pewno spróbuję XMonad. Widzę, że używa podstawowych rzeczy Haskella bez potrzeby dużej złożoności, jak strażnicy, operator aplikacji i oczywiście użycie list (w przeciwnym razie nie byłby to Haskell xD).
Zobaczmy, jak to wygląda! 🙂
Używam menedżera okien kafelkowych od dłuższego czasu, niesamowicie. Kiedy będę miał czas, zrobię samouczek, w którym mam nadzieję, że będę mógł wyjaśnić cały proces, od instalacji niesamowitego do skonfigurowania zestawu lekkich programów i stworzenia własnego motywu.
Jeśli wydaje Ci się to dobre, mogę Cię powiadomić, kiedy będę miał, i opublikuj go tutaj.
Przy okazji i za twoją zgodą robię trochę reklamy na mojej małej stronie, jeśli chcesz, możesz rzucić okiem, jeśli jesteś zainteresowany jakąkolwiek publikacją:
http://niferniware.sytes.net
Pozdrowienia!
Jeśli to Awesome 3, zdecydowanie mnie to interesuje.
Jeden szczegół, sekcja sieci, w której hostowałem bloga, to:
http://niferniware.sytes.net/blog/
Przepraszam za pomyłkę.
Okrzyki!
Bardzo podobał mi się twój blog… ^^
Bardzo dziękujemy Elav, jesteśmy w kontakcie!
Prawda jest taka, że w pewnym sensie DesdeLinux Skłoniło mnie to do założenia własnego bloga. Tyle czasu spędzanego na Linuksie sprawia, że warto rozważyć wniesienie czegoś w zamian ^^
Pozdrowienia!
„Jeśli zastanawiasz się, dlaczego wybrałem te cztery litery na moje biurka, przypomniałem sobie cztery nukleinowe zasady DNA”.
Super, +1
Cóż, naprawdę podoba mi się pomysł umieszczenia DNA na moim biurku.
Świetny przewodnik, dzięki niej właśnie próbuję xmonad i mogę tylko powiedzieć o nim jedno, zakochałem się w xmonad, nadal nie kładę na nim ręki i nadal wydaje się znakomity, bardzo dziękuję
Świetnie, mamy nadzieję, że Twój postęp zmieni się w post! =)
Mała uwaga dla nauczyciela, w tej chwili używam stabilnego Debiana (Squeeze) i aby zainstalować dmenu, nie robi się tego za pomocą aptitude install dmenu, ale z pakietem suckless-tools, w przeciwnym razie doskonały samouczek
Ta sama umiejętność rozwiązuje problem. Ponadto kolejność jest lepiej rozumiana w ten sposób.
Ten przewodnik zakłada, że masz zainstalowane x.
W moim przypadku zaczynam od konsoli Debiana, z którą musiałem zainstalować xorg. Byłoby dobrze, ponieważ to, czego szukamy, to minimalistyczne środowisko, zaczynając od debiana bez środowisk graficznych, instalując xmonad w trybie prostym i dodając narzędzia i programy konsolowe, takie jak mutt, irssi itp.
Tak, znaki X były już włączone. Sam post wyjaśnia, że zacząłem od minimalnego Debiana już stworzonego z Openbox.