Xmonad, x (yani xorg) icin doşemeli bir pencere yoneticisidir. Pencereler, acık ya da boşluk olmadan veya pencereler ust uste gelerek ortuşmeksizin, ekran kullanımını maksimizeleştirerek ekranı kaplamak amacıyla otomatik olarak duzenlenir. Pencere yoneticisi ozelliklerine klavyeden erişilebilir, mouse ise isteğe bağlıdır.

Xmonad; haskell dilinde yazılmış, yapılandırılmış ve genişletilmiştir. Ozel arayuz algoritmaları, tuş bağlamaları ve diğer uzantılar yapılandırma dosyaları icine kullanıcı tarafından yazılabilir.

Arayuzler dinamik olarak uygulanır ve her calışma alanında farklı arayuzler kullanılabilir. Xinerama, bircok fiziksel ekranda doşenecek pencerelere izin vererek tamamen desteklenir.

Not: xinerama, tek geniş sanal ekran olarak iki veya daha fazla fiziksel ekranı kullanmak amacıyla x uygulamaları ve pencere yoneticilerini etkinleştiren x pencere sistemi icin bir uzantıdır.

KURULUM
Cok temel bir yapılandırma sağlayan "xmonad" paketini ve en onemlisi ek doşeme algoritmaları, yapılandırmalar, betikler vb gibi daha yararlı bir masaustu yapılandırması icin "xmonad-contrib" paketini de birlikte kurun.

Alternatif olarak, birkac ek bağımlılıklarla geliştirme paketi "xmonad-git" paketini ve aynı şekilde "xmonad-contrib-git" paketini kurun.

NOT: Xmonad paketini guncelleyerek yukselttikten sonra, "xmonad --recompile" komutunu calıştırmayı unutmayın, yoksa daha sonra onu başlattığınızda paylaşılan kitaplıkları bulma sorunları olabilir. Bu sureci otomatikleştirmek icin şu adrese bakın: xmonad - ArchWiki

BAŞLATMA
Xmonad'ı xinit ile calıştırın. Alternatif olarak oturum menusunden secilen bir ekran yoneticisi olarak xmonad'ı secin.
____________________________________________
NOT: Xinit programı bir kullanıcının manuel olarak bir xorg goruntuleme sunucusunu başlatmasına olanak sağlar. Startx betiği, xinit icin on-uc yani başlangıc betiğidir.

Xinit tipik olarak pencere yoneticilerini ve masaustu ortamlarını başlatmak icin kullanılır. Bunun icin xorg-xinit paketinin kurulu olması gerekir. Bu ortamları " ~/.xinitrc " dosyasıyla calıştırır. Eğer bu dosyayı oluşturmazsanız, xinit varsayılan olarak /etc/X11/xinit/xinitrc dosyasını calıştıracaktır. Yani bu dosyayı home klasorunuze şu şekilde kopyalayın:

$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

Ardından duzenleyerek "exec xmonad" komutunu girip kaydedin.
------------------------------------------------------------------------------

Xterm paketinin kurulu olduğundan veya yapılandırmada terminal emilatorunuzu değiştirdiğinizden emin olun. Yoksa, xmonad'da hicbir şey yapamayacaksınız.


NOT: Xmonad varsayılan olarak bir X cursor ayarlamaz bu nedenle genelde cross cursor'ı goruntulenir. Beklenen sol işaretciyi kurmak icin, cursor temalarına buradan bakın: https://wiki.archlinux.org/titleCurs...default_cursor


YAPILANDIRMA
" ~/.xmonad " klasorunu ve bu klasorun icine " ~/.xmonad/xmonad.hs " dosyasını oluşturun ve ardından aşağıda acıklandığı gibi duzenleyin.

" ~/.xmonad/xmonad.hs " dosyasındaki değişiklikler yapıldıktan sonra, yeniden derlemek ve onları etkinleştirmek icin "Mod-q" kısayolunu kullanın.

İPUCU: Xmonad'ın varsayılan yapılandırması oldukca kullanışlıdır ve bu yapılandırma sadece bir xmonad.hs dosyası olmaksızın basitce calıştırılarak elde edilir.

Xmonad yapılandırma dosyası Haskell dilinde yazıldığı icin, programcı olmayanlar zor bir kurma sureci yaşayabilirler. Nasıl yapılacağına dair detaylı ve ornek yapılandırmalar icin size aşağıdaki kaynakları oneririz:

* Xmonad - HaskellWiki

* Xmonad/Config archive - HaskellWiki

* Xmonad/Frequently asked questions - HaskellWiki

* Arch Linux forum akışı: xmonad Hacking Thread / Applications & Desktop Environments / Arch Linux Forums

En iyi yaklaşım değişiklikleriniz ve yapılandırmalarınızı sadece " ~/.xmonad/xmonad.hs " dosyasının icine koymaktır ve
yerleşik DEF fonksiyonundan alınan herhangi bir henuz kurulmamış olan bu tur parametreleri buraya yazmaktır.

Bu, aşağıdaki gibi bir " xmonad.hs " dosyası yazarak gercekleştirilir:

import XMonad

main = xmonad def


Bu kodlar basitce; tum diğer ayarları varsayılan yapılandırma ayarlarında bırakırken, varsayılan terminal ve kenarlık genişliğini ise girilen değerlere değiştirir (yani XConfig def değerinden miras alınanlara).

İşler daha karmaşık hale geldikce, main fonksiyonu icindeki fonksiyon adıyla yapılandırma seceneklerini araması ve bunları " ~/.xmonad/xmonad.hs " dosyanızın kendi bolumlerinde ayrı bir şekilde belirtmek yararlı olabilir. Bu buyuk ozelleştirmeler sağlar ve hooks fonksiyonu altındaki değerlerinizin yonetilmesini ve sonraki planlarınıza gore bakımını da kolaylaştırır.

Buna gore yukarıdaki basit " xmonad.hs " dosyası şoyle de yazılabilirdi:

import XMonad

main = do
xmonad $ def

myTerminal = "urxvt"
myModMask = mod4Mask -- Win key or Super_L
myBorderWidth = 3

Ayrıca ice aktarmalar once geldiği surece; en ust seviyedeki sıra (yani main, myTerminal, myModMask ve benzerleri) veya kıvırcık parantez " " icerisindeki değerler haskelde onemli değildir.