PDA

Afficher la version complète : Programmer un Windows Manager



The_Undertaker
20/09/2005, 09h30
Voila j'aimerai programmer un petit window manager tout simple. C'est plus pour en comprendre le fonctionnement que pour detroner KDE ou Gnome.

Donc si quelqu'un connaisait un site avec un peu de documentation (meme en anglais) pour connaitre les bases et surtout pour savoir comment l'integrer dans kdm.

Je pense utiliser QT4

Merci

totoro
20/09/2005, 09h36
Hé bé The_Undertaker ca va envoyer du bois moi je veut faire partie de ton equipe (pour s'amuser un peut sa changera de l'école)
Je suis donc avec toi d'ailleur une voix m'a dit "follow the lapinou"

Asimov
27/09/2005, 19h18
Il y a ce projet qui est récent qui pourrait t'intéressé!

http://freshmeat.net/projects/fxwm/

Il est basé sur le fox toolkit, un GUI vraiment super (véritablement orienté-object, pas une adaptation OO) , donc ce devrait être facile de t'y retrouvé. Et comme le projet n'est pas trop avancé, ce n'est pas comme abordé KDE http://www.alionet.org/style_emoticons/<#EMO_DIR#>/ohmy.gif

Spyhawk
27/09/2005, 19h22
Sinon, y'a une documentation très complète sur Qt3, "C++ GUI progamming with Qt3"", gratuite depuis un moment, tu devrais la trouver facilement sur Internet.

Spyhawk
27/09/2005, 19h40
Je viens justement de tomber sur le lien par pur hasard, en flanant sur linurfr :
http://www.phptr.com/content/images/013124...chette_book.pdf (http://www.phptr.com/content/images/0131240722/downloads/blanchette_book.pdf)
Les exemples cpp doivent etre par la aussi...

Asimov
28/09/2005, 20h24
J'ai des grosses réserve au sujet de QT. Il est très gourmand en ressources et c'est un raison pour laquelle j'ai hâte que XFCE devienne plus complet. Je vien de faire un travail sur NVU, très bon éditeur en passant, il n'y manque qu'un support pour les frames, mais c'est pas dramatique...

Par contre, il est construit avec QT, le dialogue pour les liens met des secondes à apparaître!!!

Fox toolkit, n'est peut-être pas impressionnant pour l'esthétique mais il est performant et beaucoup plus facile d'approche que QT, et techniquement plus avancé. Il est possible de faire des connections bilatérale facilement sans faire de boucle, chose qui est complexe avec QT ou gnome.

Quand je parle de connection bilatéral, voiçi un exemple:

imaginé un dialog simple avec les deux élément un sélecteur de couleur(pipette) et un champ texte avec la valeur rgb. Vous voulez à la fois que l'utilisateur puisse choisir la couleur de deux façon possibles avec la souris ou en entrant la valeur numérique. Et évidemment peut importe l'option choisie par l'utilisateur le résultat devra se réfléchir dans l'autre champ. Si vous utilisé le champ texte -> changement de position de la croix. Si vous utilisé la pipette->changement dans le champ texte.

Très facile de faire des boucles infernales avec ce genre de truc, mais fox toolkit le fait d'une façon très élégante et facile à implanté.

Pour avoir étudier la plupart des options sur Linux, c'est le GUI qui est le simple à comprendre et le polyvalent, si vous désirez fabriqué une application qui peut-être étendu avec des scripts, cela devient le meilleur véritable choix.

