馬賽克的暗面(III):XMonad

看來我已經做了很多祈禱,而且直到今天我還沒有做出任何設置。 正如我一直希望的那樣 一會兒 今天,我將撕毀我專門為此準備的xmonad.hs。 此配置文件和其他配置文件位於“粘貼”中,特別是 控制台的顏色, 窗口設置 y 頂欄.

您可以從那裡下載它們,然後在您喜歡的文本編輯器中將其打開。

如果您想知道,我的桌面是Debian穩定版上的小型Openbox。 暫時跳過發行版安裝過程,您應驗證存儲庫中是否包含必需的軟件包。 讓我們這樣做(記住我在使用Debian):

須藤aptitude安裝ghc xmonad xmobar gmrun dmenu

準備好了我們只是按照外觀順序安裝了; 負責編譯和解釋Haskell的格拉斯哥Haskell編譯器; XMobar的窗口管理器XMonad是一個欄,提供有關係統以及某些程序啟動器dmenu和gmrun的信息。 已經配置好了,以便XMonad用Mod + P和Mod + Shift + P啟動它們。

這就是我的桌面的樣子。 我這樣說是為了讓我們有一個比較點,並模擬一些我已經在更簡約的環境中配置的東西。

沒什麼特別的

但是令人驚訝。 XMonad這樣歡迎我們。 在捕獲中,我已經打開了gmrun,因此您可以看到它沒有損壞:

沒什麼壯觀的

我們希望它看起來像這樣,已經配置好了,並且一切正常:

嗯是的

屏幕截圖顯示了一個正在運行ncmpcpp的終端,該終端是該終端的MPD客戶端; 和GVim會話,都使用調色板的顏色 日光燈。 做到這一點並不困難,甚至Vim和urxvt都已經在我的系統上準備好了。

xmonad.hs,多麼可怕!

一點也不。 您將要看到的配置非常簡單和基本。 即使0.9.1已經可用,它也可以在所有使用XMonad 0.10的系統上運行。 好吧,害怕,非常害怕:

