<#secure method=pgpmime mode=sign>
On 14 mar 2003, [EMAIL PROTECTED] verbalised:

>  C'est tout simplement du � la d�finition d'un window manager !  Il

Oui.


[...]


>  Ce probl�me est aussi sur les multi-bureaux de windows et � priori de
>  n'importe que Window manger.
>
>  Le seul moyen pour �viter cela serait que chaque commande pr�vienne
>  le window manager qu'elle va lancer une application graphique ou que
>  chaque processus soit assign� � son desktop de d�part.

Oui

>  C'est � mon avis une belle folie de tenter de coder �a, et �a n'en
>  vaut � mon avis pas la peine !

Absolument pas ! Par exemple moi j'utilise Ion[1], et il g�re �a de
mani�re tr�s "triviale". Bon d'accord �a ne correspond pas tout � fait
� ce que l'initiateur de ce thread voulait faire mais bon :) En fait
_tous_ les windows manager dialoguent avec Xwindow par l'interm�diaire
d'atomes que X met � disposition. C'est l� qu'en fait il suffit
d'agir. Pour "cabler" le lancement d'une appli quelconque afin de la
mettre dans un bureau Y, il suffit d'en conna�tre un minimum sur
l'appli en question. Xwindow permet par exemple de conna�tre la classe
d'un client par l'atome WM_CLASS. Il suffit donc de manipuler cet atom
pour dire � un WM que chaque client r�pondant � cet attribut doit se
lancer � tel endroit. 

,----[ Exemple de Xprop ]
| _ION_FRAME_ID(INTEGER) = 4106
| WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
| WM_STATE(WM_STATE):
|                 window state: Normal
|                 icon window: 0x0
| WM_LOCALE_NAME(STRING) = "C"
| WM_CLASS(STRING) = "aterm", "XTerm"
| WM_HINTS(WM_HINTS):
|                 Client accepts input or input focus: True
|                 Initial state is Normal State.
|                 window id # of group leader: 0xa00002
| WM_NORMAL_HINTS(WM_SIZE_HINTS):
|                 program specified minimum size: 28 by 18
|                 program specified resize increment: 7 by 14
|                 program specified base size: 21 by 4
|                 window gravity: NorthWest
| WM_CLIENT_MACHINE(STRING) = "fxgs"
| WM_COMMAND(STRING) = { "aterm" }
| WM_ICON_NAME(STRING) = "[EMAIL PROTECTED] <xprop> /mnt/usbkey/emacs"
| WM_NAME(STRING) = "[EMAIL PROTECTED] <xprop> /mnt/usbkey/emacs"
`----

Toujours dans Ion, il suffit de mettre dans un fichier de conf qu'un
client C, doit se placer dans une target T et voila le tour est jou�.
C'est bien pratique par exemple pour les gens qui utilisent des applis
comme Gimp, xmms et autres du style. Ca permet par exemple d'avoir des
frames d�di�es � chaque appli.

Voici par exemple, une bidouille pour avoir une frame d�di�e � XMMS:

,----
| winprop "xmms.XMMS_Player" {
|     transient_mode on
|     target "xmms"
| }
| winprop "xmms.XMMS_Playlist" {
|     transient_mode off
|     target "xmms-playlist"
| }
| winprop "xmms.XMMS_Preferences" {
|     transient_mode off
|     target "xmms-equalizer"
| }
| winprop "xmms.XMMS_Equalizer" {
|     transient_mode off
|     target "xmms-equalizer"
| }
`----

Chaque fen�tre de l'appli va dans sa propre cible. On se base donc sur
le WM_CLASS de chque fen�tre de xmms (winprop). A noter que cet
exemple ne marche plus sur la version de dev (quelques petites choses �
modifier mais rien de bien m�chant en fait). A noter aussi que rien
n'emp�che d'�parpiller les target sur plusieurs frame (bureau pour les
wm conventionnels).

Voila j'esp�re que j'ai pas �t� trop c... :)

zeDek

Footnotes:
[1] http://modeemi.cs.tut.fi/~tuomov/ion/
--
"Sie werden lachen, ich kann �berhaupt nicht lesen."
                Revisionist Manfred Koch erlaeutert die Probleme der
                Ewiggestrigen in dsp*

Attachment: pgp6iw9Qj4nG9.pgp
Description: PGP signature

Répondre à