Sisi gelap mosaik (III): XMonad

Sepertinya saya sudah banyak berdoa dan sampai saat ini saya tidak memasang pengaturan milimeter. Seperti yang telah saya janjikan sementara waktu hari ini saya akan merobek xmonad.hs saya yang telah saya persiapkan khusus untuk kesempatan kali ini. Ini dan file konfigurasi lainnya ada di Tempel, khususnya warna konsol, pengaturan jendela y bilah atas.

Anda dapat mengunduhnya dari sana dan membukanya di editor teks favorit Anda.

Sebelum

Jika Anda bertanya-tanya, desktop saya adalah Openbox kecil di Debian stable. Melewati proses instalasi distribusi untuk saat ini, Anda harus memverifikasi bahwa paket yang diperlukan ada di repositori. Ayo lakukan ini (mengingat saya di Debian):

sudo aptitude instal ghc xmonad xmobar gmrun dmenu

Dan siap. Kami baru saja menginstal, dalam urutan tampilan; Glasgow Haskell Compiler yang bertugas menyusun dan menafsirkan Haskell; XMonad, pengelola jendela, XMobar adalah bilah yang menyajikan informasi tentang sistem dan beberapa peluncur program, dmenu dan gmrun; yang telah dikonfigurasi dengan baik sehingga XMonad meluncurkannya dengan Mod + P dan Mod + Shift + P.

Dan seperti inilah tampilan desktop saya. Saya menjelaskannya agar kami memiliki titik perbandingan dan meniru beberapa hal yang telah saya konfigurasikan di lingkungan yang lebih minimalis.

Tidak ada yang spesial

Tapi kejutan. XMonad menyambut kami seperti ini. Dalam pengambilan, saya telah membuka gmrun, sehingga Anda dapat melihat bahwa itu tidak rusak:

Tidak ada yang spektakuler

Dan kami ingin terlihat seperti ini, sudah dikonfigurasi dan semuanya:

Jadi ya

Tangkapan layar menunjukkan terminal yang menjalankan ncmpcpp, klien MPD untuk terminal; dan sesi GVim, keduanya dengan warna palet Cahaya Solarisasi. Mendapatkan ini tidak terlalu sulit dan bahkan Vim dan urxvt sudah siap di sistem saya.

Xmonad.hs, betapa menakutkan!

Tidak semuanya. Konfigurasi yang akan Anda lihat sangat sederhana dan mendasar. Ini harus bekerja pada semua sistem dengan XMonad 0.9.1, meskipun 0.10 sudah tersedia. Jadi takut, sangat takut:

- Konfigurasi Xmonad - Seperti yang Anda lihat, ini cukup sederhana, impor 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) , menelurkan "mpc prev"), ((mod4Mask, xK_s), menelurkan "mpc next")] - Akhir konfigurasi. Sederhana, mudah, dan bersih.

Apa yang terjadi disini?

Jika mereka sudah pulih dari ketakutan, kita dapat melihat bahwa konfigurasi kita hampir mencapai 30 baris kode. Saya akan menjelaskan bagian demi bagian, mengapa jika Anda menyalin dan menempel ini, XMonad akan mengkompilasi program yang baru saja kita tulis. Siap?

Bagian dependensi

Di dekat awal file ada tiga baris yang diawali dengan kata kunci mengimpor. Seperti dalam bahasa pemrograman lain, ia mengirimkan kompiler untuk menemukan modul yang diinginkannya dan memberikan fungsi modul keberuntungan tersebut. Mari kita lihat lagi:

impor XMonad impor XMonad.Util.EZConfig impor XMonad.Util.Run

Program kami menggunakan tiga dependensi. Yang pertama memberi kita fungsi XMonad sendiri, yang kedua dan ketiga akan membantu kita nanti untuk menentukan pintasan keyboard dan menjalankan program. Ayo lanjutkan.

Variabel

Hal itu kerja dan untuk apa ini? Mari kita lihat lebih dekat kodenya:

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

