Shell-widget (Xt)
De Xt-widget die je nooit ziet maar die met de vensterbeheerder praat: elk toplevelvenster, elke dialoog en elk pop-upmenu in een Xt-programma woont in een shell.
Xt bouwt interfaces op als bomen van widgets, maar slechts één soort widget mag een venster bezitten dat een kind van de root is: de shell. Hij heeft precies één kind, neemt de wensen van dat kind over qua grootte en geometrie en vertaalt ze naar ICCCM-properties zoals WM_NORMAL_HINTS, WM_NAME en WM_CLASS, zodat de vensterbeheerder weet met wat voor venster hij te maken heeft. Alles wat een Xt-programma over de vensterbeheerder weet, weet het via de shell.
De klassen vormen een keten. OverrideShell zet override-redirect en bedient menu's die geen kader willen. WMShell voegt het gesprek met de vensterbeheerder toe, VendorShell is de haak waar een toolkit als Motif zijn eigen hints invoegt, TransientShell geeft dialogen die hun hoofdvenster volgen via WM_TRANSIENT_FOR, TopLevelShell is een gewoon venster met een pictogram, en ApplicationShell is het eerste venster, met de opdrachtregel en de resourcenaam. X11R6 voegde SessionShell toe voor sessiebeheer. Programmeurs komen ze zelden bij naam tegen: XtAppInitialize maakt de eerste aan, XtCreatePopupShell de overige.