Ich möchte einen Fenstermanager in einer dieser Sprachen erstellen (vorzugsweise Ruby). Ich habe ehrlich gesagt keine Ahnung, wo ich anfangen soll, außer dass ich irgendeine Art von X-Modul zum Laden brauche. Wenn jemand eine Ahnung hat, wäre es großartig, wenn Sie mich in die richtige Richtung weisen könnten. Danke(Ruby || Python) Fenstermanager
Antwort
XCB, die nächste Gen-API für X, verwendet ein XML-Format zur Definition von X-Protokollen und generiert spezifische Sprachbindungen mit einem Skript. Es ähnelt dem Konzept von SWIG, außer dass es C-APIs beschreibt und X-Protokolle beschreibt.
Gegenwärtig gibt es Bindungen für C und Python. Ein Ruby-Port wäre theoretisch nur eine Frage des Schreibens eines Übersetzers aus der XML-Protokolldefinitionssprache in Ruby. Der generierte Ruby-Code könnte entweder die C-API umbrechen oder das Wire-Protokoll in reinem Ruby implementieren (ich empfehle letzteres).
Die API hat offensichtlich einige inhärente Vorteile gegenüber der Legacy-Xlib im Zusammenhang mit blockierenden E/A. Es hat auch einen Windows-Port, seltsam genug.
Haben Sie sich http://ruby-xlib-wrap.sourceforge.net/ angesehen. Dies scheint Ruby-Bindungen für XLib bereitzustellen.
Sie können mit XWindows experimentieren, bevor Sie versuchen, einen Fenstermanager zu schreiben.
Warum nicht mit einem Desktop starten, damit Sie etwas Erfahrung sammeln können.
Hinweis:
1) Awesome ist nicht in lua geschrieben, es ist in C geschrieben Es verwendet Lua als scripting/config-Schnittstelle.
2) Qtile und Samurai-X sind zwei wm sind in Python geschrieben.
3) Subtil ist ein wm, das Ruby als Skriptsprache verwendet.
Qtile und Subtile sind beide Fensterverwalter.
subtil ist in C geschrieben, es verwendet nur Ruby als Skriptsprache. – unexist