kerja adalah variabel, yang setara dengan daftar empat elemen, semua string; karena daftar Haskell hanya menerima satu jenis item. Jika Anda bertanya-tanya mengapa saya memilih empat huruf itu untuk desktop saya, saya ingat empat basa nukleat DNA.
Namanya hanyalah singkatan, dan kita bisa menaruhnya di myWorkspaces, pepitoRojo atau apa pun, asalkan dimulai dengan huruf kecil dan kita tentukan di bagian selanjutnya.
Di sini mulailah hal yang baik tentang memiliki bahasa pemrograman lengkap yang kami inginkan, karena kami dapat menentukan warna jendela dari variabel:

windowColor = "#FFFFFF"

Atau bahkan buat fungsi yang mengembalikan warna sesuai dengan suasana hati kita:

moodColor m | m == "Sad" = "# b0c4f6" - Sesuatu seperti biru | m == "Angry" = "# ba3f3f" - Sesuatu seperti merah | m == "Happy" = "# 8bff7e" - Sesuatu yang seperti hijau | jika tidak = "#FFFFFF" - Putih, untuk hari-hari netral

Dan banyak lagi. Apakah Anda sudah merasakan kekuatan di jari Anda? Satu hal. Jika Anda tidak memahami apa yang terjadi, anggaplah ini adalah struktur Haskell sendiri yang kami sebut guarda dan pada dasarnya seperti pohon jika-maka-lain, tetapi lebih teratur dan cantik. Dan jangan khawatir, kode itu ditulis oleh saya dan berfungsi dengan baik.

Bagian utama

Dari baris yang mengatakan main = lakukan kami mulai menentukan perilaku XMonad. Mari kita lihat dengan tenang.

Memulai sesuatu di awal

Ini dapat dicapai dengan banyak cara, tetapi untuk tetap kekurangan ketergantungan dan membuat kode lebih bersih, meskipun jelas lebih manusia gua, saya memilih ini:

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

Baris pertama memulai XMobar, yang file konfigurasinya akan kita lihat nanti.
Kemudian kami memulai beberapa hal penting bagi saya, wallpaper yang bagus (sama dengan yang ada di screenshot pertama), setan yang membuat urxvt berjalan seperti angin, setan mpd -yang memainkan musik saya dari awal dan saya tidak pernah menutup - dan kontrol volume. Ya, itu dia. Sintaksnya sama jika Anda ingin memulai apa yang Anda butuhkan.

Penyesuaian terakhir

Di sini kami mendefinisikan beberapa hal yang biasanya hanya preferensi pribadi. Misalnya, saya suka menggunakan tombol Super yang biasanya tidak berguna (secara efektif windows satu) daripada Alt, tapi itu preferensi saya. Jika Anda ingin kembali ke Super, hapus baris pertama.

- ... xmonad $ defaultConfig {modMask = mod4Mask, terminal = "urxvtc", borderWidth = 2, normalBorderColor = "# fdf6e3", fokusBorderColor = "# 002b26", ruang kerja = wrk} - ...

Kemudian kami menentukan terminal kami, urxvtc, karena itulah yang kami sebut klien iblis yang kami jalankan sebelumnya. Hal-hal lain, seperti daftar ruang kerja, yang dapat kami masukkan ke dalam hal-hal seperti:

, ruang kerja = ["H", "O", "L", "A"], ruang kerja = ["A", "R", "C", "H", "L", "I", "N "," U "," X "], workspaces = [" 1: web "," 2: music "," 3: unused space "," 4: Ufff "]

Dan hal-hal lain yang dimungkinkan oleh pemrosesan daftar string Haskell.
Ketebalan batas hanya berupa bilangan bulat dan jika kita ingin mengubah warna jendela difokuskan oleh fungsinya suasana hatiWarna yang baru saja kita buat, karena kita membiarkan variabel seperti ini:

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

$ Yang dipertaruhkan xmonad ... ini hanyalah penerapan fungsi asosiatif yang benar, yaitu, kami menyimpan beberapa tanda kurung. 😀

Pintasan keyboard

