Frage

Ich versuche einen Fenstermanager zu schreiben. (Eigentlich ich haben Ein Betriebssystem und einen Compiler geschrieben, aber das ist nebensächlich.)

XLIB und XCB sind nicht gerade böse, zumindest nicht nach beispielsweise Win32 -Standards, aber sie sind definitiv sehr alt und eignen sich nicht gut für anständige Abstraktionen, um mein Leben zu erleichtern. Nicht nur das, sondern es gibt ein deutliches Mangel an guten Bindungen für moderne Sprachen auf hoher Ebene.

Meine Frage lautet: Ist all dieses niedrige Zeug heutzutage wirklich notwendig? Gibt es Bibliotheken, die all das böse Zeug für mich zusammenfassen? Ich habe eine vage Erinnerung, dass die Aufklärung, die Leute so etwas getan hatten, aber nichts finden kann. Oder haben moderne Widget -Bibliotheken beispielsweise GDK genug Funktionen, die ich nicht für die XLIB -Ebene berühren muss?

Alle Bibliotheken mit Java -Bindungen sind von besonderem Interesse ...

War es hilfreich?

Lösung

Dies ist eine späte Antwort, also hat sie vielleicht nicht mehr viel Relevanz, aber ich werde sie trotzdem posten, da andere Leute vielleicht danach suchen ...

Ich habe mir die gleiche Frage gestellt und zu dem Schluss gekommen, dass es so etwas gibt, insbesondere nicht in Java. Während bestimmte Widget -Toolkits wie QT Ihnen die Möglichkeit bieten, eine vorhandene Anzeigestruktur zu verwenden und Widgets aus vorhandenen XLIB -Fenstergriffen zu erstellen, müssen Sie noch XLIB/XCB verwenden, um die böse Aufgabe der Kommunikation mit dem X -Server für zu erledigen WM spezifische Operationen. Andere Bibliotheken, wie von anderen angegeben, wie GDK und die Erleuchtung, bieten ebenfalls einen ziemlich guten Job bei der grundlegenden Abstraktion.

Trotzdem war ich nicht zufrieden mit der Tatsache, dass all diese C/C ++ verwenden und auf meinem faulen Arsch wartete, bis jemand die Arbeit für mich in Java erledigte Bauen Sie Ihr eigenes modulares Wm in Java.https://github.com/zubnix/trinityshell

Andere Tipps

Ist all dieses Tiefging heutzutage wirklich notwendig?

Wenn Sie mit "Low-Level-Zeug" die C-Sprache meinen, dann ist dies nicht aus technischer Sicht erforderlich. Sie könnten XCBs verwenden Xml Bindungen für jede Sprache zu generieren.

Wenn Sie jedoch durch "Low-Level-Sachen" mit dem X-Protokollebene umgehen, dann ist es notwendig (wenn Sie Ihre Haare nicht herausziehen möchten). Ein Fenstermanager muss auf der X11 -Protokollebene arbeiten. Wenn Sie also etwas "hohes Niveau" verwenden, wird Ihr Leben nur schwierig. Tatsächlich wurde XCB genau deshalb erzeugt, weil XLIB zu hoch war und sich zu viel darunter maskierte, sodass es leicht war, Fehler zu machen, und es schwierig oder unmöglich machte, die volle Kontrolle zu haben. (Außerdem ist XCB aus einer X -Perspektive nicht "sehr alt"; erst in den letzten Jahren begannen alle wichtigen Linux -Verteilungen schließlich mit XCB vollständig.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top