모자이크의 어두운면 (III) : XMonad

기도를 많이 한 것 같고 오늘까지 밀리미터 설정을하지 않은 것 같습니다. 내가 약속했듯이 잠시 오늘은 이번 행사를 위해 특별히 준비한 xmonad.hs를 찢어 보겠습니다. 이 파일과 기타 구성 파일은 특히 붙여 넣기에 있습니다. 콘솔의 색상, 창 설정 y 상단 바.

거기에서 다운로드하여 즐겨 찾는 텍스트 편집기에서 열 수 있습니다.

전에

궁금한 점이 있다면 제 데스크탑은 데비안 안정판의 작은 Openbox였습니다. 배포 설치 프로세스를 잠시 건너 뛰고 필요한 패키지가 저장소에 있는지 확인해야합니다. 이렇게합시다 (제가 데비안을 사용하고 있음을 기억).

sudo aptitude 설치 ghc xmonad xmobar gmrun dmenu

그리고 준비. 우리는 외관 순서대로 설치했습니다. Haskell의 컴파일 및 해석을 담당하는 Glasgow Haskell 컴파일러; 창 관리자 인 XMonad, XMobar는 시스템 및 일부 프로그램 실행기, dmenu 및 gmrun에 대한 정보를 표시하는 막대입니다. XMonad가 Mod + P 및 Mod + Shift + P로 시작하도록 이미 구성되어 있습니다.

그리고 이것이 제 데스크탑의 모습입니다. 비교 점을 ​​갖고 더 미니멀 한 환경에서 이미 구성한 몇 가지를 에뮬레이트하기 위해이 값을 넣었습니다.

특별한 것은 없습니다

그러나 놀랍습니다. XMonad는 우리를 이렇게 환영합니다. 캡처에서 나는 이미 gmrun을 열었으므로 손상되지 않았 음을 알 수 있습니다.

멋진 것은 없습니다

그리고 우리는 이것이 이미 구성되어 있고 모든 것이 이렇게 보이기를 원합니다.

그래서 그래

스크린 샷은 터미널 용 MPD 클라이언트 인 ncmpcpp를 실행하는 터미널을 보여줍니다. 팔레트의 색상이있는 GVim 세션 솔라라이즈라이트. 이것을 얻는 것은 정말로 어렵지 않았고 Vim과 urxvt조차 이미 내 시스템에 준비되어 있습니다.

xmonad.hs, 얼마나 무서운가!

전혀. 보려는 구성은 매우 간단하고 기본적입니다. 0.9.1이 이미 사용 가능하더라도 XMonad 0.10이있는 모든 시스템에서 작동합니다. 글쎄, 두려워하고, 매우 두려워하십시오.

-Xmonad 구성-보시다시피 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 ", 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")]-구성 끝. 간단하고 쉽고 깨끗합니다.

여기서 무슨 일이 있었나요?

그들이 이미 공포에서 회복 되었다면 우리의 구성은 코드 30 줄에 거의 도달하지 않는다는 것을 알 수 있습니다. 부분별로 설명하겠습니다. 왜 이것을 복사하여 붙여 넣으면 XMonad가 방금 작성한 프로그램을 컴파일합니다. 준비된?

종속성 섹션

파일의 시작 부분에는 키워드로 시작하는 세 줄이 있습니다. import. 다른 프로그래밍 언어와 마찬가지로 원하는 모듈을 찾기 위해 컴파일러를 보내고 행운의 모듈의 기능을 제공합니다. 다시 보자 :

import XMonad import XMonad.Util.EZConfig import XMonad.Util.Run

우리 프로그램은 세 가지 종속성을 사용합니다. 첫 번째는 XMonad 기능을 제공하고 두 번째와 세 번째는 나중에 키보드 단축키를 정의하고 프로그램을 실행하는 데 도움이됩니다. 계속 가자.

변수

그게 일하다 그리고 그것은 무엇입니까? 코드를 더 자세히 살펴 보겠습니다.

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

