Całe środowisko graficzne to gigantyczne przedsięwzięcie, składające się z dziesiątek/setek komponentów, a nie jeden program. No i takie rzeczy jednak robi się z językami niższego poziomu ;) Chyba że chcesz spróbować wszystko skleić z gotowych komponentów, ale tutaj sam nie mam dobrej intuicji jak to zrobić.
Jako "bazę" środowiska, window manager (zakładając że chcesz go napisać a nie używać gotowego), to trochę przykładowych źródeł:
https://jichu4n.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i/
https://github.com/jichu4n/basic_wm
https://github.com/mackstann/tinywm
O, jeden w Pythonie: http://www.qtile.org/
A przykład "pełnego" DE, cinnamon, który faktycznie ma sporo JSa (ale tam jest sporo komponentów niższego poziomu): https://github.com/linuxmint/cinnamon
Ale to znowu tylko jeden komponent z wielu, na przykład https://github.com/linuxmint/cinnamon-settings-daemon to już samo C.