Page 1 sur 1

[FVWM] Identifier une fenetre [RESOLU]

Publié : dim. 13 juil. 2008, 17:31
par Skippythekangoo
Hello,

Je cherche à agir sur une fenetre quand je la déplace, mais au point où j'en suis, j'agit sur la-dite fenetre en déplaçant aussi les autres)

Voici ce que j'ai dans mes fonctions (Je sais c'est relativement pourri...)

Code : Tout sélectionner

# Lancement de screen dans urxvt au démarage pour connaitre l'ID de weechat
# et le themer au passage de différent cadre
#
DestroyFunc FvwmScreen
AddToFunc FvwmScreen
+ I Exec exec urxvtc -name SCREEN -title SCREEN -e screen -d -R skippy


# Test d'envois de commande à weechat par tube FIFO pour
# Changer le "theme" en déplaçant les fenètres
#
DestroyFunc WeechatNicklistTop
AddToFunc WeechatNicklistTop
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_position = top"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_min_size = 0"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_max_size = 3"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_separator = ON"
+ I Exec exec killall weechatFifo.sh

DestroyFunc WeechatNicklistRight
AddToFunc WeechatNicklistRight
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_position = right"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_min_size = 0"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_max_size = 15"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_separator = OFF"
+ I Exec exec killall weechatFifo.sh
Donc le truc est d'agir que sur la fenetre se nommant "SCREEN" que quand cette derniere ce déplace.

Voici le code d'appel de déplacement de la fenetre

Code : Tout sélectionner

AddToFunc Cadre0
+ I Raise
+ I Resize 1140p 575p
+ I AnimatedMove 300p 325p Warp
+ I WarpToWindow 50 50
+ I WeechatNicklistRight
Merci de vous intéresser à mon probleme...

Publié : dim. 13 juil. 2008, 20:22
par warnaud
Pour identifier une fenêtre sous fvwm c'est simple:
- soit tu connais le nom et/ou tu peux le définir et là un simple

Code : Tout sélectionner

Style <nom de la fenêtre> option1,Option2 ...
suffit
- soit tu ne peux pas le définir et tu ne le connais pas et là il faut utiliser FvwmIdent:
Dans un menu:

Code : Tout sélectionner

+  "Identification"	      Module FvwmIdent
Cela lancera une fenêtre avec toutes les infos de la fenêtre (nom/class/position/taille), ensuite de même que précédemment:

Code : Tout sélectionner

Style <nom de la fenêtre> option1,Option2 ...
dans ta config et hop :)
:!: Attention:!: Les noms sont sensibles à la casse! et supportent les caractères spéciaux:

Code : Tout sélectionner

Style "*OpenOffice.org Calc" MiniIcon mini_ooo-calc.png

Publié : dim. 13 juil. 2008, 22:08
par Skippythekangoo
Hello warnaud...

merci de ta réponse mais ce que je voudrais faire c'est une fonction qui :

Code : Tout sélectionner

Si Fenetre à comme nom SCREEN alors execute script_qui_va_bien
vu que je connais le nom de ma fenetre, défini plus haut...

Publié : dim. 13 juil. 2008, 22:14
par cycyx
Tu as plusieurs choix...

Moi par exemple, je lance mutt dans un terminal que je nomme 'Mail', et j'ai une fonction :

DestroyFunc NewWindowFunc
AddToFunc NewWindowFunc
+ I ThisWindow (xmessage) Jiggle 5
+ I ThisWindow (Mail) Maximize

et une conf de module :
DestroyModuleConfig FvwmEvent: *
*FvwmEvent: deiconify DeThumbnail
*FvwmEvent: add_window NewWindowFunc


