UML является только одним из методов для коммуникации в людях. Электронная доска лучше.
XCB, API следующего поколения для X, использует формат XML для определения протоколов X и генерирует привязки конкретных языков с помощью сценария. По концепции он похож на SWIG, за исключением того, что вместо описания API C он описывает протоколы X.
В настоящее время привязки существуют для C и Python. Перенос на Ruby теоретически был бы лишь вопросом написания переводчика с языка определения протокола XML на Ruby. Сгенерированный код Ruby может либо обернуть C API, либо реализовать проводной протокол на чистом Ruby (я рекомендую последний).
API явно имеет некоторые неотъемлемые преимущества по сравнению с устаревшим Xlib, связанные с блокировкой ввода-вывода. Как ни странно, он также имеет порт для Windows.
Вы смотрели http://ruby-xlib-wrap.sourceforge.net/ . Кажется, это обеспечивает привязку Ruby для XLib.
Вы можете поэкспериментировать с использованием XWindows, прежде чем пытаться написать оконный менеджер.
Почему бы не начать с рабочего стола, чтобы получить некоторый опыт.
Not Ruby or Python, but these window managers are also written in cool languages: awesome (Lua) and XMonad (Haskell). Maybe you can peek inside their internals and see how they work.
Примечание:
1) Awesome не написан на lua, он написан на C. Он использует Lua в качестве интерфейса сценариев / конфигурации.
2) Qtile и Samurai-X - это два wm. написаны на python.
3) Subtle - это wm, использующий ruby в качестве языка сценариев.
Qtile и Subtle - это тайловые оконные менеджеры.