일하다 모든 문자열 인 네 개의 요소 목록에 해당하는 변수입니다. Haskell 목록은 하나의 항목 유형 만 허용하기 때문입니다. 데스크탑 용으로 그 네 글자를 선택한 이유가 궁금 하신가요? XNUMX 개의 핵산 염기 DNA의.
이름은 약어 일 뿐이며 myWorkspaces, pepitoRojo 또는 소문자로 시작하고 다음 섹션에서 지정하는 한 무엇이든 넣을 수 있습니다.
변수에서 창의 색상을 정의 할 수 있기 때문에 여기에서 완전한 프로그래밍 언어를 사용할 수있는 좋은 점이 시작됩니다.

windowColor = "#FFFFFF"

또는 기분에 따라 색상을 반환하는 함수를 만들 수도 있습니다.

moodColor m | m == "Sad"= "# b0c4f6"-파란색과 같은 것 | m == "Angry"= "# ba3f3f"-빨간색과 같은 것 | m == "Happy"= "# 8bff7e"-녹색과 같은 것 | 그렇지 않으면 = "#FFFFFF"-흰색, 중립적 인 날

그리고 훨씬 더. 이미 손가락의 힘을 느끼십니까? 한 가지. 무슨 일이 일어 났는지 이해하지 못한다면 이것이 우리가 부르는 Haskell의 자체 구조라고 생각하십시오. 과 르다 기본적으로 if-then-else 트리와 비슷하지만 더 체계적이고 예쁘다. 걱정하지 마세요. 코드는 저에 의해 작성되었으며 정상적으로 작동합니다.

메인 섹션

말하는 라인에서 메인 = 할 XMonad의 동작을 지정하기 시작했습니다. 침착하게 보자.

처음부터 시작

이것은 여러 가지 방법으로 달성 할 수 있지만 종속성을 최소화하고 코드를 더 깔끔하게 만들기 위해 분명히 더 원시적이지만 저는 이것을 선택했습니다.

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

첫 번째 줄은 XMobar를 시작하며, 구성 파일은 나중에 보게됩니다.
그런 다음 우리는 내게 꼭 필요한 몇 가지 작업을 시작했습니다. 멋진 배경 화면 (첫 번째 스크린 샷과 동일), urxvt를 바람처럼 실행시키는 악마, mpd의 악마-처음부터 내 음악을 재생하고 절대 닫지 않습니다. -및 볼륨 컨트롤. 그래, 그게 다야. 필요한 것을 시작하려는 경우 구문은 동일합니다.

최종 조정

여기서 우리는 일반적으로 개인적인 취향에 불과한 몇 가지를 정의합니다. 예를 들어, Alt 대신 일반적으로 쓸모없는 Super 키 (실제로는 Windows 키)를 사용하고 싶지만 이것이 제가 선호하는 것입니다. Super로 돌아가려면 첫 번째 줄을 제거하십시오.

