Du serveur X au bureau que j'utilise...

34 réponses
Avatar
Tanguy Briançon
Bonjour,

Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?
Après il y a un gestionnaire de fenêtre? Puis de bureau
(KDE, Gnome)? Ou se situe Compiz la dedans? J'utlise
gnome (car je n'ai pas réussi à avoir une barre
de tache par écran sous KDE et j'ai deux écrans).
J'utlise souvent des programmes KDE (Dolphin & K3B)
qui marche bien sous gnome...

Si vous avez une référence sur la la manière dont
sont organisées ces différentes couches...

Dans le genre: ça ne sert à rien mais c'est marrant
j'ai lancé la lecture de 3 divx avec mplayer: 1 sur
chaqu'un des deux écrans du bureau un et un autre sur un des écrans
du bureau deux. Quand on fait tourner le cube de compiz
(un cube par écran) les trois restent fluides... On peut
faire ça avec windows?

Tanguy

10 réponses

1 2 3 4
Avatar
P4nd1-P4nd4
Tanguy Briançon avait énoncé :
Bonjour,

Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?
Après il y a un gestionnaire de fenêtre? Puis de bureau
(KDE, Gnome)? Ou se situe Compiz la dedans? J'utlise
gnome (car je n'ai pas réussi à avoir une barre
de tache par écran sous KDE et j'ai deux écrans).
J'utlise souvent des programmes KDE (Dolphin & K3B)
qui marche bien sous gnome...

Si vous avez une référence sur la la manière dont
sont organisées ces différentes couches...

Dans le genre: ça ne sert à rien mais c'est marrant
j'ai lancé la lecture de 3 divx avec mplayer: 1 sur
chaqu'un des deux écrans du bureau un et un autre sur un des écrans
du bureau deux. Quand on fait tourner le cube de compiz
(un cube par écran) les trois restent fluides... On peut
faire ça avec windows?

Tanguy



OUI
Avatar
Nicolas George
Tanguy Briançon , dans le message
<4f18fd91$0$10724$, a écrit :
Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?



(Comment peut-on faire une faute comme celle-là ?)

Il initialise la carte vidéo, la souris, le clavier, et un serveur réseau.
Des applications s'y connectent, elles demandent de créer des fenêtres (de
simples rectangles qui se cachent les uns les autres) et donnent des
instructions de dessin dans ces fenêtres, et en contrepartie elles reçoivent
des indications des mouvements de la souris dans leurs fenêtres et des
touches clavier appuyées.

Après il y a un gestionnaire de fenêtre?



Le gestionnaire de fenêtres prend l'exclusivité de la manipulation de la
fenêtre racine : quand une application demande à y créer une fenêtre, le
gestionnaire de fenêtre reçoit un événement, et il demande au serveur X11 de
décoller cette fenêtre et de la recoller dans une fenêtre qu'il a lui-même
créée, pour ajouter des décorations.

Ou se situe Compiz la dedans?



C'est un gestionnaire de composition : quand une application dessine dans
une fenêtre compositée, ça se dessine en fait dans un buffer en mémoire, et
c'est le gestionnaire de composition qui est chargé de faire effectivement
l'affichage, en l'occurrence avec OpenGL.
Avatar
Tanguy Briançon
On 20/01/2012 10:01, P4nd1-P4nd4 wrote:
Tanguy Briançon avait énoncé :
Bonjour,

Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?
Après il y a un gestionnaire de fenêtre? Puis de bureau
(KDE, Gnome)? Ou se situe Compiz la dedans? J'utlise
gnome (car je n'ai pas réussi à avoir une barre
de tache par écran sous KDE et j'ai deux écrans).
J'utlise souvent des programmes KDE (Dolphin & K3B)
qui marche bien sous gnome...

Si vous avez une référence sur la la manière dont
sont organisées ces différentes couches...

Dans le genre: ça ne sert à rien mais c'est marrant
j'ai lancé la lecture de 3 divx avec mplayer: 1 sur
chaqu'un des deux écrans du bureau un et un autre sur un des écrans
du bureau deux. Quand on fait tourner le cube de compiz
(un cube par écran) les trois restent fluides... On peut
faire ça avec windows?

Tanguy



OUI




On fait comment pour avoir plusieurs bureaux avec windows?
Puis les faire tourner sur les faces d'un cube?
Avatar
Tanguy Briançon
On 20/01/2012 10:11, Nicolas George wrote:
Tanguy Briançon , dans le message
<4f18fd91$0$10724$, a écrit :
Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?



(Comment peut-on faire une faute comme celle-là ?)



En postant sans se relire a 6h30 la tête dans le cul...

Il initialise la carte vidéo, la souris, le clavier, et un serveur réseau.
Des applications s'y connectent, elles demandent de créer des fenêtres (de
simples rectangles qui se cachent les uns les autres) et donnent des
instructions de dessin dans ces fenêtres, et en contrepartie elles reçoivent
des indications des mouvements de la souris dans leurs fenêtres et des
touches clavier appuyées.



Donc basiquement un programme envoie au serveur X des requetes
du genre:
-creer_une fentre 200*2000
-Dessine dans cette fenetre un cercle centré en 40,40 de rayon 30
le programme reçoit des infos du genre
on a cliqué en 35,35
la touche k (ou de code machin...) a été appuyé.
J'ai compris ou pas?

Après il y a un gestionnaire de fenêtre?



Le gestionnaire de fenêtres prend l'exclusivité de la manipulation de la
fenêtre racine : quand une application demande à y créer une fenêtre, le
gestionnaire de fenêtre reçoit un événement, et il demande au serveur X11 de
décoller cette fenêtre et de la recoller dans une fenêtre qu'il a lui-même
créée, pour ajouter des décorations.



Donc je reprends mon exemple précédant:
Je cree une nouvelle fenetre
X11 prévient le gestionnaire de fenetre qui dit au serveur X de creer
une fenetre et colle le contenu de ma fenetre dedans et ajoute la
déco...

Remarque: il m'est déja arrivé d'avoir les fenetres sans la déco: j'en
déduis que c'est alors le gestionnaire de fenêtre qui s'est planté?


Ou se situe Compiz la dedans?



C'est un gestionnaire de composition : quand une application dessine dans
une fenêtre compositée, ça se dessine en fait dans un buffer en mémoire, et
c'est le gestionnaire de composition qui est chargé de faire effectivement
l'affichage, en l'occurrence avec OpenGL.



La il y a quelque chose que je ne comprends pas... Une application
s'adresse directement à X11 qui redonne les infos à Compiz? Si on
veut qu'une appli soit la plus portable possible elle doit pouvoir
tourner avec ou sans compiz et avec n'importe quel gestionnaire de
fenêtre elle doit parler directement avec X11 non?

En tout cas merçi pour ces précisisons.
Avatar
Tanguy Briançon
On 20/01/2012 10:11, Nicolas George wrote:
Tanguy Briançon , dans le message
<4f18fd91$0$10724$, a écrit :
Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?



(Comment peut-on faire une faute comme celle-là ?)

Il initialise la carte vidéo, la souris, le clavier, et un serveur réseau.
Des applications s'y connectent, elles demandent de créer des fenêtres (de
simples rectangles qui se cachent les uns les autres) et donnent des
instructions de dessin dans ces fenêtres, et en contrepartie elles reçoivent
des indications des mouvements de la souris dans leurs fenêtres et des
touches clavier appuyées.

