Ikkunanhallintaohjelma (myös ikkunointiohjelma, ikkunamanageri, jne.) hallitsee ikkunoiden paikkaa graafisessa käyttöliittymässä. Tyypillisesti ikkunanhallintaohjelma piirtää ikkunoille reunat ja otsikkopalkin sekä huolehtii siitä, että käyttäjä pystyy liikuttamaan ja muuttamaan ikkunoiden kokoa näytöllä. Myös erilaiset tehosteet, kuten läpinäkyvät ikkunat, voivat olla ikkunanhallintaohjelman toteuttamia. Työpöydällä olevat kuvakkeet eivät yleensä sisälly ikkunanhallintaohjelmaan, vaan ovat osa laajempaa työpöytäympäristöä.
Useissa järjestelmissä, kuten Microsoft Windowsin ja Apple OS X:n käyttämissä ikkunointijärjestelmissä, ikkunanhallinta on integroitu ikkunointijärjestelmään, eikä sitä yleensä saa vaihdettua.
Unix- ja Linux-ympäristöissä käytetyssä X Window Systemissä ikkunanhallintaohjelma on ikkunoinnista erotettu ohjelma, ja tämän vuoksi helposti vaihdettavissa. Yhtenäisen työpöytäympäristön puuttuessa ikkunanhallintaohjelmiin on kuitenkin lisätty ikkunanhallintaan varsinaisesti kuulumattomia ominaisuuksia. Näitä ovat esimerkiksi mahdollisuus käynnistää muita ohjelmia. Nykyään näiden ominaisuuksien rooli on silti pienentynyt, sillä suuri osa käynnistysvalikoista ja apuohjelmista on sulautettu osaksi laajempia työpöytäympäristöjä.
X Window Systemin kanssa kilpaileva ratkaisu oli muun muassa Sun Microsystemsin NeWS, joka oli suljettua lähdekoodia ja hävisi muiden yhtiöiden perustettua X Window Consortiumin.[1][2][3]
Yleisin tapa toteuttaa ikkunanhallintaohjelma X:ssä on ns. re-parenting window manager, joka kaappaa asiakassovelluksen huipputason ikkunan (top-level window) ja siirtää sen oman ikkunansa sisälle, johon se piirtää kehykset.