Az X ablakkezelő (angolul X window manager) olyan szoftver, ami az ablakok megjelenítését vezérli az X Window System alatt. A kijelző szerver vezérli az ablakok elhelyezését. Többnyire a Unix-szerű rendszereken használják.
A Apple Macintosh és Microsoft Windows rendszerek kivételével, melyek a kezdetektől fogva saját megoldásokat használtak az ablakok és panelek megjelenítésére, valamint a felhasználóval való együttműködésre, az X Window System ablakkezelő rendszerei alapértelmezetten egy szeparált réteget képeznek a grafikus felhasználói felület megvalósítására. A felhasználó egy egész sor (különböző forrásból származó) ablakkezelő közül választhat melyek ugyanazt a cél különböző utakon érik el:
több munkaasztal és virtuális munkaasztal (a monitor fizikai méreteinél nagyobb munkaasztal), és lapozók a munkaasztalok közötti váltásra
a memória és rendszererőforrások kezelése
az integráció egy magasabb foka a grafikus felhasználói felületek révén, beépített alkalmazásokkal és segédprogramokkal egy összetettebb kezelőfelületet megvalósítása az operációs rendszerhez.
A Microsoft Windowshoz is felbukkantak alternatív shell-ek. Például a LiteStep képes volt lecserélni a felhasználói felületet egy Afterstep stílusú felületre Windows 95, 98 és NT alatt. Az OS/2-ben a Presentation Manager volt az alapértelmezett shell, de le lehetett váltani külső forrásból származó másik alkalmazásra.
Hogy működnek az ablakkezelők X alatt
Amikor fut egy ablakkezelő, akkor az X kijelző szerver és a kliensek közötti üzenetek egy részét az ablakkezelő közvetíti. Például ha egy új ablak megjelenítésére ad parancsot a rendszer akkor ez továbbítódik az ablakkezelőhöz, ami megadja a megjelenítendő ablak pozícióját. A modernebb ablakkezelők emellett megjelenítenek az ablakhoz egy az adott megjelenítési stílusnak megfelelő fejlécet és keretet. Ezeket az elemeket az ablakkezelő vezérli és nem maga a program. Ha a felhasználó az ablakot az egérrel odébb akarja húzni, vagy csak rákattint akkor is az ablakkezelő vezényli le az eseményeket.
Az ablakkezelők felelnek az ikonokért is, mert azok nem léteznek az X protokoll szintjén. Amennyiben a felhasználó minimalizál egy ablakot, akkor az ablakkezelő rejti el és jeleníti meg a neki megfelelő ikont a munkaasztalon. Néhány ablakkezelő nem kezeli az ikonokat, ilyenkor a minimalizált alkalmazások újbóli megjelenítésére egy másik alkalmazásra van szükség.
Míg az ablakkezelők fő feladata nevükből következően is az ablakok és a hozzájuk kapcsolódó események kezelése, addig néhányuk további funkciókkal is rendelkezik, mint például egér-kattintások kezelése a munkaasztalon, panelek és egyéb vizuális elemek megjelenítése, billentyűkombinációk kezelése (például Alt+F4-re becsukja az aktív ablakot), szoftverek automatikus indítása stb.
Speciális tulajdonságokkal rendelkező X ablakkezelők
Az ablakkezelőknek több rendhagyó fajtája is kialakult.
Virtuális munkaasztalokkal rendelkező X ablakkezelők
A virtuális munkaasztalokkal rendelkező ablakkezelők olyan ablakkezelők, amik virtuális munkaasztalokat használnak melyek felbontása nagyobbra állítható egy monitor megjelenítési képességétől. Ez akkor lehet hasznos, ha nagy mennyiségű ablakkal dolgozunk párhuzamosan, relatíve kicsi monitoron. Több ilyen ablakkezelő is ismert: FVWM, Tvtwm, HaZe stb…
Mozaik elrendezésű X ablakkezelő
Egy mozaik elrendezésű ablakkezelő olyan ablakkezelő, mely az ablakokat úgy helyezi el, hogy azok kölcsönösen ne fedjék át egymást (innen a mozaik elnevezés). Az objektumok (ablakok) rég megszokott koordináta alapú ábrázolásának a tagadásaként jött létre, egy új paradigmát teremtve.
Ennek a fajta ablakkezelő modellnek az első feltűnése a larswm volt, amit később követett az Ion, majd a többi hasonló.