Après il y a un gestionnaire de fenêtre?



Le gestionnaire de fenêtres prend l'exclusivité de la manipulation de la
fenêtre racine : quand une application demande à y créer une fenêtre, le
gestionnaire de fenêtre reçoit un événement, et il demande au serveur X11 de
décoller cette fenêtre et de la recoller dans une fenêtre qu'il a lui-même
créée, pour ajouter des décorations.

Ou se situe Compiz la dedans?



C'est un gestionnaire de composition : quand une application dessine dans
une fenêtre compositée, ça se dessine en fait dans un buffer en mémoire, et
c'est le gestionnaire de composition qui est chargé de faire effectivement
l'affichage, en l'occurrence avec OpenGL.



J'ai créer, en c, un logiciel de geométrie dynamique et un
logiciel de dessin pour les hp49g+/50 (cf geohp et cgrobedit sur
www.hpcalc.org).
Si je veux en faire une adapation pour GNU/Linux:
j'ai, a priori, besoin de fonctions de bases:

- creer une fenêtre
- Dessiner un pixel au point x*y (en partant en haut à gauche de
la fenêtre) dans la fenêtre.
- Dessiner un segment et un cercle (pour le cercle j'ai codé en c
l'algo de Bresenham, pour le segment c'est faisable...)
- Savoir quelle touche à été frappé (si c'est mon programme
qui a le focus)
- Creer des fenetres "invisible" puis tracer dedans et faire
des copier coller entre la fenêtre visible et l'invisible.
Du genre copy(x_0,x_1,y_0,y_1,&fen1,&fen2).