-Xmonad配置-如您所見,導入XMonad導入XMonad.Util.EZConfig非常簡單,導入XMonad.Util.Run wrk = [“ A”,“ C”,“ G”,“ T”] main =做xmproc <-spawnPipe“ xmobar”生成“氮氣--restore”生成“ urxvtd”生成“ mpd”生成“ xfce4-volumed” xmonad $ defaultConfig {modMask = mod4Mask,終端=“ urxvtc”,borderWidth = 2,normalBorderColor =“#fdf6e3 “,focusBorderColor =”#002b26“,工作區= wrk}`AdditionalKeys` [(((mod4Mask,xK_v),產生” gvim“),(((mod4Mask,xK_c),產生” mpc toggle“),(((mod4Mask,xK_a) ,生成“ mpc prev”),(((mod4Mask,xK_s),生成“ mpc next”))-配置結束。 簡單,方便和乾淨。

發生什麼事了

如果他們已經從恐懼中恢復過來,我們可以看到我們的配置幾乎沒有達到30行代碼。 我將分部分進行解釋,為什麼如果您複製並粘貼此內容,XMonad將編譯我們剛剛編寫的程序。 準備?

依賴項部分

在文件開頭附近,有三行以關鍵字開頭 進口。 與其他編程語言一樣,它發送編譯器以查找所需的模塊,並為其提供幸運模塊的功能。 讓我們再看一遍:

導入XMonad導入XMonad.Util.EZConfig導入XMonad.Util.Run

我們的程序使用三個依賴項。 第一個帶給我們XMonad自己的功能,第二個和第三個將幫助我們以後定義鍵盤快捷鍵和運行程序。 我們繼續吧。

變數

那東西是 周刊 它是做什麼用的? 讓我們仔細看一下代碼:

wrk = [“ A”,“ C”,“ G”,“ T”]

周刊 是一個變量,等效於四個元素的列表,所有字符串; 因為Haskell列表僅接受一種項目類型。 如果您想知道為什麼我為台式機選擇了這四個字母,我記得 四個核酸鹼基 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”生成物“ nitrogen --restore”生成物“ urxvtd”生成物“ mpd”生成物“ xfce4-volumed”

第一行啟動XMobar,我們稍後將看到其配置文件。
然後,我們為我開始了一些基本的事情,一個漂亮的牆紙(與第一個屏幕截圖中的牆紙相同),一個使urxvt像風一樣運轉的惡魔,一個mpd的惡魔-從一開始就播放我的音樂,而我從不關閉-和音量控制。 是的,就是這樣。 如果要啟動所需的內容,語法是相同的。

最終調整

在這裡,我們定義了一些通常只是個人喜好的東西。 例如,我喜歡使用通常無用的Super鍵(實際上是Windows鍵)代替Alt,但這是我的偏愛。 如果要返回超級,請刪除第一行。

-... xmonad $ defaultConfig {modMask = mod4Mask,終端=“ urxvtc”,borderWidth = 2,normalBorderColor =“#fdf6e3”,focusedBorderColor =“#002b26”,工作空間= wrk}-...

然後定義終端 上圖,因為這就是我們之前運行的惡魔的客戶。 我們可以添加的其他內容(例如工作區列表)如下:

,工作空間= [“ H”,“ O”,“ L”,“ A”],工作空間= [“ A”,“ R”,“ C”,“ H”,“ L”,“ I”,“ N “,” U“,” X“],工作區= [” 1:網絡“,” 2:音樂“,” 3:未使用空間“,” 4:Ufff“]

Haskell的字符串列表處理允許我們執行其他操作。
邊框的厚度只是一個整數,如果我們想更改該功能聚焦的窗口的顏色 心情顏色 我們剛剛創建的變量,因為我們將變量保留為:

--...,focusedBorderColor = moodColor“快樂”-...

線上的$ xmonad ... 它只是一個正確的關聯函數的應用,也就是說,我們保留了一些括號。 😀

鍵盤快捷鍵

在文件末尾,我們有一個元組列表,其中包含一些快捷方式,在這種情況下,它們啟動GVim,暫停或播放音樂,以及前進或延遲它。 而已。 我們在導入的第二個模塊中添加了extraKeys函數,並且通過重音符使其以div(/)函數的樣式(如1/2而不是div 1 2)執行,從而更易於閱讀。 就是這樣:

…... ,(((mod4Mask,xK_s),產生“ mpc next”))]

.xmobarrc

Config {font =“-*-monospace-9-*-*-*-*-*-*-*-*-*-*”,bgColor =“#fdf6e3”,fgColor =“#657b83”,位置=頂部,lowerOnStart = False,命令= [運行Com“ echo” [“ $ USER”]“用戶名” 864000,運行Com“主機名” [“ -s”]“主機名” 864000,運行Com“ mpc當前” [“”] “ mpd” 10,運行日期“%a%b%d”“日期” 36000,運行日期“%H:%M”“時間” 10,運行StdinReader],sepChar =“'”,alignSep =“} {” ,template =“'用戶名'@'主機名'} {'mpd'|'日期'-'時間'”

這應該起作用,並且實際上起作用。 語法稍微複雜一些,最好自己分析一下以理解它。 因此,我只想告訴您,我們正在描述命令,它們的選項和一些其他設置,這些將顯示在XMobar中。
模板行具有所有作用,我想出了一個技巧來顯示我正在聽的歌曲。 此技巧和通過鍵盤快捷鍵更改歌曲的技巧需要使用mpc(可從終端執行的mpd客戶端)。

結論

我想就是這樣。 我們已經檢查了主要的XMonad文件,並開始學習Haskell,無論我們是否喜歡它。 如果要繼續,則有一個很好的入門指南。
在下一部分中,我們將探討非可編程管理器,特別是Spectrwm / Scrotwm。 再見。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  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.   納米 他說:

    好吧,我覺得它非常有趣,因為它在編程方面更俱生產力。 我想弄糟Awesome,因為我真的想學習LUA。

    它對我們中使用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.    費爾南多 他說:

        非常感謝Elav,我們正在與您聯繫!

        事實是,在某種程度上 DesdeLinux 它促使我創建自己的部落格。這麼多時間使用 Linux 讓人考慮做出一些回報 ^^

        您好!

  8.   MSX 他說:

    “如果您想知道為什麼我要在辦公桌上選擇這四個字母,我會記得DNA的四個核酸鹼基。”
    甜蜜,+ 1

    1.    他說:

      好吧,我真的很喜歡把DNA放在桌子上的想法。

  9.   哈龍索夫 他說:

    優秀的嚮導,多虧了她,我只是在嘗試xmonad,我只能說一件事,我愛上了xmonad,我仍然不把手放在上面,但它看起來仍然很棒,非常感謝

    1.    MSX 他說:

      太好了,我們希望看到您的進度變成帖子! =)

  10.   維克多·薩默隆 他說:

    對導師的一個小觀察,目前我使用Debian穩定版(Squeeze),並安裝dmenu,這不是通過aptitude install dmenu完成的,而是使用suckless-tools軟件包完成的,否則,是很棒的教程

    1.    他說:

      同樣的能力也可以解決。 另外,這樣可以更好地理解順序。

  11.   塔蘭托尼奧 他說:

    本指南假定您已安裝x。
    就我而言,我僅從Debian控制台開始,必須使用該控制台安裝xorg。 很好,因為我們正在尋找一個極簡主義的環境,從沒有圖形環境的debian開始,以簡單模式安裝xmonad並添加工具和控制台程序,例如mutt,irssi等。

    1.    他說:

      是的,X已經打開。 帖子本身解釋說,我從使用Openbox製作的最小Debian開始。