En gros, quand mon term (avec l'option -T) se lance, la fenêtre se trouve automatiquement maximiser.
Et sinon, tous mes xmessage tremblent (à la "clin d'oeil" MSN...) pour attirer mon attention, genre "hop hop hop, t'as plus de batterie là mon grand".

Donc comme tu vois, c'est faisable.

Publié : dim. 13 juil. 2008, 22:16
par cycyx
Addendum :

Donc dans ta fonction "Move", tu peux ajouter une ligne type
+ I ThisWindow (SCREEN) Fonction_FVWM

Publié : dim. 13 juil. 2008, 22:17
par Skippythekangoo
MErci cycyx, je vais tester ça de suite

Publié : dim. 13 juil. 2008, 22:23
par Skippythekangoo
Trops plein de merci Cycyx, je me doutais d'un truc comme ça, mais je ne savais pas comment le prendre.

Tu ne peux pas savoir comment ça fait du bien de ne pas voir mon theme de weechat changer à chaque déplacement de fenetre qui n'est pas mon term où il tourne...

Un petit screenshot pour que ce soit plus clair

Image
Image

Publié : dim. 13 juil. 2008, 22:32
par cycyx
Erf...

Bin voilà, encore une subtilité de FVWM dévoilée au grand jour, pour le bien de tous.
Je ré-itère ma demande : que quelqu'un trouve un truc qui n'est _vraiment_ pas réalisable avec FVWM, pour voir (mais même pas un truc approchant quoi).

Tant mieux pour ton weechat donc.
Mais au fait, quelle solution as-tu adopté ?

Publié : dim. 13 juil. 2008, 22:57
par AddiKT1ve
cycyx a écrit : Je ré-itère ma demande : que quelqu'un trouve un truc qui n'est _vraiment_ pas réalisable avec FVWM, pour voir (mais même pas un truc approchant quoi).
Faire le café :D ?

Publié : dim. 13 juil. 2008, 23:03
par Skippythekangoo
J'ai adopter la solution
+ I ThisWindow (SCREEN) WeechatNicklistTop

Publié : lun. 14 juil. 2008, 13:05
par cycyx
AddiKT1ve a écrit :Faire le café :D ?
peut-être, encore que... Avec un peu de domotique... :D

Publié : lun. 14 juil. 2008, 13:06
par cycyx
Plus qu'à mettre le topic en "résolu" donc...

Publié : lun. 14 juil. 2008, 17:19
par Skippythekangoo
pas forcément, ça déconne encore.

Quoique je soupsonne la version de Warnaud de chier dans la colle... :)

Mais bon, pour ma questin, la réponse a été donnée.

Publié : lun. 14 juil. 2008, 17:48
par warnaud
t'as mis un truc du style:

Code : Tout sélectionner

DestroyModuleConfig FvwmEvent: *
*FvwmEvent: move MoveWindowFunc 
...
DestroyFunc MoveWindowFunc
AddToFunc MoveWindowFunc
+ I ThisWindow (SCREEN) WeechatNicklistTop
...
DestroyFunc WeechatNicklistTop
AddToFunc WeechatNicklistTop
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_position = top"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_min_size = 0"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_max_size = 3"
+ I Exec exec $[fvwm_weechat_fifo] "*/set look_nicklist_separator = ON"
+ I Exec exec killall weechatFifo.sh
...
Après y a pleins de trucs qui peuvent entrer en interaction :p
perso j'utilise FvwmEvent pour positionner les applis sur un bureau précis à un endroit précis.

Vérifie si ma version chie dans la colle :D installe fvwm-devel depuis [unstable] ou passe a irssi :D

Publié : lun. 14 juil. 2008, 20:08
par Skippythekangoo
Pour ta version, c'était une boutade, peut être mal placée :(

Sinon, j'ai mis

Code : Tout sélectionner

+ I ThisWindow (SCREEN) WeechatNicklistRight
à la fin de chaque fonctino déplaçant les fenètre.

Code : Tout sélectionner

AddToFunc Cadre0
+ I Raise
+ I Resize 1140p 575p
+ I AnimatedMove 300p 325p Warp
+ I WarpToWindow 50 50
+ I ThisWindow (SCREEN) WeechatNicklistRight