Et un window manager scriptable (avec un language complet j'entend), c'est une option qui manque dans le paysage. Personnelement, je pense à un projet semblable car faire des dialogues de configuration en FxRuby, ce serait de la petite bière....

Une chose est sur KDE est une bel pièce de programmation, mais il est difficilement adaptable.

Par exemple, je remarqué que pour ce qui est du contrôle à distance les choix sont très restreint et qu'il impose pour la pluparts l'installation de X windows sur les machines que nos désirons contrôlé. Personnelement, je trouve cette solution pas très élégante, car X Window est une grosse pièce gourmande en terme de ressources. Il me semble qu'il devrait être possible d'avoir d'autre alternative pour contrôler un réseaux d'ordinateurs que XWindow et ncurse.

C'est un peu à cela que je pense un window manager extensible pour les programmeurs , en somme... Tant qu'à créé un autre window manager, autant avoir avec une niche particulère

Une idée comme cela! http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Spyhawk
28/09/2005, 21h43
Heu... tu est sur que Nvu est écrit en Qt ?

Parce que tout les produits Mozilla sont écrit en GTK (Nvu est basé sur Mozilla Composer) et franchement j'ai de gros doute quand à ce que tu avances... mais je peux me tromper !

Asimov
29/09/2005, 19h56
Nvu est produit par linspire et je vien de visiter le site de chargement et ont y fait référence à des librairies KDE....

Mais bon, je n'ai pas les source sous le nez... mais les application sous Gnome (GTk)ont des gros boutons en générale..

Mais bon le choix d'un GUI est personnel, mais généralement plus elle est élaboré, plus c'est facile de se mettre les pieds dans les plat...

Une bonne façon d'évaluer un GUI est de visiter les sites de développeur et de lire les problèmes qu'ils rencontrent. En tous cas personnellement, quand je met mon nez dans le code de QT, je m'y perd. C'est peu à cause du nombre de programmeurs qui ont été impliqué dans QT, je ne pourrait dire.

À l'opposé, le Fox Toolkit est principalement la réalisation d'un individu qui programme principalement en C++ et cela se sent. Un bon GUI ne vous force pas à avoir la documentation sous les yeux, et quand quelqu'un de vraiment doué en C++ programme ( et qu'il en a le temp... ;-) ), le code se documente de lui-même.

Mais ce que je déplore le plus de QT , KDE et Gnome, c'est qu'il n'y a pas de support pour les menus dynamique. Vous avez sans doute remarqué que la plupart des éditeurs sous Linux n'offre pas la possibilité de faire des macros....C'est pas un hasard.

Maintenant tenté d'imaginé des événement enregistrables à la PhotoShop, pas évident à implanter
sans trafiqué toute la hiéarchie des classes.

Un code qui convivial pour les interpréteurs permet ce genre de chose et permet d'étendre le programme d'une façon beaucoup plus simple que les plug-ins. Si je développe une application qui intégre FxRuby, je peux faire tous mon interface graphique en Ruby et utilisé dans mon application toute la librairie de ruby mais aussi tous les interface existants à des librairies présente dans ma machine. Mais en plus, je peux me servire de toute les applications sans interface graphique, et sur Linux ce n'est pas cela qui manque....

Pour moi, l'avenir en programmation va vers ce modèle qui détachera completement l'interface et l'application générique afin de faire en sorte que la partie générique du programme puisse être utilisable avec un souris mais aussi avec la possibilité de faire des batch!

J'ai entrevue la possibilité de ce concept avec MacOS avec l'applescript, mais le langage était trop limité (applescript est vraiment un script langage, pas un langage complet) ce qui n'est pas le cas avec ruby! http://www.alionet.org/style_emoticons/<#EMO_DIR#>/cool.gif

Spyhawk
29/09/2005, 22h01
J'ai pas regarder les sources (29 Mo et la j'suis en 56K..), mais pour les compiler faut suivre la procédure "Mozilla"...

Par contre, j'ai vu qu'il est noté que Nvu utilise le langage d'interface XUL (comme FF/Th en partie), et je crois qu'il n'est pas reconnu comme des plus rapides...

Mais je ne pense pas qu'il soit écrit en Qt, du moins, il aurait mieux value recommencer un projet de zéro que de partir sur des bases GTK/Xul...

Sinon, je te ferais remarquer qu'on peut utiliser les binding Ruby/Python/etc. avec Qt (idem avec GTK je crois).

A propos de Qt, c'est une bibliothque tres reconnue et extremement bien documenté (pas comme GTK.. ahem). Je pense également qu'apprendre un langage c'est avant tout d'apprendre à manier une documentation http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif et non apprendre les multi-facettes du langage par coeur...

Par contre, je ne connais pas du tout Fox, j'en ai entendu que tres rarement parler, et ne connais pas conséquent ses avantages face a d'autres langage.

FLoR1aN
11/10/2005, 23h40
Moi j'ai pris la pillule bleue et on m'a dit : "Suis le lapin blanc!". Donc je te suis aussi, lol.
A mon avis le plus dûr doit être de gérer la cohabitation lapino-chatbus. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif