Question

Je suis en train d'écrire un gestionnaire de fenêtres. (En fait, je Vous écrit un OS et un compilateur, mais qui est à côté du point.)

XLib et XCB ne sont pas exactement méchant, du moins pas par, disons, win32 normes, mais ils sont certainement très vieux et ne prêtent pas eux-mêmes bien à des abstractions décentes pour rendre ma vie plus facile. Non seulement cela, mais il y a un manque évident de bonnes liaisons pour les langages de haut niveau moderne.

Ma question est: est tout ce genre de choses de bas niveau ces jours-ci vraiment nécessaire? Ne bibliothèques existent qui encapsule toutes les choses désagréables pour moi? J'ai un vague souvenir que le peuple des Lumières avaient fait une telle chose, mais ne trouve rien. Ou bien les bibliothèques de widgets modernes comme, par exemple, GDK ont suffisamment de fonctionnalités que je ne aurais pas besoin de toucher la couche Xlib?

Les bibliothèques avec des liaisons Java sont particulièrement intéressants ...

Était-ce utile?

La solution

Ceci est une réponse tardive alors peut-être qu'il n'a pas beaucoup de pertinence plus mais je vais le poster de toute façon puisque d'autres personnes pourraient être à sa recherche ...

Je me suis posé la même question et est arrivé à la conclusion qu'il n'y existe pas une telle chose, surtout pas en Java. Alors que certains kits d'outils de widget, comme qt, vous offre la possibilité d'utiliser un struct d'affichage existant et créer des widgets sur les poignées de fenêtre xlib existante, vous aurez encore à utiliser xlib / XCB pour faire le sale boulot de communiquer avec le serveur X pour wm opérations spécifiques. D'autres bibliothèques, comme indiqué par d'autres, comme GDK et l'illumination offrent aussi un très bon travail d'abstraction de base.

Pourtant, je ne suis pas content du fait que tous ces utilisation C / C ++ et assis sur mon attente paresseux cul jusqu'à ce que quelqu'un a fait le travail pour moi en Java était pas une option, j'ai commencé à écrire ma propre bibliothèque vous permet de construire votre propre WM modulaire, en Java. https://github.com/Zubnix/trinityshell

Autres conseils

est tout ce genre de choses de bas niveau ces jours-ci vraiment nécessaire?

Si par « des choses de bas niveau », vous voulez dire que le langage C alors non, il ne faut pas du point de vue technique; vous pouvez utiliser XCB de XML pour générer des liaisons pour toutes les langues.

Cependant, si par « des choses de bas niveau », vous voulez dire au niveau traitant du protocole X alors, oui, il est nécessaire (si vous ne voulez pas tirer vos cheveux). Un gestionnaire de fenêtres doit travailler au niveau du protocole X11, donc utiliser quelque chose de « haut niveau » ne fera que rendre votre vie difficile. En fait, XCB a été créé précisément parce que Xlib était trop haut niveau, masquant trop en dessous donc il était facile de faire des erreurs, et ce qui rend difficile, voire impossible, d'avoir le contrôle total. (En outre, XCB n'est pas « très vieux » du point de vue de X;. Il est seulement dans les dernières années que toutes les principales distributions Linux ont finalement commencé entièrement en utilisant XCB)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top