DLD addLibrary: 'libxcb'; addLibrary: './xcb-gst'; addLibrary: 'libc'. Object subclass: System [ System class >> pause [ ] ] CStruct subclass: XcbScreen [ ] CStruct subclass: XcbScreenIterator [ ] Object subclass: Xcb [ Xcb class >> connect: aString screen: anInteger [ ] Xcb class >> getSetup: aConnection [ ] Xcb class >> setupRootsIterator: aSetup [ ] Xcb class >> generateId: aConnection [ ] Xcb class >> createWindow: aConnection depth: aDepth windowId: wID parent: parentID x: posX y: poxY width: aWidth height: aHeight borderWidth: bWidth class: aClass visual: aVisual valueMask: aMask valueList: aList [ ] Xcb class >> mapWindow: aConnection window: id [ ] Xcb class >> flush: aConnection [ ] Xcb class >> disconnect: aConnection [ ] ] | connection setup screen windowid iter | iter := XcbScreenIterator new. connection := Xcb connect: nil screen: nil. setup := Xcb getSetup: connection. iter := Xcb setupRootsIterator: setup. screen := iter data. windowid := Xcb generateId: connection. Xcb createWindow: connection depth: 0 windowId: windowid parent: (screen rootWin value) x: 0 y: 0 width: 150 height: 150 borderWidth: 10 class: 1 visual: (screen visualID value) valueMask: 0 valueList: nil. Xcb mapWindow: connection window: windowid. Xcb flush: connection. System pause. Xcb disconnect: connection.