-... xmonad $ defaultConfig {modMask = mod4Mask, 터미널 = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3", focusBorderColor = "# 002b26", 작업 공간 = wrk}-...

그런 다음 터미널을 정의하고 urxvtc, 그것이 우리가 앞서 달렸던 악마의 클라이언트라고 부르는 것이기 때문입니다. 작업 공간 목록과 같은 다른 것들은 다음과 같이 넣을 수 있습니다.

, 작업 공간 = [ "H", "O", "L", "A"], 작업 공간 = [ "A", "R", "C", "H", "L", "I", "N ","U ","X "], 작업 공간 = ["1 : 웹 ","2 : 음악 ","3 : 사용하지 않은 공간 ","4 : Ufff "]

그리고 Haskell의 문자열 목록 처리를 통해 우리가 할 수있는 다른 것들이 있습니다.
테두리의 두께는 정수일 뿐이며 함수에 초점을 맞춘 창의 색상을 변경하려면 무드컬러 다음과 같이 변수를 남겨두기 때문에 방금 만든 것입니다.

--..., focusBorderColor = moodColor "Happy"-...

라인의 $ xmonad ... 이것은 단지 올바른 연관 함수의 응용입니다. 즉, 몇 개의 괄호를 저장합니다. 😀

키보드 단축키

파일의 끝에는 몇 가지 바로 가기가 포함 된 튜플 목록이 있습니다.이 경우 GVim을 시작하고 음악을 일시 중지하거나 재생하고 진행하거나 지연합니다. 그게 다야. additionalKeys 함수는 우리가 가져 오는 두 번째 모듈에 제공되며 뒤로 악센트는 div 1 2가 아닌 1/2과 같은 div (/) 함수 스타일로 실행되도록하여 읽기 쉽게 만듭니다. 그래서 그것은 :

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

.xmobarrc

Config {font = "-*-monospace-9-*-*-*-*-*-*-*-*-*-*", bgColor = "# fdf6e3", fgColor = "# 657b83", position = Top , lowerOnStart = False, 명령 = [Run Com "echo"[ "$ USER"] "username"864000, Run Com "hostname"[ "-s"] "hostname"864000, Run Com "mpc current"[ ""]) "mpd"10, 실행 날짜 "% a % b % d" "date"36000, 실행 날짜 "% H : % M" "time"10, Run StdinReader], sepChar = " '", alignSep = "} {" , template = " 'username'@ 'hostname'} { 'mpd'| 'date'- 'time'"

이것은 작동해야하며 실제로 작동합니다. 구문은 조금 더 복잡하며 이해하기 위해 직접 분석하는 것이 가장 좋습니다. 따라서 저는 XMobar에 표시 될 명령, 옵션 및 몇 가지 추가 설정을 설명하는 것으로 제한하겠습니다.
템플릿 라인에는 모든 작업이 포함되어 있으며 내가 듣고있는 노래를 표시하는 트릭을 생각해 냈습니다. 이 트릭과 키보드 단축키로 노래를 변경하려면 터미널에서 실행 가능한 mpd 클라이언트 인 mpc가 필요합니다.

결론

그게 다라고 생각합니다. 우리는 이미 메인 XMonad 파일을 검토했고 우리가 좋아하든 원하지 않든 하스켈을 배우기 시작했습니다. 계속하려면 시작하기에 아주 좋은 가이드가 있습니다.
다음 기사에서는 프로그래밍이 불가능한 관리자, 특히 Spectrwm / Scrotwm을 살펴 보겠습니다. 뵙겠습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   이바노프 네그로

    ! 환상적입니다!

    다음에 Spectrwm? !알겠습니다!

  2.   더샌드맨86

    아주 좋은 가이드, 매우 흥미로워 보입니다. Openbox에 더 익숙하더라도 살펴보고 싶습니다.

  3.   안티

    죄송합니다. 이러한 파일의 위치를 ​​지정하지 못했지만 게시물을 편집하면 오류 메시지가 나타납니다.
    치명적인 오류 : /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php의 정의되지 않은 함수 get_header () 호출
    누군가 편집 할 수 있으면 다음과 같이 이동합니다.

    기본 구성 파일 : ~ / .xmonad / xmonad.hs
    Xmobarrc 파일 : ~ / .xmobarrc
    콘솔 구성 파일 : ~ / .Xdefaults
    ????

    1.    안티

      내 게시물을 수정할 수없는 것 같습니다. 데스크탑에서도 옵션을 찾을 수 없습니다. 몇 가지 버그가 있습니다. 그게 전부입니다.

  4.   나노

    글쎄, 나는 그것이 프로그래밍에 관해서 더 생산적이기 때문에 매우 흥미로웠다. 정말 LUA를 배우고 싶기 때문에 Awesome을 엉망으로 만들고 싶습니다.

    Python Qtile로 프로그래밍하는 사람들을 위해 존재하지만 진실은 실행할 수 없다는 것입니다. Ubuntu를 사용하고 있으며 PPA를 통해 소스에서 설치했지만 불행한 것은 xD 작업을 원하지 않습니다.

    어쨌든, LUA는 내가 반드시 배워야 할 것이며 이런 종류의 타일로 당신의 얼굴을 보는 것보다 더 좋은 것은 없습니다.

    계속 힘내세요. 당신은 작가가 되기 위한 길을 가고 있습니다. DesdeLinux

    1.    나노

      그리고 네, 저는 대학에 다니고 있는데이 부분에서는 Linux xD가 없습니다.

      1.    안티

        나노 감사합니다. 하지만 기사가 게시 된 후 편집하는 데 도움을 줄 수 있습니까? 나는 할 수 없다.

        1.    나노

          예, 진정해, 내가 고치는 것보다 더 잘 맞으면 그대로 두세요

  5.   엑시키즈

    감사합니다. XMonad를 꼭 사용해 보겠습니다. 경비원, 응용 프로그램 연산자 및 분명히 목록 사용과 같은 많은 복잡성이 필요하지 않고 기본적인 Haskell 항목을 사용한다는 것을 알았습니다 (그렇지 않으면 Haskell xD가 아닙니다).

    어떻게 보이는지 보자! 🙂

  6.   페르난도

    나는 오랫동안 타일링 창 관리자를 사용하고 있습니다. 시간이있을 때 굉장한 설치부터 가벼운 프로그램 세트 구성 및 자체 테마 생성에 이르기까지 전체 프로세스를 설명 할 수있는 튜토리얼을 할 것입니다.

    괜찮으 시다면 여기에 게시 할 수 있도록 알려 드릴 수 있습니다.

    그건 그렇고, 당신의 허락하에, 나는 당신이 어떤 출판물에 관심이 있다면, 당신이 원한다면 살펴볼 수 있습니다.

    http://niferniware.sytes.net

    인사말!

    1.    MSX

      어썸 3라면 확실히 관심이 있습니다.

  7.   페르난도

    한 가지 세부 사항은 내가 블로그를 호스팅 한 웹 섹션입니다.
    http://niferniware.sytes.net/blog/

    실수에 대해 죄송합니다.

    응원!

    1.    엘라 브

      나는 당신의 블로그를 정말 좋아했습니다… ^^

      1.    페르난도

        엘라 브 감사합니다, 우리는 연락하고 있습니다!

        사실은 어떤 면에서는 DesdeLinux 그것은 나 자신의 블로그를 만들도록 유도했습니다. Linux를 사용하는 데 너무 많은 시간을 투자하면 보답으로 무언가 기여를 고려하게 됩니다 ^^

        인사말!

  8.   MSX

    "내 책상에이 네 글자를 선택한 이유가 궁금하다면 DNA의 네 가지 핵산 염기를 기억했습니다."
    달콤함, +1

    1.    안티

      글쎄, 나는 책상에 DNA를 두는 아이디어가 정말 마음에 듭니다.

  9.   할론 소프

    훌륭한 가이드, 그녀 덕분에 나는 xmonad를 시도하고 있으며 그것에 대해 한 가지만 말할 수 있습니다. 나는 xmonad와 사랑에 빠졌고 여전히 손을 대지 않았지만 여전히 훌륭해 보입니다. 감사합니다.

    1.    MSX

      훌륭합니다. 진행 상황이 게시물로 바뀌기를 바랍니다. =)

  10.   빅터 살 메론

    교사에 대한 약간의 관찰, 현재 Debian stable (Squeeze)을 사용하고 dmenu를 설치하려면 aptitude install dmenu가 아니라 suckless-tools 패키지, 그렇지 않으면 훌륭한 자습서로 완료됩니다.

    1.    안티

      같은 적성이 그것을 고쳐줍니다. 또한 순서는 이와 같이 더 잘 이해됩니다.

  11.   Tarantonio

    이 가이드는 x가 설치되어 있다고 가정합니다.
    제 경우에는 xorg를 설치해야하는 데비안 콘솔에서만 시작합니다. 우리가 찾고있는 것은 그래픽 환경이없는 데비안에서 시작하여 단순 모드에서 xmonad를 설치하고 mutt, irssi 등과 같은 도구와 콘솔 프로그램을 추가하는 미니멀 한 환경이기 때문에 괜찮을 것입니다.

    1.    안티

      예, X는 이미 켜져 있습니다. 게시물 자체는 내가 Openbox로 이미 만든 최소한의 데비안으로 시작했다고 설명합니다.