J'ai aussi besoin de connaitre la dimension de la fenêtre:
sous hp49g+ je connais la taille de l'écran mais si c'est dans une
fenêtre dont on modifie la taille... Ou bien de créer une fenêtre de
taille fixe dont le gestionnaire de fenêtre
interdit la redimension...

Mon but est de pouvoir dévelloper mes programmes et les tester
sur le pc. Pour le moment je developpe et compile sur pc puis
je dois utiliser transferer le prog (via une carte sd) pour
tester sur la hp. Certains bugs devrait pouvoir être trouvé plus
vite si mon appli tourne sous Linux.
Avatar
P4nd1-P4nd4
Tanguy Briançon a présenté l'énoncé suivant :
On 20/01/2012 10:01, P4nd1-P4nd4 wrote:
Tanguy Briançon avait énoncé :
Bonjour,

Je me pose des questions sur la manière dont les systèmes GNU/Linux
(ou BSD...) gère l'affichage graphique. La couche basse est
le serveur Xorg mais qu'elle est son role?
Après il y a un gestionnaire de fenêtre? Puis de bureau
(KDE, Gnome)? Ou se situe Compiz la dedans? J'utlise
gnome (car je n'ai pas réussi à avoir une barre
de tache par écran sous KDE et j'ai deux écrans).
J'utlise souvent des programmes KDE (Dolphin & K3B)
qui marche bien sous gnome...

Si vous avez une référence sur la la manière dont
sont organisées ces différentes couches...

Dans le genre: ça ne sert à rien mais c'est marrant
j'ai lancé la lecture de 3 divx avec mplayer: 1 sur
chaqu'un des deux écrans du bureau un et un autre sur un des écrans
du bureau deux. Quand on fait tourner le cube de compiz
(un cube par écran) les trois restent fluides... On peut
faire ça avec windows?

Tanguy



OUI




On fait comment pour avoir plusieurs bureaux avec windows?
Puis les faire tourner sur les faces d'un cube?



Plein de softs existent,,,

Oui, mieux encore...

Mais cela ne sert à rien...

http://www.youtube.com/watch?v=Ttr34FWibfI
http://www.youtube.com/watch?v=-y5io3ivUxg
Avatar
Doug713705
Le 20-01-2012, P4nd1-P4nd4 nous expliquait dans
fr.comp.os.linux.debats :

On fait comment pour avoir plusieurs bureaux avec windows?
Puis les faire tourner sur les faces d'un cube?



Plein de softs existent,,,

Oui, mieux encore...

Mais cela ne sert à rien...

http://www.youtube.com/watch?v=Ttr34FWibfI
http://www.youtube.com/watch?v=-y5io3ivUxg



Tu rigoles j'espère ?

Le soft présenté dans la première vidéos ne sert strictement à rien
sinon faire mumuse avec les icones de son bureau.

La démo du deuxième, comment dire, hahahaha, le truc rame déjà alors
que rien n'est lancé sur la machine ! Où sont les multiples
applications ouvertes, les mulitples vidéos ouvertes sur chacun des
bureaux ?

Par ailleurs, les applications affichées en 'mode cube' sont figées, ce
ne sont que des captures d'écrans affichées dans un pauvre cube !

Compiz est à des années lumières devant !
--
Doug - Linux user #307925 - Slackware64 roulaize ;-)
http://usenet-fr.chainon-marquant.org
http://newsportal.chainon-marquant.org
http://news.chainon-marquant.org
Avatar
Tanguy Briançon
On 20/01/2012 21:33, P4nd1-P4nd4 wrote:
On fait comment pour avoir plusieurs bureaux avec windows?
Puis les faire tourner sur les faces d'un cube?



Plein de softs existent,,,

Oui, mieux encore...

Mais cela ne sert à rien...



Je ne suis pas d'accord: c'est assez intéressan d'avoir plusieurs
bureaux. Je bosse avec emacs
(désolé pour les fans de vim) et LaTeX. Avoir
un bureau avec d'autres logiciels sur d'autres
bureaux me semble un plus.

http://www.youtube.com/watch?v=Ttr34FWibfI
Je ne parle pas Allmands donc je n'ai pas compris
grand chose à cette vidéo (sinon que le fait d'empiler
les icones est sans interet)

http://www.youtube.com/watch?v=-y5io3ivUxg



Il faut surement ajouter des logiciels. En plus je trouve
ce genre de choses avec mon GNU/Linux. C'est simple
je clique "bureau 3D" et ça marche!
Avatar
Tanguy Briançon
On 20/01/2012 21:33, P4nd1-P4nd4 wrote:
On fait comment pour avoir plusieurs bureaux avec windows?
Puis les faire tourner sur les faces d'un cube?



Plein de softs existent,,,

Oui, mieux encore...

Mais cela ne sert à rien...



Je ne suis pas d'accord: c'est assez intéressan d'avoir plusieurs
bureaux. Je bosse avec emacs
(désolé pour les fans de vim) et LaTeX. Avoir
un bureau avec d'autres logiciels sur d'autres
bureaux me semble un plus.

http://www.youtube.com/watch?v=Ttr34FWibfI
Je ne parle pas Allmands donc je n'ai pas compris
grand chose à cette vidéo (sinon que le fait d'empiler
les icones est sans interet)

http://www.youtube.com/watch?v=-y5io3ivUxg



Il faut surement ajouter des logiciels. En plus je trouve
ce genre de choses avec mon GNU/Linux. C'est simple
je clique "bureau 3D" et ça marche!
Avatar
Nicolas George
Tanguy Briançon , dans le message
<4f19bc4c$0$646$, a écrit :
Donc basiquement un programme envoie au serveur X des requetes
du genre:
-creer_une fentre 200*2000
-Dessine dans cette fenetre un cercle centré en 40,40 de rayon 30
le programme reçoit des infos du genre
on a cliqué en 35,35
la touche k (ou de code machin...) a été appuyé.
J'ai compris ou pas?



Oui, c'est ça.

Donc je reprends mon exemple précédant:
Je cree une nouvelle fenetre
X11 prévient le gestionnaire de fenetre qui dit au serveur X de creer
une fenetre et colle le contenu de ma fenetre dedans et ajoute la
déco...



Voilà. Un petit détail : les fenêtres sont emboîtées, hiérarchisées : il y a
la fenêtre racine au départ, puis les fenêtres d'applications dans la
fenêtre racine, et chaque application peut créer des sous-fenêtres dans ses
propres fenêtres, par exemple pour un bouton ou une liste défilante.

Le gestionnaire de fenêtre n'est notifié que pour les fenêtres ajoutées à la
racine.

(En fait, n'importe quel client peut créer une fenêtre dans n'importe quelle
fenêtre, pas seulement les siennes. Mais si les clients n'ont pas un minimum
de discipline, ça va mal se passer.)

Remarque: il m'est déja arrivé d'avoir les fenetres sans la déco: j'en
déduis que c'est alors le gestionnaire de fenêtre qui s'est planté?



Il est également possible, pour une application de demander qu'une fenêtre
n'ait pas telle ou telle décoration (pour les boîtes de dialogue, par
exemple ; c'est une demande protocolaire au gestionnaire de fenêtres), voire
soit carrément dispensée de gestion (pour les menus déroulants ; c'est une
demande directement à X11), donc impossible de désigner le coupable avec si
peu d'information.

La il y a quelque chose que je ne comprends pas... Une application
s'adresse directement à X11 qui redonne les infos à Compiz?



Oui : quand l'application demande de dessiner dans la fenêtre, X11 dessine
dans un buffer en mémoire à la place, et périodiquement Compiz fait des
choses avec ce buffer.
1 2 3 4