Di akhir file kami memiliki daftar tupel yang berisi beberapa pintasan, dalam hal ini, mereka meluncurkan GVim, menjeda atau memutar musik, dan memajukan atau menundanya. Itu dia. Fungsi additionalKeys hadir di modul kedua yang kita impor dan aksen belakang membuatnya dieksekusi dengan gaya fungsi div (/) seperti 1/2 dan bukan div 1 2, sehingga lebih mudah dibaca. Begitulah:

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

.Xmobarrc

Konfigurasi {font = "- * - monospace-9 - * - * - * - * - * - * - * - * - * - *", bgColor = "# fdf6e3", fgColor = "# 657b83", posisi = Atas , lowerOnStart = Salah, commands = [Jalankan Com "echo" ["$ USER"] "nama pengguna" 864000, Jalankan Com "nama host" ["-s"] "nama host" 864000, Jalankan Com "mpc saat ini" [""] "mpd" 10, Tanggal Jalankan "% a% b% d" "tanggal" 36000, Tanggal Jalankan "% H:% M" "time" 10, Jalankan StdinReader], sepChar = "'", alignSep = "} {" , template = "'username' @ 'hostname'} {'mpd' | 'date' - 'time'"

Ini seharusnya berhasil, dan memang benar. Sintaksnya sedikit lebih kompleks dan yang terbaik adalah menganalisisnya sendiri untuk memahaminya. Jadi saya hanya akan membatasi diri untuk memberi tahu Anda bahwa kami menjelaskan perintah, opsi mereka dan beberapa pengaturan tambahan, yang akan ditampilkan di XMobar.
Garis template memiliki semua tindakan dan saya menemukan trik untuk menunjukkan lagu yang saya dengarkan. Trik ini dan yang mengubah lagu untuk pintasan keyboard memerlukan mpc, klien mpd yang dapat dieksekusi dari terminal.

Kesimpulan

Itu dia, saya pikir. Kami sudah meninjau file XMonad utama dan mulai mempelajari Haskell apakah kami suka atau tidak. Jika Anda ingin melanjutkan, ada panduan yang sangat bagus untuk memulai.
Dalam angsuran berikutnya kita akan mengeksplorasi manajer yang tidak dapat diprogram, khususnya Spectrwm / Scrotwm. Sampai jumpa.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   ivanovblack dijo

    !Fantastis!

    Spectrwm lain kali? !Ya pak!

  2.   TheSandman 86 dijo

    Panduan yang sangat bagus, terlihat sangat menarik, saya ingin melihatnya, meskipun saya lebih dari nyaman dengan Openbox saya.

  3.   anti dijo

    Ups, saya melewatkan menentukan ke mana file-file ini pergi, tetapi ketika saya mengedit posting, itu mengirimi saya pesan kesalahan:
    Kesalahan fatal: Panggilan ke fungsi yang tidak ditentukan get_header () di /home/desdelin/public_html/blog/wp-content/themes/dlinux/index.php online
    Jika seseorang dapat mengeditnya, mereka akan melakukannya seperti ini:

    File konfigurasi utama: ~ / .xmonad / xmonad.hs
    File xmobarrc: ~ / .xmobarrc
    File konfigurasi konsol: ~ / .Xdefaults
    ????

    1.    anti dijo

      Sepertinya saya tidak dapat mengedit postingan saya sendiri. Saya juga tidak dapat menemukan opsi di mana pun di desktop. Saya punya beberapa bug, itu saja, perbaikan minimal.

  4.   Nano dijo

    Menurut saya ini sangat menarik karena lebih produktif dalam hal pemrograman. Saya ingin main-main dengan Awesome karena saya sangat ingin belajar LUA.

    Itu ada untuk kita yang memprogram dengan Python Qtile, tetapi kenyataannya adalah saya tidak dapat menjalankannya, saya menggunakan Ubuntu dan saya menginstalnya melalui PPA dan juga dari sumber tetapi hal yang disayangkan tidak mau berfungsi xD

    Bagaimanapun, LUA adalah sesuatu yang HARUS saya pelajari dan tidak ada yang lebih baik daripada melihat wajah satu sama lain dengan ubin jenis ini.

    Tetap anti, Anda sedang dalam perjalanan untuk menjadi Penulis di dalamnya DesdeLinux

    1.    Nano dijo

      Dan ya, saya masih kuliah dan dalam hal ini mereka tidak memiliki Linux xD

      1.    anti dijo

        Terima kasih nano. Tapi, bisakah Anda membantu saya mengedit artikel setelah diterbitkan? Saya tidak bisa.

        1.    nano dijo

          Ya, tenang, biarkan karena lebih pas daripada saya memperbaikinya

  5.   xykyz dijo

    Terima kasih anti, saya pasti akan mencoba XMonad. Saya melihat bahwa ia menggunakan hal-hal dasar Haskell tanpa perlu banyak kerumitan seperti penjaga, operator aplikasi, dan jelas penggunaan daftar (jika tidak, tidak akan menjadi Haskell xD).

    Mari kita lihat tampilannya! 🙂

  6.   Fernando dijo

    Saya telah menggunakan pengelola jendela ubin untuk waktu yang lama, Luar biasa. Ketika saya punya waktu, saya akan melakukan tutorial di mana saya berharap dapat menjelaskan keseluruhan proses, dari menginstal mengagumkan hingga mengkonfigurasi satu set program ringan dan membuat tema kita sendiri.

    Jika Anda tidak keberatan, saat saya memilikinya, saya dapat memberi tahu Anda sehingga Anda dapat menerbitkannya di sini.

    Ngomong-ngomong dan dengan izin Anda, saya melakukan sedikit iklan di situs web kecil saya, jika Anda mau, Anda dapat melihatnya, jika Anda tertarik dengan publikasi apa pun:

    http://niferniware.sytes.net

    Salam!

    1.    MSX dijo

      Jika itu Luar Biasa 3, saya pasti tertarik padanya.

  7.   Fernando dijo

    Satu detailnya, bagian web tempat blog dihosting adalah:
    http://niferniware.sytes.net/blog/

    Saya minta maaf atas kesalahannya.

    Sorakan!

    1.    hidup dijo

      Saya sangat menyukai blog Anda… ^^

      1.    Fernando dijo

        Terima kasih banyak Elav, kami berhubungan!

        Kenyataannya adalah demikian DesdeLinux Hal ini mendorong saya untuk membuat blog sendiri. Begitu banyak waktu menggunakan Linux membuat seseorang mempertimbangkan untuk memberikan kontribusi sebagai balasannya ^^

        Salam!

  8.   MSX dijo

    "Jika Anda bertanya-tanya mengapa saya memilih empat huruf itu untuk meja saya, saya ingat empat basa nukleat DNA."
    Manis, +1

    1.    anti dijo

      Saya sangat suka ide meletakkan DNA di meja saya.

  9.   halonov dijo

    Panduan yang luar biasa, terima kasih padanya saya hanya mencoba xmonad, dan saya hanya bisa mengatakan satu hal tentang itu, saya jatuh cinta dengan xmonad, saya masih tidak meletakkan tangan saya di atasnya dan masih tampak luar biasa, terima kasih banyak

    1.    MSX dijo

      Luar biasa, kami berharap melihat kemajuan Anda berubah menjadi sebuah pos! =)

  10.   Victor Salmeron dijo

    Pengamatan kecil kepada tutor, saat ini saya menggunakan Debian stable (Squeeze), dan untuk menginstal dmenu, tidak dilakukan dengan aptitude install dmenu, tetapi dengan paket suckless-tools, sebaliknya, tutorial yang sangat baik

    1.    anti dijo

      Bakat yang sama memperbaikinya. Selain itu, urutannya lebih dipahami seperti ini.

  11.   tarantonium dijo

    Panduan ini mengasumsikan Anda telah menginstal x.
    Dalam kasus saya, saya mulai dari konsol debian saja, yang dengannya saya harus menginstal xorg. Tidak masalah, karena yang kita cari adalah lingkungan minimalis, dimulai dengan debian tanpa lingkungan grafis, menginstal xmonad dalam mode sederhana dan menambahkan alat dan program konsol, seperti mutt, irssi, dll.

    1.    anti dijo

      Ya, X sudah ada. Postingan itu sendiri menjelaskan bahwa saya memulai dengan Debian minimal yang sudah dibuat dengan Openbox.