Un de mes nouveaux projets à la maison sera un simple Gestionnaire de fenêtres, mais avant de commencer j'ai besoin de savoir certaines choses:
- Qui est le meilleur langage pour faire cela?
- Où trouver des ressources pour apprendre?
Un de mes nouveaux projets à la maison sera un simple Gestionnaire de fenêtres, mais avant de commencer j'ai besoin de savoir certaines choses:
Une décision importante est de savoir comment vous allez parler à l'X server. Vous pouvez utiliser la Xlib liaisons pour la langue de votre choix, ou vous pouvez utiliser le niveau supérieur XCB liaisons. (Si vous êtes fou, vous pourriez ouvrir un socket vers le serveur X directement.)
Pour savoir comment un gestionnaire de fenêtre doivent se comporter, il y a deux documents qui spécifient les conventions et politiques: EWMH et ICCCM1. Se conformant à ces moyens de votre gestionnaire de fenêtre se comporte bien dans GNOME, KDE, XFCE, et tout autre environnement de bureau qui vient le long, même si ignorant est certainement plus facile sur votre premier essai.
Un gestionnaire de fenêtres n'a pas besoin d'être un énorme complexe de la balle de C - la Réussite des gestionnaires de fenêtres ont été écrits dans des langages de haut niveau comme Lisp, Haskell, et Python, et même certains en C sont restées petites et lisible. XMonad, écrit en Haskell, est resté au-dessous de 1000 lignes un certain temps. StumpWM (Common Lisp) et DWM (C) sont tous les deux assez minimaliste. Vous pourriez être en mesure de lire le code source pour obtenir un peu d'inspiration sur la façon de concevoir un WM.
1 Élie Newren a écrit:
NE PAS ALLER LIRE CES CHOSES. ILS SONT VRAIMENT, VRAIMENT ENNUYEUX. Si vous le faites, vous finirez probablement par vous rattraper sur votre sommeil au lieu de piratage sur Metacity. ;-)
Venez pour penser à elle, Metacityla documentation a un bon peu à dire sur la façon dont il interagit avec windows et ce genre de propriétés étendues, il prend en charge.
Tandis qu'une autre langue et un ensemble de bibliothèques sont techniquement possibles, je pense que le meilleur choix de la langue serait C, et la Xlib ou XCB bibliothèques. La plupart des gestionnaires de fenêtres pour X l'utiliser, et il y a déjà beaucoup d'élan ici et la maturité de ces bibliothèques.
Certains documents d'intérêt:
Qui est le meilleur langage pour faire cela?
Selon que vous êtes plus à l'aise avec. Il y a beaucoup d'exemples de réussite de gestionnaires de fenêtres dans de nombreuses langues différentes là-bas. Qtile et xmonad sont de bons exemples, écrite en Python et Haskell, respectivement.
Où trouver des ressources pour apprendre?
Je vais regarder un peu de gestionnaires de fenêtres. Il y en a beaucoup, donc au moins certains d'entre eux ont d'avoir un code lisible. Voici la Liste Complète des Gestionnaires de fenêtres pour Unix.
Je sais que ce sujet est un peu vieux, mais je me demandais la même chose. Ce gestionnaire de fenêtre appelé i3 semble être une bonne idée d'apprendre de trop.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.