<#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*
pgp6iw9Qj4nG9.pgp
Description: PGP signature

