# [Fvwm] Configuration bis

## bosozoku

Salut à tous,

ceci est en quelque sorte la suite du topic Fvwm principale francophone : Fvwm : configuration. Il devenait vraiment trop long et ça gène plusieurs personnes étant donné qu'il devient pratiquement impossible de récupérer des informations. Faut pas se faire d'illusions ça va finir pareil ici, alors on en fera un troisième...  :Smile: 

Une petite présentation s'impose  !

Fvwm pour Feeble Virtual Window Manager (enfin le feeble est tombé dans les oubliettes depuis le temps) est un gestionnaire de fenêtre tout comme les *box ou même kwin et metacity.

Bien que FVWM soit extrêmement souple et programmable (jamais vu plus), il n'existe pas beaucoup de GUI dignes de ce nom pour sa configuration. Cependant, il y a eu quelques projets de création d'outils de configuration graphique, fvwm-themes est un exemple, le nombre d'options supportées est tellement grand qu'il est très difficile de toutes les intégrer dans une interface graphique, voila pourquoi la meilleure façon de configurer FVWM est d'écrire son propre fichier de configuration. 

Son architecture modulaire vous permet de charger ou décharger à votre guise des modules qui apportent tous leur lots de fonctionnalité : barre des tâches, animation, gestion des evenements, pager etc.

On se demande bien pourquoi il ya si peu de monde qui l'utilise, peut être un peu rude lors de la première utilisation (l'aspect par defaut ne donne pas vraiment l'impression qu'il est si formidable). Enfin bref j'espere vous avoir donné l'envie d'utiliser ce WM !

Fvwm.org

Forums officiels

Wiki

et le wiki FR

----------

## Darkael

Yeah, un nouveau thread FVWM!

Bon, faudrait peut-être demander à un mod de locker le précédent, au cas où... Bon c'est sur que celui-ci va être pareil, mais bon on verra bien  :Very Happy: 

----------

## Darkael

Voilà c'est fait, l'ancien thread est définitivement mort  :Wink: 

Sinon, bosozoku, pour ta question de run dialog est-ce que ça serait pas plus simple d'utiliser gmrun plutot qu'un terminal? Ca fait la même chose et il y a la completion aussi.

----------

## bosozoku

Ben j'ai abandonné en fait. J'utilise fbrun. Je suis rageur car j'ai cherché pas mal mais bon. Je voulais faire un swallow dans un beau fvwmbuttons.

edit : vraiment je m'obstine mais si quelqu'un est capable d'executer 'FvwmCommand "All (RunDialog) Close"' lorsque j'appuis sur Entrée avec fbrun ou gmrun ça serait le pied !

----------

## spider312

 *bosozoku wrote:*   

> Ben j'ai abandonné en fait. J'utilise fbrun. Je suis rageur car j'ai cherché pas mal mais bon. Je voulais faire un swallow dans un beau fvwmbuttons.
> 
> edit : vraiment je m'obstine mais si quelqu'un est capable d'executer 'FvwmCommand "All (RunDialog) Close"' lorsque j'appuis sur Entrée avec fbrun ou gmrun ça serait le pied !

 tu créés un script du genre 

```
#!/bin/sh

gmrun

FvwmCommand "All (RunDialog) Close"
```

 et tu lances ce script sur l'evenement voulu  :Wink: 

ou plus simplement, si c'est possible, tu bind sur ton evenement 

```
gmrun && FvwmCommand "All (RunDialog) Close"
```

----------

## Darkael

spider312:

j'aurais dit la meme chose, mais en fait d'après ce que je vois gmrun ne rend pas la main tant que l'appli qu'il lance ne se termine pas... faut activer un truc à la compil pour changer ce comportement. Fbrun marche par contre.

----------

## bosozoku

Bah ce que je pensais faire c'est plutôt jouer avec FvwmEvent. Je swallow fbrun, lorsque j'appuis sur Entrée, fbrun doit se fermer alors quand je chope l'événement close_window fbrun, je ferme le RunDialog.

----------

## Darkael

Ok, avec fbrun ça donne un truc comme ça:

```

AddToFunc StartFunction I Module FvwmEvent

DestroyModuleConfig FvwmEvent:*

*FvwmEvent: Cmd Function

*FvwmEvent: destroy_window DestroyWindowHandler

DestroyFunc DestroyWindowHandler

AddToFunc DestroyWindowHandler

+ I ThisWindow (fbrun) All (RunDialog) Close

```

----------

## bosozoku

Bon ça marche trop bien ^^

J'ai lu le man de FvwmEvent et c'est bien destroy_window qu'il faut utiliser. En fait dès que je lance le module FvwmButtons RunDialog, il se ferme tout de suite ^^

Je ne comprend pas pourquoi puisque la fenêtre fbrun ne se ferme pas (elle a même pas le temps de s'ouvrir !).

edit : pareil si je le fais avec Exec FvwmCommand ... ..., il doit y avoir une erreur de logique mais je vois pas  :Sad: 

----------

## Darkael

Yup je viens d'essayer et effectivement ça marche pas... En fait un swallow déclenche l'évènement destroy_window, et après ça pas moyen de faire quelque chose sur l'appli swallowée  :Confused:   Retour à la case départ donc... Ce que je te propose c'est de faire comme spider312 a dit, tu créée un script fbrun.sh dans ton home:

```

#!/bin/sh

gmrun

FvwmCommand "All (RunDialog) Close"

```

Et tu le lances dans ton FvwmButtons:

```

*RunDialog: (1x1, Frame 0, Swallow "fbrun" `Exec exec $[HOME]/fbrun.sh`)

```

Je viens de tester, ça semble marcher  :Smile: 

----------

## Enlight

Bon j'vais faire mon gros noob, mais swallow =?

----------

## bosozoku

 *Enlight wrote:*   

> Bon j'vais faire mon gros noob, mais swallow =?

 

Cela te permet d'inclure n'importe quelle fenêtre dans un "bouton" de FvwmButtons  :Very Happy: 

Tu peux par exemple inclure FvwmIconMan dans un beau FvwmButtons c'est plus joli (ou un pager, ou encore un FvwmScript pour une horloge par exemple).

KarnEvil : il veut pas swallow le script. Surement le nom qui est mauvais.

edit : ça marche ! Le script n'était pas executable tout simplement.

----------

## bosozoku

Voila c'est presque parfait  :Smile: 

Je suis désespérement à la recherche (je pense que la j'en demande trop, ça doit pas être possible) d'une option qui permette d'avoir le focus sur le bouton swallowé.

J'ai mis un GrabFocus sur le FvwmButtons et ça marche bien mais je suis obligé de cliquer sur fbrun pour avoir la main dessus (j'ai aussi appliqué un GrabFocus dans le style de fbrun). Y'a t'il une solution ? Peut être dans les options de swallow mais la page man n'a pas l'air d'en parler.

----------

## fb99

juste une idée:

pour rendre plus simple la recherche d'informations sur la configuration, ... se serait bien de faire deux thread différents un genre "[fvwm]-configuration" et un autre "[fvwm]-questions configurations" et on ne poste dans le premier qu'une fois que le résultat cherché est trouvé.

qu'est-ce que vous en dites   :Rolling Eyes:  ??

 :Wink:  ou  :Crying or Very sad: 

----------

## bosozoku

Le wiki est fait pour ça justement (beaucoup plus structuré et tout le monde peut éditer pour ajouter/corriger) et on pose les questions ici  :Wink: 

----------

## Darkael

bosozoku:

hmm moi je vois pas trop comment on pourrait faire... je pense qu'une fois qu'il est swallowed fbrun ne peut pas avoir de GrabFocus, et la seule manière d'activer fbrun c'est de cliquer dessus. Une méthode farfelue serait d'utiliser WarpToWindow et FakeClick (pour déplacer le curseur dans le RunDialog et simuler un clic dedans), mais c'est un peu fort. Si quelqu'un a une solution simple qu'il se manifeste  :Very Happy: 

fb99:

En fait je pense que ce thread-ci tiens le rôle de ce que tu appelles "[fvwm]-questions configurations". Et pour le premier, plutot que de créer un autre thread "[fvwm]-configuration", ça serait mieux de poster le résultat final par exemple sur le wiki de bosozoku (ça lui fera plaisir  :Very Happy: ), c'est mieux adapté pour ce genre de choses.

[EDIT] haha grillé  :Very Happy:  bon il est temps d'aller dormir un peu...

----------

## Darkael

Hello,

je me permet d'attirer votre attention sur ce post sur les forums FVWM sur lequel je suis tombé par hasard:

http://fvwm.lair.be/viewtopic.php?p=1018#1018

En résumé c'est un programme qui permet de créer des thumbnails 2 à 3 fois plus rapidement qu'avec xwd+convert (et meme plus rapidement si on est pas trop regardant sur la qualité)! Donc pour ceux qui se plaignent du temps de réponse du thumbnailing, ça va leur plaire  :Very Happy:  Je vais essayer de travailler un peu ça, et l'intégrer aussi dans d'autres techniques (comme les thumbnails dans le pager). Ca pourrait aussi faire une jolie addition au wiki de bosozoku  :Wink: 

----------

## bosozoku

Impressionant ! Ca fait gagner 1.5s ! 

J'espère que dans les prochaines versions de Fvwm, un module sérieux verra le jour pour les thumbnails! 

Ah oui ça sera bien pour le wiki ça, et puis c'est pas mon wiki perso c'est à tout le monde justement  :Wink: 

----------

## bosozoku

Bon il me faut absolument des title bar arrondies  :Very Happy: 

Quelqu'un peut m'expliquer la marche à suivre ?

----------

## Darkael

 *bosozoku wrote:*   

> Bon il me faut absolument des title bar arrondies 
> 
> Quelqu'un peut m'expliquer la marche à suivre ?

 

Je connais pas les détails, mais je te conseillerais d'aller jeter un oeil à la config de pem.

Mais comme tu t'en doutes, ce n'est pas des vrais arrondis (ça se voit si tu fais attention)

----------

## bosozoku

Oué je sais que c'est pas des vrais arrondis (il serait temps que fvwm supporte ça d'ailleurs) mais bon c'est joli. Merci.

Bon la j'en ai vraiment marre ! Je veux réutiliser la fonction pour les thumbnails dans le pager mais on dirait que quoique je mette ça ne change rien ! 

```
DestroyFunc     GenerateMiniIcon

AddToFunc       GenerateMiniIcon

+ I PipeRead "xwd -silent -id $[w.id] | convert -scale $(( ($[w.width] * 82) / 1280 ))x$(( ($[w.height] * 33) / 1024 )) -frame 1x1 \

    -mattecolor black -quality 0 xwd:- png:$[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png \

    && echo WindowStyle EWMHMiniIconOverride, MiniIcon $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png \

    || echo nop" 
```

Si je change 82 par 300 le résultat est le même ! Le thumbnail ne respecte pas du tout la largeur  :Sad: 

edit : mon pager est en rectangle. Les pages n'ont pas les mêmes dimensions en x et y. convert ne sais pas redimmensionner une image avec une valeur pour x et une pour y ? Parce que si je met mon pager en carré , ça passe (enfin il est pas joli comme ça  :Sad: )

edit 2 : bon ça marche un peu mieux en carré mais c'est pas encore ça.

----------

## bosozoku

Merci KarnEvil  :Very Happy: 

Il fallait rajouter un ! comme ça : 

```
convert -scale $(( ($[w.width] * 82) / 1280 ))x$(( ($[w.height] * 33) / 1024 ))!
```

 sinon les proportions des fenêtres sont gardées. Ca va aller dans le wiki ça  :Smile: 

Maintenant j'aimerais adapter cette ligne : 

```
+ I Test (Restart) All (Iconic) Test (f $[fvwm_tmp]/icon.tmp.$[w.id].png) WindowStyle IconOverride, Icon $[fvwm_tmp]/icon.tmp.$[w.id].png

```

pour garder les thumbnails des mini icones lors d'un Restart. Une idée pour mettre à la place de Iconic ?

edit : j'ai testé ça 

```
+ I Test (Restart) All (MiniIcon) Test (f $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png) WindowStyle EWMHMiniIconOverride, MiniIcon $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png

```

mais ça marche pas d'un pet.

----------

## bosozoku

Bonjour,

au lieu de commenter sur le wiki autant le faire ici.

Bon alors j'execute la fonction GenerateMiniIcon sur l'évènement "add_window". Le problème est qu'au démarrage de Fvwm j'ai 3 FvwmButtons qui se lance et ça perturbe apparement car je dois cliquer plusieurs fois pour que tous les swallow se mettent en place. Un moyen d'eviter ça ? Genre add_window mais qui ignore les FvwmButtons ?

----------

## Darkael

 *bosozoku wrote:*   

> Bonjour,
> 
> au lieu de commenter sur le wiki autant le faire ici.
> 
> 

 

Ouais mais y'a que les utilisateurs gentoo qui passent par ici  :Wink: 

 *Quote:*   

> 
> 
> Bon alors j'execute la fonction GenerateMiniIcon sur l'évènement "add_window". Le problème est qu'au démarrage de Fvwm j'ai 3 FvwmButtons qui se lance et ça perturbe apparement car je dois cliquer plusieurs fois pour que tous les swallow se mettent en place. Un moyen d'eviter ça ? Genre add_window mais qui ignore les FvwmButtons ?

 

Tu peux modifier ta fonction comme suit:

```

DestroyFunc GenerateMiniIcon

AddToFunc GenerateMiniIcon

+ I ThisWindow (!FvwmButtons) Schedule 2000 PipeRead "xwd -silent -id $[w.id] | convert -scale $(( ($[w.width] * 82) / 1280 ))x$(( ($[w.height] * 33) / 1024 ))! -frame 1x1 \

-mattecolor black -quality 0 xwd:- png:$[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png \

&& echo WindowStyle EWMHMiniIconOverride, MiniIcon $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png \

|| echo nop" 

```

Ou bien tu peux retarder le lancement de FvwmEvent au démarrage de Fvwm le temps que tout se mette en place:

```

AddToFunc StartFunction

...

+ I Schedule 3000 Module FvwmEvent

```

----------

## bosozoku

 *Quote:*   

> Ouais mais y'a que les utilisateurs gentoo qui passent par ici

 

Bah sur le wiki aussi ^^

Putain pas con le karnevil ! Je crois que je suis pas très intelligent parce que tout ça je sais le faire mais je n'y pense pas...

Bref merci en tout cas! Je vais tester plus tard mais ça devrait marcher normalement.

edit : c'est cool ça marche bien  :Smile: 

Par contre le truc chiant c'est que je dois cliquer quand même pour mettre en place tous les swallows...

----------

## _kal_

Hello les boyz!

Bon alors j'essaie de me mettre a ce wm, lentement mais surement comme on dit  :Laughing:   Bah ouais c'est qu'il es pas facile ce wm, mais bon les screenshot me donnent trop envi alors...  :Smile: 

Donc j'essai de suivre tout d'abord le guide traduit par bosozoku dispo ici:

http://www.stationlinux.org/cat.36.html

Cependant, dans la rubrique fonction, y'a quelques truc que je ne pige pas.

```
DestroyFunc FvwmDeleteOrDestroy

AddToFunc FvwmDeleteOrDestroy

+ H Nop

+ M Nop

+ C Delete

+ D Destroy
```

Cette fonction est censé supprimé la fenetre si simple clique ou la détruire si double clique. Ok 'est gentil tout ça, mais comment ca se passe? Si je clique n'importe ou dans une fenetre ca la supprime et la detruit si je double clique ?  :Shocked: 

Difference entre supprimer et détruire ? D'autre part, j'utilise la croix en haut a dratoie pour fermer uen fenetre moi  :Laughing: 

Je ne comprend pas non plus la suite des Fonctions sachant que c'est le meme principe, donc le clique sur la fenetre doi se faire dans un endroit particulier pour faire la difference des fonctions. Bref je pige pas la  :Laughing: 

Merci de m'éclairer  :Wink: 

----------

## bosozoku

Salut ! 

Tu as bien raison de t'y mettre c'est le meilleur  :Smile: 

Alors une fonction toute seule ne sert à rien, il faut l'appeller. Tu pourrais appeller cette fonction lors d'un Clic du bouton gauche sur le boutonn "fermer" sur la barre de titres  :Smile: 

Ce qui fait que un seul clic = Delete, double clic = Destroy.

Mais je sais plus la différence entre les deux, jete un coup d'oeil sur la page man de fvwm c'est surement bien expliqué .

----------

## _kal_

 *bosozoku wrote:*   

> Salut ! 
> 
> Tu as bien raison de t'y mettre c'est le meilleur 
> 
> Alors une fonction toute seule ne sert à rien, il faut l'appeller. Tu pourrais appeller cette fonction lors d'un Clic du bouton gauche sur le boutonn "fermer" sur la barre de titres 
> ...

 

Salut mister et merci pour ta traduction  :Very Happy: 

Donc ok, j'ai compris le principe mais question a deux sous :

Comment faire un double clique puisque le premier clique aura deja supprimé la fenetre?  :Laughing: 

Allez a tout'  :Wink: 

----------

## bosozoku

 *_kal_ wrote:*   

> 
> 
> Salut mister et merci pour ta traduction 
> 
> Donc ok, j'ai compris le principe mais question a deux sous :
> ...

 

héhé pas de quoi.

Ah c'est pas bête comme question mais tu as une fonction qui définit le nombre de milisecondes pour faire un double clic : 

ClickTime 200

Un clic suivit d'un autre clic dans moins de 200 ms sera considéré comme un double clic.

----------

## _kal_

oki chef  :Smile: 

----------

## bosozoku

Bon j'ai mis à jour mon thème alors si quelqu'un veut bien tester pour me dire ce qu'il en pense.

A noter qu'il faut emerge perl et libwww-perl pour que l'applet meteo fonctionne.

http://www.stationlinux.org/wiki/wakka.php?wiki=BosoZoku#milk

----------

## yoyo

 *bosozoku wrote:*   

> Bon j'ai mis à jour mon thème alors si quelqu'un veut bien tester pour me dire ce qu'il en pense.
> 
> A noter qu'il faut emerge perl et libwww-perl pour que l'applet meteo fonctionne.
> 
> http://www.stationlinux.org/wiki/wakka.php?wiki=BosoZoku#milk

 Bon, je m'y suis collé (rapidement donc pas trop en profondeur).

J'aime :

- le style : homogène (police, couleurs, formes, icônes) etc.

- un wallpaper par bureau

- l'utilisation des trois boutons de la souris (comme sous e17)

- le dock supérieur avec inclusion des thumbnails

- le dock inférieur avec la météo et le control xmms

- l'accés direct par le menu aux configs du thème

J'aime pas trop :

- la lenteur de la "thumbnailisation" (en gros l'effet "rotate" de mémoire)

- l'ombre du pager qui mets un certain temps à s'afficher/s'ajuster lors du changement de bureau (peut-être à cause de xcompgmr !? D'ailleurs au démarrage de fvwm, mon curseur se transforme en cible et je dois cliquer 2/3 fois pour que le démarrage se termine : j'ai déja eu se genre de comportement à cause de xcompgmr)

- la taille des docks : j'aime bien "maximiser" mon espace de travail" : est-il possible de faire des docks masquables ??

- l'abscence d'xmms-shell (mais c'est un pb de compile donc rien à voir avec ta conf)

- la dépendance perl et libwww-perl (même si la plupart d'entre nous ont déja perl installé sur leur machine)

- le manque de commentaires dans les fichiers de conf (même s'ils ne sont pas "brut de fonderie" comme tu es parti d'une conf vierge j'aurai aimé voir tes commentaires sur les différentes fonctions (parce que se taper les 20 pages du thread fvwm pour retrouver les tenants et aboutissants des fonctions que tu utilises me décourage  :Embarassed:   )

En bref ton thème est super joli et très bien pensé et il m'a donné très envie de me faire un thème perso en reprenant une bonne partie de ta conf (c'est pour ça entre autre que j'aurai voulu voir plus de commentaires  :Rolling Eyes:   ).

Beau boulot !!!

----------

## bosozoku

Merci beaucoup pour ces critiques constructives.

Je vais reprendre quelques mauvais points.

 *Quote:*   

> - la lenteur de la "thumbnailisation" (en gros l'effet "rotate" de mémoire)

 

J'ai mis un Schedule de 1200 mili secondes pour que l'appli est le temps de se charger. Sinon ça fait un thumbnail tout blanc.

Je vais peut être utiliser une fonction que nous à fait connaitre karnevil qui est environs 10fois plus rapide que xwd mais c'est en C je crois (ou en Perl).

 *Quote:*   

> - l'ombre du pager qui mets un certain temps à s'afficher/s'ajuster lors du changement de bureau (peut-être à cause de xcompgmr !? D'ailleurs au démarrage de fvwm, mon curseur se transforme en cible et je dois cliquer 2/3 fois pour que le démarrage se termine : j'ai déja eu se genre de comportement à cause de xcompgmr)

 

Alors pour l'ombre, pas de xcompmgr (passe pas chez moi) alors j'ai demandé a quelqu'un de me bricoler les pixmaps. Ca rend pas très bien mais il devrait le refaire pour que les ombres soient sur le coté. Bref ça devrait passer mieux dans les prochaines mises  à jour. Pour les clics, je viens juste de résoudre ce problème qui m'emmerdait aussi : c'est parce que je lançais plusieurs FvwmEvent et j'ai découvert qu'on pouvait tout mettre dans un seul. Depuis le démarrage nikel !

 *Quote:*   

> - la taille des docks : j'aime bien "maximiser" mon espace de travail" : est-il possible de faire des docks masquables ??

 

Sans aucun problème, tu double clic sur le bouton "maximiser".

 *Quote:*   

> - la dépendance perl et libwww-perl (même si la plupart d'entre nous ont déja perl installé sur leur machine).

 

Ah oui je ferais un beau readme pour indiquer toutes les dépendances, on peut citer feh et scrot aussi...

 *Quote:*   

> - le manque de commentaires dans les fichiers de conf (même s'ils ne sont pas "brut de fonderie" comme tu es parti d'une conf vierge j'aurai aimé voir tes commentaires sur les différentes fonctions (parce que se taper les 20 pages du thread fvwm pour retrouver les tenants et aboutissants des fonctions que tu utilises me décourage  ) 

 

Plus de 30pages ^^

Je vais faire un effort pour décrire explicitement chaque fonction. Comme c'est ma config avec juste un minimum de commentaires je m'y retrouve très facilement.

Au fait je viens d'uploader le theme qui marche bien (sans les clics au démarrage).

----------

## yoyo

 *bosozoku wrote:*   

> Merci beaucoup pour ces critiques constructives.

 On fait ce qu'on peut (partir d'une feuille blanche pour une conf fvwm j'aurai jamais osé) ...   :Mr. Green: 

 *bosozoku wrote:*   

> J'ai mis un Schedule de 1200 mili secondes pour que l'appli est le temps de se charger. Sinon ça fait un thumbnail tout blanc.
> 
> Je vais peut être utiliser une fonction que nous à fait connaitre karnevil qui est environs 10fois plus rapide que xwd mais c'est en C je crois (ou en Perl).

 Ok, je croyais que tu utilisais déja cette technique (qui soit dit arrache tout en terme de réactivité)... Au temps pour moi.

C'est du C et ça utilise imlib (une dépendance de plus pour ton thème  :Razz:  ). Si tu veux que je te passe ma conf pour utiliser ce petit pgm il n'y a aucun pb (c'est pas violent).

 *bosozoku wrote:*   

> Alors pour l'ombre, pas de xcompmgr (passe pas chez moi) alors j'ai demandé a quelqu'un de me bricoler les pixmaps. Ca rend pas très bien mais il devrait le refaire pour que les ombres soient sur le coté. Bref ça devrait passer mieux dans les prochaines mises  à jour. Pour les clics, je viens juste de résoudre ce problème qui m'emmerdait aussi : c'est parce que je lançais plusieurs FvwmEvent et j'ai découvert qu'on pouvait tout mettre dans un seul. Depuis le démarrage nikel !

 Impecc ...

 *bosozoku wrote:*   

> Sans aucun problème, tu double clic sur le bouton "maximiser".

 Le bouton en haut sur la droite de la fenêtre ( "+" je crois); ben il maximise mais sans passer par dessus les docks, du coup je trouve que mes fenêtres ne sont pas assez grandes.

 *bosozoku wrote:*   

> Je vais faire un effort pour décrire explicitement chaque fonction. Comme c'est ma config avec juste un minimum de commentaires je m'y retrouve très facilement.

 C'est clair que c'est toujours plus facile quand on le fait soi-même (quoique reprendre un pgm qu'on n'a pas touché pendant 6mois mal commenté c'est pas la joie ...).

 *bosozoku wrote:*   

> Au fait je viens d'uploader le theme qui marche bien (sans les clics au démarrage).

  :Very Happy: 

----------

## bosozoku

 *Quote:*   

> Le bouton en haut sur la droite de la fenêtre ( "+" je crois); ben il maximise mais sans passer par dessus les docks, du coup je trouve que mes fenêtres ne sont pas assez grandes. 

 

Oui ce bouton. Un simple clic maximise sans cacher les docks, un double clic maximise completement.

Regarde : 

 *Quote:*   

> 
> 
> Mouse 1 4 A MaximizeFunc
> 
> Mouse 3 4 A VertMaximizeFunc
> ...

 

Donc tu as aussi le bouton droit qui maximise en verticale.

edit : j'ai pas tout fait moi même. J'ai repris les pixmaps de http://chwombat.net (modifiés quand même), pas mal de fonctions à droite et à gauche. La météo par exemple, il faut dire merci à Pem !

----------

## yoyo

 :Shocked:   :Shocked:   :Shocked: 

La méga classe !!!

 :Cool:   :Cool:   :Cool: 

Comme je l'ai dit, j'ai fait un test rapide de ton thème => je ne suis pas aller fouiller en profondeur dans tes configs. Je n'ai donc certainement pas fait le tour de toutes les fonctionnalités que tu as inclues ...

edit : oui, j'avais regardé les thèmes de Pem (qui sont assez beaux également) depuis ton wiki. Mais je ne les ai pas testés ...

----------

## bosozoku

 *yoyo wrote:*   

>   
> 
> La méga classe !!!
> 
>   
> ...

 

Content que ça te plaise héhé.

----------

## yoyo

Bon, continuons dans les tests : j'ai vu qu'il y a une fonction qui permet de centrer les fenêtres. Comment s'utilise-t-elle ?? (vu : dans les bindings).

Du coup, ça aurait été pas mal de l'inclure dans le menu des fenêtres (ou clic droit sur minimiser par exemple).

Dans le même ordre d'idée, je trouve qu'il manque cruellement d'une fonction "envoyer vers" pour déplacer les fenêtres d'un bureau à l'autre.

Une dernière chose, C'est quoi l'action "Mini Icone" dans le menu des fenêtres (vu :dans les fonctions; je pense que c'est ma modif thumbnail qui fait foirer la chose  :Confused:   )??

L'icône weatherforecast ne fonctionne plus (ainsi que le menu). L'icône avec les "??" s'affiche correctement au début puis elle disparaît. Je soupçonne un oubli dans le passage de la version 07062005 à la version 08062005.

Dernière chose : le "alt + clic droit" pour redimensionner une fenêtre ne fonctionne pas et je ne vois pas pourquoi (il est dans le bindings pourtant).

Sinon, j'ai adapté la config xmms à xmms-shell si cela intéresse quelqu'un. J'ai aussi ajouter le support "thumb" (le petit soft en C et utilisant imlib dont il est question plus haut) dans la config de thmubnail.

Je continue mon exploration/personnalisation du thème.  :Wink: 

Enjoy !

----------

## bosozoku

Elle fonctionne avec ctrl + alt + c :

```
Key c A CM CenterWindow Current
```

CM = ctrl + alt.

Le envoyer vers, je fais tout de suite ; en même temps je vais rajouter la fonction CenterWindow dans le menu des fenêtres.

L'objet "Mini icône" permet de générer un nouveau thumbnail pour le pager. J'appelle GenerateMiniIcon à l'ouverture d'une fenêtre, lorsque tu maximise mais ça ne marche pas pour Resize. Du coup si ça bug tu clic sur Mini icone et c'est bon. Enfin c'est du gadget pour corriger un bug en fait. Genre tu ouvres firefox, le thumbnail est généré. Tu changes de site et dans le pager, firefox à toujours la même apparence (de l'ancien site). 

Heu pour l'icone du weather, ça marche très bien chez moi. Pense bien à installer perl et  libwww-perl. En effet l'image ?? est mise par defaut. Et au bout de 60secondes il actualise alors si le script marche pas l'icone disparait (enfin je pense que c'est ça).

Pour le alt+clic droit j'ai pas reussi à reproduirele comportement du Move. Donc alt + clic droit. Tu relaches le clic et la ça redimmensione. Ensuite tu clic avec le bouton gauche pour valider. Pas très intituif donc si tu arrives à corriger.

Ouep je viens aussi d'utiliser le prog en C mais je note pas d'amélioration dans la pratique puisque j'utilise pas de thumbnails. Enfin juste pour la pager et ça on s'en fout un peu que ça mette 1 seconde ou 100milisecondes puisque je met un sleep de 1200ms sur la fonction alors ...

----------

## bosozoku

Bon j'ai rajouté un menu qui peut envoyer une app sur un autre desk.

J'aimerais que le bureau ou se trouve l'application n'apparaisse pas dans le menu. 

Je sais qu'il va falloir utiliser $[desk.n] mais ça sent le scripting avec une petite condition et à part le php je suis incapable de faire ça  :Sad: 

Une piste ? Je pense que faire ça en bash serait faisable non ?

On récupère la sortie du script avec PipeRead et dans le script une condition : on affiche les desk 0 à 3 sauf celui qui correspond à $[desk.n].

----------

## Darkael

Un exemple:

```

#config fvwm

DestroyMenu EnvoyerVers

AddToMenu EnvoyerVers

+ DynamicPopupAction Function BuildEnvoyerVers

DestroyFunc BuildEnvoyerVers

AddToFunc BuildEnvoyerVers

+ I DestroyMenu recreate EnvoyerVers

+ I AddToMenu EnvoyerVers

+ I PipeRead '/home/gael/test.sh EnvoyerVers $[desk.n] 6'

#remplacer 6 par le nombre de bureaux

AddToFunc WindowOps

...

+ I Popup EnvoyerVers

```

Le script:

```

#!/bin/bash

echo AddToMenu $1

if [[ $2 -gt 0 ]]; then

        for i in `seq 0 $(($2-1))`; do

            echo + \"Bureau $i\" MoveToDesk 0 $i;

        done

fi

if [[ $2 -lt $3 ]]; then

    for i in `seq $(($2+1)) $3`; do

        echo + \"Bureau $i\" MoveToDesk 0 $i;

    done

fi

```

Bon c'est fait à la va vite, je vais essayer de simplifier ça...

----------

## bosozoku

Ca marche parfaitement ! Impressionant. Va falloir que je me  mette au bash, c'est indispensable  :Smile: 

Un petit détail : 

```
echo + \"Bureau $i + 1 \" MoveToDesk 0 $i; 
```

Je ne sais pas si c'est autorisé de faire + 1 ?

edit : ça marche --> 

```
echo + \"Bureau $(($i+1))\" MoveToDesk 0 $i;

```

Génial, parfait le script !

edit2 : tu peux m'expliquer cette partie please ?

```
if [[ $2 -gt 0 ]]; then

        for i in `seq 0 $(($2-1))`; do 

```

 et 

```
if [[ $2 -lt $3 ]]; then

    for i in `seq $(($2+1)) $3`; do 
```

Je ne comprend pas.

----------

## Darkael

```
if [[ $2 -gt 0 ]]; then

```

veut dire "si $2 est plus grand que 0" ($2 est ici égal à $[desk.n]))

```

        for i in `seq 0 $(($2-1))`; do 

```

veut dire "pour i allant de 0 à $[desk.n] - 1", et si on vérifie pas que $[desk.n] est plus grand que 0, ça fait foirer le seq. Même principe pour la suite.

----------

## DidgeriDude

Salut à vous.

Bosozoku, je ne sais pas si ça peut t'être utile mais voici mes bindings et fonctions en ce qui concerne le resize et le move des fenêtres :

```
####################################

# ResizeFunc -> pour redimensionner les fenêtres

# MoveFunc -> pour bouger les fenêtres

# MoveShadeFunc -> gère les évènements sur la barre de titre

#-----------------------------------------------------

# "M" pour faire cela lorsque l'on maintient appuyé et qu'on bouge la souris

# "D" pour faire cela lorsque l'on double-clique

###################################

DestroyFunc ResizeFunc

AddToFunc ResizeFunc "M" Resize

DestroyFunc MoveFunc

AddToFunc MoveFunc   "M" Move

DestroyFunc MoveShadeFunc

AddToFunc MoveShadeFunc

+ I Raise

+ M Move

+ D WindowShade

# BINDINGS

# Clic gauche sur les bords et coins : Redimensionne la fenêtre

# Bouton gauche sur le titre : Bouge la fenêtre

# Double clic gauche sur le titre : Enroule la fenêtre

# Ctrl + Alt + bouton gauche sur la fenêtre : Bouge la fenêtre

# Alt + bouton gauche sur la fenêtre : Redimensionne la fenêtre

# Clic milieu sur titre, bords et coins : Passe la fenêtre au 1er ou dernier plan (switch)

# Ctrl + Alt + molette sur fenêtre, bords et coins : Change l'opacité (Script de Gulivert)

Mouse 1     FS      A   ResizeFunc

Mouse 1     T       A   MoveShadeFunc

Mouse 1     W       CM  MoveFunc

Mouse 1     W       M   ResizeFunc

Mouse 2     TSF     A   RaiseLower

Mouse 4     WSF     CM   Exec exec $[scripts_dir]/settrans.pl $[w.id] -

Mouse 5     WSF     CM   Exec exec $[scripts_dir]/settrans.pl $[w.id] +
```

En ce qui concerne le redimensionnement des fenêtres, il est malheureusement nécessaire de dépasser de celle-ci avec le curseur pour que celle-ci change de taille. Un Resize à la E17, ce serait mieux, mais bon...

En parlant de E17, je vais sûrement changer ces bindings pour que :

Alt + bouton gauche -> Bouge la fenêtre

Alt + bouton milieu -> Redimensionne la fenêtre.

Mais c'est des détails...

Et donc Bosozoku, le Move des fenêtres avec ces bindings est nickel et instantanné en gardant le bouton appuyé !

@KarnEvil : La ligne "AddToMenu $1" n'est-elle pas redondante avec le "+ I AddToMenu EnvoyerVers" qui est juste avant l'appel de ton script ? (Possibilité d'être une question bête...)

Et pour le script, on pourrait le simplifier avec sed qui vire $2 de la liste et permet de faire l'économie des 2 tests mais c'est un détail avec les vitesses de proc actuelles (déformation due à des programmes en Pascal sous 386SX25...) :

```
for i in $(seq 0 $3 | sed '/'$2'/d')

do

     echo + \"Bureau $i\" MoveToDesk 0 $i

# ou echo + \"Bureau $(($i+1))\" MoveToDesk 0 $i

done
```

Last edited by DidgeriDude on Thu Jun 09, 2005 9:34 am; edited 1 time in total

----------

## yoyo

Bon cet histoire de move/resize m'a intrigué; voici donc les bindings de la config de gulivert qui fonctionnaient très bien il me semble ("alt + clic droit" pour redimensionner une fenêtre, alt + clic gauche" pour la déplacer).

Je mets ça sans vraiment saisir le sens de ces bindings ...

```
#### Window, Frame, Side, Others

Mouse 1     FS      A   ResizeFunc

Mouse 2     W       C   ResizeFunc

Mouse 1     W       M   MoveFunc

Mouse 3     W       M   ResizeFunc

Mouse 3     TSIF    A   RaiseLower

Mouse 3     T       A   Menu MenuWindowOps

AddToFunc ResizeFunc "M" Resize

AddToFunc MoveFunc   "M" Move
```

Mais je viens de tester et cela ne fonctionne pas (je dois manquer quelque chose).

Ce qui est bizarre c'est que j'ai ajouté un "Pick Resize" dans le menu "MenuWindowOps" et qu'il fonctionne bien ... D'ailleurs bosozoku, si tu avais une icône pour le Redimensionner de ce menu ça serait bien cool.

Enfin, le comportement est le même que celui décrit par DidgeriDude : "il est malheureusement nécessaire de dépasser de celle-ci avec le curseur pour que celle-ci change de taille."

----------

## Darkael

 *DidgeriDude wrote:*   

> 
> 
> @KarnEvil : La ligne "AddToMenu $1" n'est-elle pas redondante avec le "+ I AddToMenu EnvoyerVers" qui est juste avant l'appel de ton script ? (Possibilité d'être une question bête...)
> 
> 

 

ouais, surement, j'ai pas fait très attention  :Very Happy: 

 *Quote:*   

> 
> 
> Et pour le script, on pourrait le simplifier avec sed qui vire $2 de la liste et permet de faire l'économie des 2 tests mais c'est un détail avec les vitesses de proc actuelles (déformation due à des programmes en Pascal sous 386SX25...) :
> 
> ```
> ...

 

En fait tu peux même tout faire avec sed:

```

seq 0 $3 | sed -e "#^$2$#d" -e "s#.*#\"Bureau &\" MoveToDesk 0 &#"

```

----------

## bosozoku

Je viens juste de réinstaller Fvwm, je vous redis tout ça pour les bindings !

edit : bon la ça remarche ! Bizarre peut être ma souris qui merdait... Enfin bref merci  :Smile: 

J'en ai profiter pour rajouter un petit comportement à la windows = double clic sur la title bar = maximize fullscreen.

----------

## DidgeriDude

Arf KarnEvil, désolé mais mes connaissances de sed ne sont pas autant étendues...  :Wink: 

Je savais sed puissant mais là chui un peu à l'ouest.

Mais bon, ça va me faire un peu de lecture cet aprem : man sed  :Laughing: 

----------

## Enlight

 *bosozoku wrote:*   

> Je viens juste de réinstaller Fvwm, je vous redis tout ça pour les bindings !
> 
> edit : bon la ça remarche ! Bizarre peut être ma souris qui merdait... Enfin bref merci 
> 
> J'en ai profiter pour rajouter un petit comportement à la windows = double clic sur la title bar = maximize fullscreen.

 

Nooooooooooooooooooooooooooooooooooon je m'énerve tous les jours parceque j'essaye encore et toujours d'enrouler mes fenêtres et quelles se maximisent sous cette connerie d'OS, tu vas pas changer tes bindings pour ceux là quand même, hein dit tu va pas le faire, c'était une blague?????!!!!

----------

## yoyo

 *Enlight wrote:*   

>  *bosozoku wrote:*   edit : bon la ça remarche ! Bizarre peut être ma souris qui merdait... Enfin bref merci 
> 
> J'en ai profiter pour rajouter un petit comportement à la windows = double clic sur la title bar = maximize fullscreen. Nooooooooooooooooooooooooooooooooooon je m'énerve tous les jours parceque j'essaye encore et toujours d'enrouler mes fenêtres et quelles se maximisent sous cette connerie d'OS, tu vas pas changer tes bindings pour ceux là quand même, hein dit tu va pas le faire, c'était une blague?????!!!!

 Ben un coup de roulette pour enrouler/dérouler la fenêtre c'est quand même vachement mieux je trouve.

@bosozoku : tu as modifié tes bindings (par rapport à la conf sur le wiki) ??

----------

## bosozoku

Yoyo : je fais encore quelques modifs comme contôle xmms avec xmms-shell ( :Very Happy: ) et je rajoute plein de commentaires. Je mets à jour sur le wiki dans 2heures je pense  :Smile: 

----------

## yoyo

 *bosozoku wrote:*   

> Yoyo : je fais encore quelques modifs comme contôle xmms avec xmms-shell () 

 Ben ça, c'est déja fait; je peux te les filer si tu veux.

----------

## bosozoku

 *yoyo wrote:*   

> Ben ça, c'est déja fait; je peux te les filer si tu veux.

 

Trop tard  :Smile: 

----------

## DidgeriDude

Désolé pour ma question bête mais xmms-shell, ça apporte quoi au fond ?

----------

## bosozoku

 *DidgeriDude wrote:*   

> Désolé pour ma question bête mais xmms-shell, ça apporte quoi au fond ?

 

Tu peux controler xmms via lui meme : xmms -p; xmms -f etc.

xmms-shell fait la meme chose en beaucoup mieux  :Smile: 

----------

## Apsforps

 *yoyo wrote:*   

> Ben un coup de roulette pour enrouler/dérouler la fenêtre c'est quand même vachement mieux je trouve.

 

Oui, à part quand la souris n'a pas de roulette... (sisi ça existe encore, des trucs à trois boutons  :Razz: )

----------

## bosozoku

Bah dans ce cas tu as toujours le menu de la fenêtres et "Enrouler"  :Smile: 

Bon voila j'upload le theme. Pas grand chose de changé mais pleins de petits bugs corrigés !

----------

## bosozoku

J'ai fait un petit message d'accueil au démarrage, z'en pensez quoi ?

Arf j'ai plus d'idées...

----------

## bosozoku

Bonjour, 

j'ai des problèmes avec les décorations de fenêtre. J'avais tendance à prendre une config existante et juste changer le nombre de boutons ou bien changer les pixmaps. je veux la faire moi même mais je comprend rien au man...

Déja quelle est la différence entre AddButtonStyle et ButtonStyle (AddTitleStyle et TitleStyle) par exemple ?

J'ai fait ça déja : 

```
DestroyDecor OsX

AddToDecor Osx

+ TitleStyle TiledPixmap title-active5.png -- flat

+ TitleStyle TiledPixmap title-inactive5.png -- flat

+ ButtonStyle 5 ActiveUp (Pixmap max-i.png) \

ActiveDown (Pixmap max-d.png) \

Inactive (Pixmap button.png)

+ ButtonStyle 3 ActiveUp (Pixmap min-i.png) \

ActiveDown (Pixmap min-d.png) \

Inactive (Pixmap button.png)

+ ButtonStyle 1 ActiveUp (Pixmap clo-i.png) \

ActiveDown (Pixmap clo-d.png) \

Inactive (Pixmap button.png)

+ ButtonStyle 2 ActiveUp (Pixmap men-i.png) \

ActiveDown (Pixmap men-d.png) \

Inactive (Pixmap men-a.png)

+ ButtonStyle UseTitleStyle 

+ ButtonStyle All -- flat
```

Ca passe pas trop mal mais la title bar ne passe pas en dessous des boutons (qui sont transparents).

petite image : http://img116.echo.cx/img116/3315/titlebar6zy.png

edit : j'ai trouvé, je m'étais trompé --> c'est pas + ButtonStyle UseTitleStyle mais + ButtonStyle All -- UseTitleStyle

----------

## yoyo

Une question : est-il possible de supprimer certains bindings (ou tous) quand le focus est sur une fenêtre spécifique ??

----------

## bosozoku

 *yoyo wrote:*   

> Une question : est-il possible de supprimer certains bindings (ou tous) quand le focus est sur une fenêtre spécifique ??

 

Heu oui ça doit être possible mais je sais pas trop comment.

----------

## Darkael

 *yoyo wrote:*   

> Une question : est-il possible de supprimer certains bindings (ou tous) quand le focus est sur une fenêtre spécifique ??

 

Je dirais avec FvwmEvent, quand l'évènement focus est déclenché sur la fenêtre en question tu lances une fonction qui enlève certains bindings (c'est "Key Tab A M -" par exemple pour enlever un binding, mais je sais pas si on peut tous les enlever en un coup)

Après faut écrire une fonction qui remet les bindings quand la fenêtre n'a plus le focus de la même façon... c'est pas évident à faire dans l'ensemble mais c'est faisable.

----------

## bosozoku

Quelqu'un se souvient de l'astuce pour replacer correctement les thumbnails une fois qu'on avait cliquer sur l'un d'entres eux ? 

C'était un truc du genre Replace All mais je me souviens plus du tout et je retrouve pas...

----------

## La Saucisse

Bonjour tout le monde,

J'ignore si je fais bien d'ecrire ici ou si je dois ouvrir un nouveau sujet (mais le precedent sujet ayant 30 pages je me suis dit...). Je suis neophyte sur fvwm et je rencontre quelques pbs que voici :

J'utilise la fonction thumbnail de taviso , mon pb est au survol de ces icones. En effet j'aimerai qu'elles reagissent en devenant net (elles sont transparentes) au survol de la souris mais j'ignore comment faire. J'ai consulté le fichier de gulliver mais je suis incapable d'isoler ce qui fait ceci.

De plus j'aimerai que les applis iconifiées n'apparaissent pas dans le pager. Je trouve ça laid de voir une ribambelle de petits rectangles sur mes bureaux. Pensant comprendre la logique j'ai utilisé un : 

Style Icon WindowSkipList (mais manifestement ce n'est pas ça)

Sur certains screenshots on voit l'heure, je trouve ça genial, quel est le module qui gere cela ?

Enfin je suis incapable de mettre en place la moindre politique de Focus, j'ai trouvé ceci :

http://fvwm.lair.be/viewtopic.php?t=414  sur le sujet. Si cela interesse du monde (en plus de moi) je me propose de faire une traduction/synthese a mettre eventuellement sur le wiki (si c'est un sujet estimé pertinent).

ps: désolé bosozoku de debarqué sans donner la moindre reponse a tes questions.

bonne soirée

----------

## DidgeriDude

@Bosozoku : je pense que c'est cela que tu cherches :

```
DestroyFunc ThumbnailAndRearrange

AddToFunc ThumbnailAndRearrange

+ I All (CurrentPage, Iconic) PlaceAgain Icon

+ I Thumbnail

DestroyFunc DeIconifyMoveRearrangeFunc

AddToFunc DeIconifyMoveRearrangeFunc

+ C DeThumbnail

+ C All (CurrentPage, Iconic) PlaceAgain Icon

+ M Move

(...)

Mouse 1     6       A   ThumbnailAndRearrange

(...)

Mouse 1     I       A   DeIconifyMoveRearrangeFunc
```

@La Saucisse : Tout d'abord bienvenue.

Ce que tu cherches à faire est simplement lié à la focus policy que tu as choisie pour ton environnement. L'effet que tu décris est dû au fait que l'icône prend le focus et les colorsets font le reste (la rendent opaque). Donc si tu es en MouseFocus, cet effet est automatique. Si comme moi, tu es en ClickToFocus, alors il y a une astuce pour récupérer ce comportement ; en effet, il est possible, dans FVWM, de définir une focus policy pour chaque fenêtre. Donc, à la fin de la fonction Thumbnail de Taviso, tu rajoutes

```
+ I ThisWindow (Iconic) WindowStyle MouseFocus
```

et tu rajoutes

```
+ I ThisWindow (!Iconic) WindowStyle ClickToFocus

+ I Focus
```

dans la fonction DeThumbnail (ou dans tout autre fonction que tu utilises pour déiconifier) de manière à récupérer la focus policy globale (changer ClickToFocus en ta focus policy perso).

Pour info, voici mes fonctions :

```
SetEnv icons_size 128

DestroyFunc Thumbnail

AddToFunc Thumbnail

+ I Raise

+ I SetEnv Icon-$[w.id] $[w.iconfile]

+ I ThisWindow (!Shaded Iconifiable !Iconic) PipeRead \

    "xwd -silent -id $[w.id] | convert -scale $[icons_size]x$[icons_size] -frame 1x1 \

    -mattecolor black -quality 0 xwd:- png:$[FVWM_USERDIR]/icon.tmp.$[w.id].png \

    && echo WindowStyle IconOverride, Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png, StaysOnBottom \

    || echo Nop"

+ I TestRc (Match) Test (f $[HOME]/icons/$[w.miniiconfile]) PipeRead "composite -geometry +2+4 \

    $[HOME]/icons/$[w.miniiconfile] $[FVWM_USERDIR]/icon.tmp.$[w.id].png \

    $[FVWM_USERDIR]/icon.tmp.$[w.id].png && echo Nop \

    || echo Beep"

+ I Iconify

+ I ThisWindow (Iconic) WindowStyle MouseFocus

DestroyFunc DeThumbnail

AddToFunc DeThumbnail

+ I Iconify

+ I ThisWindow (!Iconic) WindowStyle ClickToFocus

+ I Focus

+ I PipeRead "echo WindowStyle Icon \\$\\[Icon-$[w.id]\\]"

+ I UnsetEnv Icon-$[w.id]

+ I Exec exec rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png
```

Pour les autres questions, désolé, je ne sais pas  :Smile: 

----------

## bosozoku

Merci ça marche très bien  :Smile: 

----------

## bosozoku

KarnEvil avait fait un petit script en bash pour le changement de desk (le desk courant n'apparaît pas dans le menu). J'aimerais adapter ce script pour les pages mais la syntaxe est différente. Il existe ces variables :  $[desk.pagesx] $[desk.pagesy] qui indiquent les coordonnées en x et y de la page courante.

Exemple : si j'ai 3x3 pages et que je suis dans celle du milieu, les deux var du dessus me renvoient  -> 1 1 (la premiere page en haut à gauche = 0 0).

Sachant qu'il faut afficher dans le menu par exemple "Envoyer vers la page 5" mais la syntaxe sera alors "MoveToPage 1 1".

Ca doit être assez dur à mettre en place je pense, enfin pour moi en tout cas, alors je vous demande de l'aide  :Smile: 

Le script pour les desks :

```
#!/bin/bash

echo AddToMenu $1

if [[ $2 -gt 0 ]]; then

        for i in `seq 0 $(($2-1))`; do

            echo + \"Bureau $(($i+1))\" MoveToDesk 0 $i;

        done

fi

if [[ $2 -lt $3 ]]; then

    for i in `seq $(($2+1)) $3`; do

        echo + \"Bureau $(($i+1))\" MoveToDesk 0 $i;

    done

fi
```

Et la fonction :

```
DestroyFunc BuildSendTo

AddToFunc BuildSendTo

+ I DestroyMenu recreate SendTo

+ I AddToMenu SendTo

+ I PipeRead '$[scripts]/desk.sh SendTo $[desk.n] 3' 
```

($[desk.n] renvoie le numéro du desk courant).

----------

## Darkael

C'est un peu plus difficile en effet mais faisable. Je donnerais un exemple quand j'aurais le temps (si personne ne le fait avant).

----------

## DidgeriDude

C'est quoi ta config en termes de nombre de pages et nombres de bureaux, de dimensions et tout et tout ?

Sinon, retour sur le script pour les bureaux :

KarnEvil avait proposé ce script, qu'il avait ensuite modifié en une unique commande sed :

```
#!/bin/sh

seq 0 $3 | sed -e "#^$2$#d" -e "s#.*#\"Bureau &\" MoveToDesk 0 &#"
```

J'ai testé, et ça ne marche pas ! (Heu désolé KarnEvil  :Embarassed:  )

En fait c'est la partie -e "#^$2$#d" qui semble ne pas aller. En effet :

```
~ $ seq 0 5 | sed -e "#2#d"

0

1

2

3

4

5
```

Ça semble lié au fait que la commande seq ne renvoie pas réellement chaque nombre de la liste sur une ligne distincte, c'est juste un formatage de sortie ! Et ça marche avec la boucle for car lui, il utilise vraiment une ligne nouvelle pour la variable incrémentée (enfin, c'est ce principe-là que j'ai cru comprendre...).

Je propose donc ceci qui a l'air de fonctionner :

```
#!/bin/sh

seq 0 $3 | grep -v $2 | sed -e 's#.*#+ \"Bureau &\" MoveToDesk 0 &#'
```

Par contre, ça pose un problème si tu veux que tes numéros de bureaux partent de 1 et non de 0 !

J'ai pas mal potassé et j'ai été incapable de trouver un moyen d'incrémenter les variables &, \1, etc. utilisées par sed car il les considère comme des chaînes de caractères. Alors, awk à la rescousse, pour un script qui a l'air de fonctionner :

```
#!/bin/sh

seq 0 $3 | grep -v $2 | awk '{printf "\"+ Bureau %s\" MoveToDesk 0 %s\n", $1, $1}'

# ou     seq 0 $3 | grep -v $2 | awk '{printf "\"+ Bureau %s\" MoveToDesk 0 %s\n", $1 + 1, $1}'

```

Le $1 + 1 dans la commnde awk équivaut à l'option --non-decimal-data de gawk qui implicitement transforme les chaînes de caractères en nombres si besoin (en fait j'ai pas tout bien compris cette partie du User Guide, mais ça marche ! Alors...)

Bon ça résout pas le problème des pages mais ça allège le script pour les bureaux qui d'ailleurs maintenant peut être placé dans un PipeRead vu qu'il n'y a plus qu'une ligne...

A voir si c'est réellement utile maintenant.... En tout cas, ça l'a été pour moi qui ne connaissait pas du tout awk il y a seulement quelques heures...  :Wink: 

----------

## Darkael

 *DidgeriDude wrote:*   

> C'est quoi ta config en termes de nombre de pages et nombres de bureaux, de dimensions et tout et tout ?
> 
> Sinon, retour sur le script pour les bureaux :
> 
> KarnEvil avait proposé ce script, qu'il avait ensuite modifié en une unique commande sed :
> ...

 

En fait si ça marche, si tu remplaces les # par des /... je sais pas pourquoi ça marche pas avec des #, je pensais qu'on pouvait mettre ce qu'on voulait comme caractère. Et je sais encore moins pourquoi j'ai posté ça sans tester  :Confused: 

 *Quote:*   

> 
> 
> Par contre, ça pose un problème si tu veux que tes numéros de bureaux partent de 1 et non de 0 !
> 
> J'ai pas mal potassé et j'ai été incapable de trouver un moyen d'incrémenter les variables &, \1, etc. utilisées par sed car il les considère comme des chaînes de 

 

ça effectivement je pense pas que ce soit possible avec sed (en fait si, mais c'est trop compliqué)

----------

## DidgeriDude

KarnEvil, je pense que ça ne marche pas avec des # pour une raison très simple.

En effet, dans le cas de sed -e '#......#d', le mini script qu'on utilise commence par un # et est donc interprété comme un commentaire de la même manière que ceux présents dans un fichier de commandes sed. Cette commande est donc purement et simplement ignorée !!!

Donc pour les mini scripts du style 's#.......#......#', il n'y a pas de problème !

Voilà mon interprétation, dont j'avoue m'être presque convaincu. T'en penses quoi ?

Sinon, même si c'est chaud, je veux bien connaître le principe d'incrémentation avec juste la commande sed... car j'y ai passé des heures !!!

EDIT : Intégration du script pour les changements de bureaux dans un PipeRead :

```
DestroyMenu EnvoyerVers

AddToMenu EnvoyerVers

+ DynamicPopupAction Function BuildEnvoyerVers

DestroyFunc BuildEnvoyerVers

AddToFunc BuildEnvoyerVers

+ I DestroyMenu recreate EnvoyerVers

+ I AddToMenu EnvoyerVers

+ I PipeRead 'seq 0 5 | grep -v $[desk.n] | awk \'{printf \"+ \\"Bureau %s\\" MoveToDesk 0 %s\\n\", $$$1 + 1, $$$1}\''
```

Je ne l'avais pas mis avant car je ne connaissais pas tous les changements à effectuer pour les échappements...Last edited by DidgeriDude on Fri Jun 17, 2005 2:21 pm; edited 1 time in total

----------

## Darkael

 *DidgeriDude wrote:*   

> KarnEvil, je pense que ça ne marche pas avec des # pour une raison très simple.
> 
> En effet, dans le cas de sed -e '#......#d', le mini script qu'on utilise commence par un # et est donc interprété comme un commentaire de la même manière que ceux présents dans un fichier de commandes sed. Cette commende est donc purement et simplement ignorée !!!
> 
> Donc pour les mini scripts du style 's#.......#......#', il n'y a pas de problème !
> ...

 

ça a l'air plausible

 *Quote:*   

> 
> 
> Sinon, même si c'est chaud, je veux bien connaître le principe d'incrémentation avec juste la commande sed... car j'y ai passé des heures !!!

 

J'ai trouvé ça comme script sed:

```

#!/usr/bin/sed -f

/[^0-9]/ d

# replace all leading 9s by _ (any other character except digits, could

# be used)

:d

s/9\(_*\)$/_\1/

td

# incr last digit only.  The first line adds a most-significant

# digit of 1 if we have to add a digit.

#

# The tn commands are not necessary, but make the thing

# faster

s/^\(_*\)$/1\1/; tn

s/8\(_*\)$/9\1/; tn

s/7\(_*\)$/8\1/; tn

s/6\(_*\)$/7\1/; tn

s/5\(_*\)$/6\1/; tn

s/4\(_*\)$/5\1/; tn

s/3\(_*\)$/4\1/; tn

s/2\(_*\)$/3\1/; tn

s/1\(_*\)$/2\1/; tn

s/0\(_*\)$/1\1/; tn

:n

y/_/0/

```

----------

## DidgeriDude

Hum, t'as raison, c'est plutôt pas facile. J'avais pensé à écrire un script qui, comme celui-là, remplaçait le nombre par son suivant mais c'est pas propre comme avec la commande awk. De plus, il ne marche qu'avec les chiffres. Impossible de l'utiliser comme "incrémenteur" universel...

D'ailleurs, je me suis fais un script sed qui transforme la première lettre de chaque mot d'une phrase ou d'un nom de fichier en majuscule. En gros, c'est 26 lignes du type : s/ a/ A/g. Et je ne trouve pas ça propre du tout non plus. J'ai pas mal cherché aussi, alors peut-être que t'as une astuce en 1 seul mini-script en ligne... Sinon, je vais voir du côté de awk...

Sinon question : un type caractère et un type chaîne, c'est pas la même chose je crois ? car avec awk, avant la commande que j'ai donné plus haut, j'avais testé strtonum($1) et impossible d'arriver à quoi que ce soit ! Peut-être cette commande n'attend-elle q'un type chaîne et rien d'autre... Heuu, une idée ?

@Bosozoku : je suis en train de me pencher sur ton histoire de MoveToPage... A l'aide de calculs modulo 3, ça devrait aller.

Sinon, plus précisément c'est quoi que tu veux ?

1) Un menu du type EnvoyerVers ci-dessus avec les pages 1 à 9 sauf celle active, donc avec la seule possibilté pour la fenêtre de reste sur le même bureau ; ou

2) Une amélioration du menu EnvoyerVers avec pour chacun un sous-menu vers les pages 1 à 9 (sauf  celle active pour le bureau actif)Last edited by DidgeriDude on Fri Jun 17, 2005 3:47 pm; edited 1 time in total

----------

## bosozoku

Merci Tortue Geniale  :Laughing: 

Au fait connaissez vous un équivalent de "AnimatedMove" pour le curseur de la souris ? J'aimerais bien l'utiliser  pour la fonction WindowList histoire de reproduire l'effet du alt+tab de E17.

----------

## DidgeriDude

Euh j'ai vu un truc du genre il y a quelques temps, une histoire de mettre le curseur au centre de la fenêtre qui chope le focus. Je crois que ça avait un rapport avec la mini console à la quake... A retrouver...

----------

## bosozoku

 *DidgeriDude wrote:*   

> Euh j'ai vu un truc du genre il y a quelques temps, une histoire de mettre le curseur au centre de la fenêtre qui chope le focus. Je crois que ça avait un rapport avec la mini console à la quake... A retrouver...

 

Tu dois surement parler de WarpToWindow, ça permet de bouger le curseur sur une fenetre, mais j'aimerai le faire de manière animée et je sais pas si c'est possible...

----------

## Darkael

Y'a pas de fonctions par défaut pour ça je pense, mais c'est possible je pense de faire un petit script qui utilise CursorMove.

----------

## bosozoku

 *KarnEvil wrote:*   

> Y'a pas de fonctions par défaut pour ça je pense, mais c'est possible je pense de faire un petit script qui utilise CursorMove.

 

Effectivement pas de fonction native mais avec un peu de bricoloage :

```
PipeRead 'for ((x=1;x<100;x++)); do echo WindowId root WarpToWindow $$((($[vp.width]/100)*$$x))p $$((($[vp.height]/100)*$$x))p;sleep 0.01;done'

```

Mettez ça dans FvwmConsole, c'est marrant (merci taviso). Enfin bon c'est pas aussi bien que AnimatedMove  :Sad: 

edit: je pense que ça serait pas mal de créer un patch pour ça !

Faut trouver comment AnimatedMove fonctionne (un peu expliqué dans le man mais bon) et remplacer ce qu'il faut par XGrabPointer().

Je ne sais pas du tout comment faire mais ça me tenterai bien d'essayer.

----------

## TTK

Salut

Je pige pas. J'ai téléchargé le fichier du theme milk, et installé sur un compte vierge.

Une fois X lancé, ça grignotte un peu, apparait un carré blanc, centré, occupant la moitié de la surface de mon écran, et sans le bord inférieur. La machine se bloque comme ça, et plus rien ne répond. Poweroff avec le bouton on/off et l'acpi !

Si je lance un gkrellm juste avant fvwm dans le .xinitrc, je vois que le CPU est bloqué à fond.

Pourtant le disque ne tourne pas.

Il doit me manquer un soft !

Y-a-t-il un fichier log ? Une option debug à passer à fvwm ? Je ne vois rien dans le man ..

Merci pour le boulot

----------

## bosozoku

Tu parles de mon thème ? Essaie de regarder dans le fichier ~/.xinit-errors, installe également fbsetbg si tu ne l'as pas déja.

----------

## TTK

 *bosozoku wrote:*   

> Tu parles de mon thème ?

 

Yesss ..

 *Quote:*   

> Essaie de regarder dans le fichier ~/.xinit-errors

 

Je n'ai pas ce fichier ..

 *Quote:*   

> installe également fbsetbg si tu ne l'as pas déja.

 

Désolé de faire le boulet, mais c'est dans quel ebuild ? Je trouve pas dans eix ...

Sinon j'ai commenté la ligne

```
*IntroButtons: (520x420, Swallow StartMSG `FvwmScript $[scripts]/StartMSG`)
```

dans intro_buttons. Ca va un peu plus loin, j'ai la toolbar du bas, mais ça se coince juste après.

Tshaw

----------

## bosozoku

Désolé je voulais parler de xsession-errors.

Tu n'étais pas obligé de commenter. D'ailleurs si tu le fais c'est normal que ça bloque. Tape ça : 

```
touch .fvwm/scripts/.noshow
```

Avec ce fichier, tu n'as plus le StartMSG.

fbsetbg est livré avec fluxbox  :Wink: 

----------

## TTK

 *bosozoku wrote:*   

> Désolé je voulais parler de xsession-errors.
> 
> Tu n'étais pas obligé de commenter. D'ailleurs si tu le fais c'est normal que ça bloque. Tape ça : 
> 
> ```
> ...

 

Mon xsession-errors est vide ...

J'avais aussi fait le touch.

Ok, j'emerge fluxbox.M'enfin un theme pour un wm qui depend d'un autre wm c'est goret  :Wink: 

Ceci dit, si je m'en sors pas de ton theme sous fvwm, fbox sera peut etre une alternative !

Bye

Edit: je vais faire une capture d'ecran post plantage, et un top. D'autres idées ?

Edit2: la capture est toute noire, le top montre juste X à 100% et GrabWeather2 defunct.

Je laisse tomber. Fluxbox a l'air pas mal  :Wink: Last edited by TTK on Sat Jun 18, 2005 7:30 pm; edited 1 time in total

----------

## bosozoku

 *Quote:*   

> 
> 
> Ok, j'emerge fluxbox.M'enfin un theme pour un wm qui depend d'un autre wm c'est goret  

 

Tu n'es pas obligé d'installer fluxbox, j'utilise fbsetbg car j'aime bien ce petit outil mais tu peux très bien en appeller un autre comme Esetroot ou feh !

----------

## Darkael

TTK: tu as essayé d'autres configs, pour voir si le problème est lié à celle de bosozoku ou pas?

----------

## TTK

Salut

Ben j'etais sous fvwm avec un theme de base depuis qques temps déjà.

Je suppose que le pb vient d'une dépendance induite par le theme. Surement un pb lié au truc de météo.

----------

## bosozoku

 *TTK wrote:*   

> Salut
> 
> Ben j'etais sous fvwm avec un theme de base depuis qques temps déjà.
> 
> Je suppose que le pb vient d'une dépendance induite par le theme. Surement un pb lié au truc de météo.

 

Alors, il te faut installer perl et libwww-perl  :Smile:  (perl est déja la puisque c'est dans ce langage que les modules sont écrits).

----------

## TTK

Salut

Des messsages précédents mentionnent cette dependance. J'avais bien installé libwww-perl.

----------

## bosozoku

 *TTK wrote:*   

> Salut
> 
> Des messsages précédents mentionnent cette dependance. J'avais bien installé libwww-perl.

 

Tu as bien fbsetbg ? Que se passe t'il exactement maintenant ?

----------

## TTK

Salut

Ben comme je disais, je lance fvwm avec ton theme, la barre du bas d'initialise en partie, mon gkrellm2 est là, la souris bouge mais rien ne répond à mes clicks. Le clavier non plus ne répond plus. Je reboot comme un goret.

En lancant un top depuis le xinitrc apres un sleep, on voit X à 100% de CPU et GrabWeather2 à defunct. J'ai bien fbsetbg, et libwww-perl. J'ai aussi touché le .noshow mentionné ci dessus.

Voilou.

----------

## bosozoku

Aie aie aie, je ne vois vraiment pas.

Essaie de changer le fichier files/fonctions  comme ceci (pour la première partie) :

```
#### StartFunction : on lance tous les modules requis

DestroyFunc StartFunction

AddToFunc StartFunction

+ I Exec fbsetbg -f $[img]/desk2.png

```

Normalement ça devrait démarrer et tu devrais avoir les menus, les key bindings etc.

Ensuite tu remets un a un les modules et regarde si ça marche. Si ça plante encore je sais pas du tout  :Sad: 

(Essaie de remplacer fbsetbg -f $[img]/desk2.png par Esetroot -s path_complet_to_image ou des trucs comme ça.

J'ai remarqué que lorsque fbsetbg ne trouve pas de wallpaper il rame beaucoup.

Une dernière chose, ne reboot pas ! Un simple ctrl+alt+backspace ou au pire un ctrl+alt+F2 et tu retrouves la main.

----------

## TTK

 *bosozoku wrote:*   

> Aie aie aie, je ne vois vraiment pas.
> 
> 

 

Putain t'es nul alors  :Wink: 

 *Quote:*   

> 
> 
> Essaie de changer le fichier files/fonctions  comme ceci (pour la première partie) :
> 
> 

 

Yes. Ca démarre, j'ai les menus et tout. Fond d'ecran ok. RAS.

 *Quote:*   

> 
> 
> Ensuite tu remets un a un les modules et regarde si ça marche. Si ça plante encore je sais pas du tout 
> 
> 

 

Si je commente les deux lignes :

```

Test (!R $[scripts]/.noshow) AddToFunc StartFunction I\

Module FvwmButtons IntroButtons

```

alors ça marche. Mais je n'ai aucune barre .. juste le fond et les menus.

 *Quote:*   

> 
> 
> Une dernière chose, ne reboot pas ! Un simple ctrl+alt+backspace ou au pire un ctrl+alt+F2 et tu retrouves la main.

 

Nan nan, je suis bien obligé de rebooter. Bon, j'ai lancé un sshd et en tuant X, puis en le relancant depuis un autre user, et en le retuant je récupère la console. Mon X est vautré, donc le clavier ne répond plus. Je n'ai pas activé les magickeys du noyau.

Merci de ton aide.

----------

## bosozoku

Bon apparement c'est le IntroButtons qui fout la merde alors tu peux l'enlever, il est pas indispensable (c'était juste un gadget pour frimer un peu).

Je te propose donc de transformer ceci :

```
#### StartFunction : on lance tous les modules requis

DestroyFunc StartFunction

AddToFunc StartFunction

Test (!R $[scripts]/.noshow) AddToFunc StartFunction I \

Module FvwmButtons IntroButtons

+ I Test (R $[scripts]/.noshow) DemarrageFunction

#+ I Module FvwmBacker

+ I Exec fbsetbg -f $[img]/desk2.png

DestroyFunc DemarrageFunction

AddToFunc DemarrageFunction

+ I All (IntroButtons) Close

+ I Module FvwmAnimate

+ I Schedule 5000 Module FvwmEvent

+ I Module FvwmButtons PagerBorder

+ I Module FvwmButtons Panel

+ I Module FvwmButtons Dock

+ I All Test (f $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png) WindowStyle \

EWMHMiniIconOverride, MiniIcon $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png

+ I Exec $[FVWM_USERDIR]/scripts/weather_log.plx weather/ > /dev/shm/weather.log
```

en :

```
#### StartFunction : on lance tous les modules requis

DestroyFunc StartFunction

AddToFunc StartFunction

+ I Exec fbsetbg -f $[img]/desk2.png

+ I Module FvwmAnimate

+ I Schedule 5000 Module FvwmEvent

+ I Module FvwmButtons PagerBorder

+ I Module FvwmButtons Panel

+ I Module FvwmButtons Dock

+ I All Test (f $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png) WindowStyle \

EWMHMiniIconOverride, MiniIcon $[fvwm_tmp]/pager/miniicon.tmp.$[w.id].png

+ I Exec $[FVWM_USERDIR]/scripts/weather_log.plx weather/ > /dev/shm/weather.log
```

Voila ça désactive completement le message d'accueil.

----------

## TTK

Je te propose un thread à part puisque mon pb ne semble pas commun !

Merci de ton soutien temps réel.

----------

## DidgeriDude

@Bozosoku : J'ai fini ton menu de changement de page (en fait, je m'y suis mis il y a seulement 1 heure, j'avais pas le temps avant  :Wink: )

C'est un menu basique directement accessible depuis le menu des fenêtres, identique à celui pour les changements de bureaux. J'ai numéroté les pages comme suit (dans le cas où il y en a 3x3, car je pense que c'est ta config) :

1  2  3

4  5  6

7  8  9

```
DestroyMenu MenuFvwmWindowOps

AddToMenu MenuFvwmWindowOps

+   "Redimensionner"                                        Pick Resize

+   "S&tick"                                                Pick Stick

+   "Ra&fraichir"                                           Pick RefreshWindow

+   "Identification"                                        Pick Module FvwmIdent

+   "Envoyer vers bureau"                                   Popup MenuEnvoyerVersBureau

+   "Envoyer vers page"                                     Popup MenuEnvoyerVersPage

+   "Fermer"                                                Close

+   "Tuer"                                                  Destroy

DestroyMenu MenuEnvoyerVersBureau

AddToMenu MenuEnvoyerVersBureau

+ DynamicPopupAction Function BuildEnvoyerVersBureau

DestroyFunc BuildEnvoyerVersBureau

AddToFunc BuildEnvoyerVersBureau

+ I DestroyMenu recreate MenuEnvoyerVersBureau

+ I AddToMenu MenuEnvoyerVersBureau

+ I PipeRead 'seq 0 5 | grep -v $[desk.n] | awk \'{printf \"+ \\"Bureau %s\\" MoveToDesk 0 %s\\n\", $$$1 + 1, $$$1}\''

DestroyMenu MenuEnvoyerVersPage

AddToMenu MenuEnvoyerVersPage

+ DynamicPopupAction Function BuildEnvoyerVersPage

DestroyFunc BuildEnvoyerVersPage

AddToFunc BuildEnvoyerVersPage

+ I DestroyMenu recreate MenuEnvoyerVersPage

+ I AddToMenu MenuEnvoyerVersPage

+ I PipeRead 'seq 0 8 | grep -v $(($[page.ny] * 3 + $[page.nx])) | awk \'{printf \"+ \\"Page %s\\" MoveToPage %s %s\\n\", $$$1 + 1, $$$1 % 3, int($$$1 / 3)}\''
```

J'ai remis la config complète du menu, les noms devraient être assez explicites.

L'idéal serait d'utiliser des variables pour le nombre de bureaux et de pages, histoire de le rendre plus adaptable, c'est-à-dire un truc du genre (il reste peut-être des erreurs dues à des échappements oubliés...  :Wink: ) :

```
(...)

+ I Module FvwmPager 0 $(($[nb_bureaux] - 1))

(...)

DesktopSize $[nb_pages_x]x$[nb_pages_y]

(..)

+ I PipeRead 'seq 0 $(($[nb_bureaux] - 1)) | grep -v $[desk.n] | awk \'{printf \"+ \\"Bureau %s\\" MoveToDesk 0 %s\\n\", $$$1 + 1, $$$1}\''

(...)

+ I PipeRead 'seq 0 $(($[nb_pages_x]*$[nb_pages_y] - 1)) | grep -v $(($[page.ny] * $[nb_pages_y] + $[page.nx])) | awk \'{printf \"+ \\"Page %s\\" MoveToPage %s %s\\n\", $$$1 + 1, $$$1 % $[nb_pages_y], int($$$1 / $[nb_pages_y])}\''
```

Sinon, j'avais pensé à un unique menu Envoyer vers... avec des sous-menus pour chaque bureau, mais si on voulait juste changer de bureau, il était quand même nécessaire de choisir une page... A moins qu'il soit possible d'assigner une action à un sous-menu (je veux dire que, même si Bureau 1 est un sous-menu avec dedans Page 1 à Page 9, alors j'aimerais qu'il soit possible de changer de bureau en cliquant juste sur le nom Bureau 1 du sous-menu) Euh... Je ne sais pas si c'est très clair là...  :Confused: 

Sinon, j'avoue que je n'ai pas cherché non plus...  :Wink: 

Voilou.

----------

## Dais

Question bête: j'utilise le nouveau thème dark de notre ami bosozoku (félicitations, j'l'adore ^^)

Il va forcément être mis à jour de temps en temps, mais j'veux pas perdre mes modifications au .fvwm2rc .

Vous avez sûrement déjà rencontré ce problème là, alors que faisiez vous ? Est-ce que vous utilisiez un prog pour voir les diffs entre les deux fichiers ? (si oui lequel ?)

----------

## bosozoku

Merci Dais  :Smile: 

Utilise la commande diff.

----------

## Dais

hmm ouais, tout simplement .. daisolay ^^;

----------

## yoyo

Il y a aussi gvimdiff qui est pas mal ...

----------

## bosozoku

TTK, c'est parfait pour le menu des pages !

L'unique menu Envoyer vers, oui bien sur mais je ne veux envoyer que vers des pages donc c'est good.

----------

## DidgeriDude

Suite à mon post ci-dessus, j'ai dans l'idée de remanier complètement ma configuration FVWM de manière à utiliser le plus de variables possibles afin de rendre le fichier le plus portable possible. Cela va nécessiter la création dynamique de parties entières du fichier de config (et vive le 'PipeRead' et le scripting  :Confused:  ). Dans cette même logique, j'aimerais faire en sorte que les menus soient créés dynamiquement soit à partir d'un fichier ayant une syntaxe particulière (par exemple comme dans ce post) ou à partir d'une arborescence à la E17, je ne sais pas encore. D'où ma question : la création des menus est-elle assez rapide ou une relative lenteur rend-elle désagréable l'utilisation de cette méthode ?

@Bosozoku :  :Laughing:  Je prends pour moi le compliment pour le menu Envoyer vers les pages... désolé TTK  :Laughing: 

Exemple d'utilisation de variable avec le module FvwmPager :

```
SetEnv nb_bureaux 6

(...)

PipeRead 'echo + I Module FvwmPager 0 $(($[nb_bureaux]-1))'
```

nb_bureaux est définie de manière "humaine" soit le vrai nombre de bureaux, en partant de 1 et non de 0 !Last edited by DidgeriDude on Fri Jun 24, 2005 7:27 am; edited 1 time in total

----------

## Darkael

Didgeridude: Je pense que la création des menus en elle-même ne prend pas de temps, ça doit surtout dépendre de ce que fait ton script je pense.

----------

## yoyo

@DidgeriDude : c'est exactement ce que j'attends (avec un fichier de variables bien commenté).

Pour le menu, c'est vrai que c'est pas la mer à boire mais un menu minimum avec les entrées pour les terminaux, navigateurs, éditeurs etc. définis dans le fichier de variables permettrait de s'en sortir à tous les coups.

Mes 0.02 cents

----------

## DidgeriDude

Je suis en train de faire les commentaires.

J'avais une config proche de celle de Gulivert et j'avais donc gardé le système de fichiers multiples. Mais là, je fais un fichier unique, avec une table des matières et différentes sections (dont la première sera la partie où TOUTES les variables utilisées dans la suite seront définies), le plus commenté possible... Par contre, je ne désire pas pour le moment créer de dock à la Bosozoku ou Taviso ou Gulivert  :Smile: . Je garde une config basique mais je vais la commenter de partout en tentant de la garder aussi lisible que possible... On verra ensuite pour les boutons, docks, etc...

Par contre, comme je le disais, créer une config basée sur des variables la rend difficile car, par exemple pour FvwmBacker, il est nécessaire d'avoir une ligne de config par bureau, ce qui doit donc être créé dynamiquement (hum les petits PipeRead... !)

Donc, yoyo, ne t'attends pas à un résultat pour la semaine prochaine. Va falloir de la patience...  :Wink:  d'autant que pour chaque commande FVWM que je ne connais pas, je potasse le man...

Quant au menu, une certaine syntaxe dans un fichier, et le tour est joué. Et ainsi pas besoin de redémarrer... Et si des gens sont balèzes en GUI, il me sortiront un petit éditeur... Hmmm, rien que d'y penser...

----------

## yoyo

 *DidgeriDude wrote:*   

> Donc, yoyo, ne t'attends pas à un résultat pour la semaine prochaine. Va falloir de la patience...  

 "Tout vient à point à qui sait attendre"

Je ne suis pas pressé car je donne mon avis/mes envies dans l'optique d'obtenir pour moi ET pour les autres quelques chose de beaucoup plus abordable en terme de config fvwm. Et je ne doute pas de la difficulté de la chose rassure-toi.  :Wink: 

Pour le menu, "pas besoin de redémarrer" ?? Comment fais-tu ça ?? Un démon qui scrute les moindres changements de ce fichier ?? Et puis pour "la syntaxe dans un fichier", un fichier de menu séparé fait bien l'affaire (il suffit de le conserver d'une config à l'autre). Ça me paraît plus simple (comme sous fluxbox) et plus "portable" vers d'autres config. Avec en cas d'absence de ce fichier l'utilisation d'un fichier minimum avec éditeur/navigateur définis dans le fichier de variables (mais je ne sais pas si c'est réalisable). Enfin, ça n'est que mon humble avis.  :Smile: 

----------

## gulivert

Me semble qui a trop longtemps que j'ai plus toucher à mon Fvwm, et quand je vois l'évolution de ce topic ça me remotive

à me retaper un bon petit theme sous l'ami Fvwm  :Smile: 

Je vois que ça ne chaume pas pendant mon absence  :Razz: 

Je devrais ravoir une ligne internet dans 1 semaine, j'espère ....

----------

## Darkael

 *yoyo wrote:*   

> 
> 
> Pour le menu, "pas besoin de redémarrer" ?? Comment fais-tu ça ?? Un démon qui scrute les moindres changements de ce fichier ?? 

 

S'il utilise DynamicPopupAction et PipeRead, le menu est recréé à chaque fois, donc pas besoin de redémarrage.

----------

## yoyo

 *KarnEvil wrote:*   

> S'il utilise DynamicPopupAction et PipeRead, le menu est recréé à chaque fois, donc pas besoin de redémarrage.

 Ok,merci.

Donc à chaque ouverture de menu, le fichier est parcouru à nouveau avant d'être affiché. Ça ne risque pas d'être un peu long (parceque le parcours de mes dossiers zik est tout de même assez lent (gènant amha pour un menu classique).

----------

## Darkael

 *yoyo wrote:*   

>  *KarnEvil wrote:*   S'il utilise DynamicPopupAction et PipeRead, le menu est recréé à chaque fois, donc pas besoin de redémarrage. Ok,merci.
> 
> Donc à chaque ouverture de menu, le fichier est parcouru à nouveau avant d'être affiché. Ça ne risque pas d'être un peu long (parceque le parcours de mes dossiers zik est tout de même assez lent (gènant amha pour un menu classique).

 

Bizarre, avec les quelques pipemenus que j'ai ça me semble assez rapide (en dehors des menus wallpapers). Sinon, tu pourras toujours créer une entrée "Rafraichir le menu" ou quelque chose du genre.

----------

## yoyo

Ça n'est pas lent mais ça n'est pas instantané comme un menu normal (et ça peut devenir gènant à la longue amha ...).

Comment tu les fait tes pipemenus ?

----------

## Darkael

 *yoyo wrote:*   

> Ça n'est pas lent mais ça n'est pas instantané comme un menu normal (et ça peut devenir gènant à la longue amha ...).
> 
> Comment tu les fait tes pipemenus ?

 

C'est juste des menus dynamiques classiques avec Piperead + un petit script. Mais en fait les miens n'utilisent pas d'icones, je me demande si c'est pas les images qui font ralentir tes menus?

----------

## yoyo

Possible, mais il n'y a qu'une icône par type de fichier enfin, une icône pour un fichier et une autre pour un dossier); voila le script issue de la conf de bosozoku issue de la conf de Taviso issue de la conf ...  :Razz: 

```
#### Browse some directories

## Audio / Video

DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

+ I PipeRead 'case "$0" in \

        "$[video]"*) myexec="$[video_exec]" mypng=menu/video.png;; \

        "$[audio]"*) myexec="$[audio_exec]" mypng=menu/audio.png;; \

    esac; \

    fvwm-menu-directory --icon-title menu/dossier.png --icon-file ${mypng:-menu/dossier.png} \

    --icon-dir menu/dossier.png --dir "$0" --exec-t="^${myexec:-gvim} *" \

    --exec-file "^${myexec:-gvim}"'
```

Quoiqu'il en soit, afficher le menu (qui comporte également des icônes) est plus rapide que l'affichage dynamique des fichiers/répertoires.

Ce que je comprends bien et, pour en revenir au sujet de départ, c'est la raison pour laquelle le menu dynamique ne me semble pas approprié (même si c'est très alléchant).

----------

## bosozoku

Taviso m'inpressionera toujours  :Smile: 

http://fvwm.lair.be/viewtopic.php?t=494

----------

## netfab

Bonsoir,

Je me suis mis à FVWM il y a environ 2 semaines. Petit à petit, je construis ma config : je suis parti d'un fichier de configuration vierge (pas peur  :Laughing:  ).

Bon, alors évidemment, je passe des heures sur les manpages, et à étudier les fichiers de conf que je trouve un peu partout.

Aujourd'hui, j'ai décidé d'ajouter à ma config un systray.

Je viens de trouver celui qui fonctionne correctement avec fvwm : xystray.

Pas encore dans portage, mais vous pouvez trouver l'ebuild et un patch sur bugzilla.

Je poste çà, parce que j'ai passé l'après-midi à chercher sur ces forums, et à essayer de faire marcher d'autres systray, mais il y avait toujours un problème.

peksystray : obligé de downgrader, et gros bug avec cedega/steam

docker : pas de classe de fenêtre, donc pas possible à intégrer au dock (du moins pas directement)

trayer : je n'ai jamais réussi à le faire marcher.

Bref, pour moi, xystray est le meilleur, même s'il ne gère pas encore la transparence des icônes.

----------

## bosozoku

Bon bon je reviens de week end (ça fait du bien de se ressourcer en Bretagne profonde  :Smile: ) et j'ai envie de tout reprendre à  mais très sérieusement. Faire attention à faire une config avec des variables etc. Les couleurs foncées c'est bien mais la on est en été alors pourquoi pas des couleurs un peu plus clair. Je vais partir vers le classique dock à tout faire comme sur Kde un petit peu (avec les possibilitées infinies de Fvwm en prime  :Very Happy: ).

edit : peut etre garder ma config actuelle et la retoucher finalement...  :Smile: 

----------

## yoyo

 *bosozoku wrote:*   

> Taviso m'inpressionera toujours 
> 
> http://fvwm.lair.be/viewtopic.php?t=494

   :Shocked:   :Shocked:   :Shocked: 

Impressionant ...

@NetFab : intéressant le systray; n'hésite pas à partager ta config (screenshots ??).  :Wink: 

 *bosozoku wrote:*   

> edit : peut etre garder ma config actuelle et la retoucher finalement...  

 /me préfère aussi comme ça ...  :Rolling Eyes: 

----------

## bosozoku

Yoyo : pas moi mais rien ne t'empeche de garder et d'améliorer mon theme dark hein  :Smile: 

edit : j'ai trop la flemme  :Sad: 

----------

## yoyo

Bonjour à tous,

Voila, j'utilise la config dark de bosozoku et je voudrai inclure "trayer" sur la barre latérale. Celui-ci fonctionne bien, j'ai viré les décos etc. mais impossible de le caser dans cette barre ...

Comment dois-je m'y prendre ?? Faut-il utiliser "Swallow FvwmScript" comme pour l'affichage de la date ? Mais dans ce cas, les actions avec la souris seront-elles prises en compte ??

Merci de vos lumières.

EDIT : je viens de regarder vite fais le menu et les fichiers de conf de crystal-fvwm : il sont bourrés de variables etc. Peut-être des trucs à pomper.

----------

## bosozoku

Il faut indiquer à Swallow quelle fenêtre tu veux swallower. Je ne connais pas trayer mais donne lui un petit coup de FvwmIdent et récupère sa classe.

Ensuite : Swallow "Classe_de_FvwmIdent" "Exec trayer"

----------

## yoyo

Ok, cela fonctionne; mais du coup le problème c'est qu'il ne "rafraîchit" pas trayer lorsque la session gaim démarre après le lancement de trayer (ou si je ferme ouvre gaim etc.).

C'est vraiment bizarre.  :Confused: 

----------

## DidgeriDude

Est-ce que quelqu'un parmi vous saurait où trouver la liste complète des évènements de window-manager-event. Il y en a pas mal dans la page man de FvwmEvent mais je ne sais pas s'ils y sont tous... J'ai pas mal épluché Google, mais je ne trouve pas.

Si quelqu'un a une idée...

Sinon, j'ai une autre question : comment fonctionne la commande Echo de FVWM ? Où s'affiche la sortie ?

----------

## Darkael

 *DidgeriDude wrote:*   

> Est-ce que quelqu'un parmi vous saurait où trouver la liste complète des évènements de window-manager-event. Il y en a pas mal dans la page man de FvwmEvent mais je ne sais pas s'ils y sont tous... J'ai pas mal épluché Google, mais je ne trouve pas.
> 
> Si quelqu'un a une idée...
> 
> 

 

Si tu parles de tous les évènements qu'on peut utiliser avec FvwmEvent, alors je pense qu'ils sont tous sur la page man (maintenant, pour savoir à quoi ils correspondent c'est une autre histoire). Faudrait jeter un oeil aux sources pour vérifier.

 *Quote:*   

> 
> 
> Sinon, j'ai une autre question : comment fonctionne la commande Echo de FVWM ? Où s'affiche la sortie ?

 

La sortie d'Echo se trouve sur la sortie standard stderr, en même temps que les messages d'erreurs. Donc pour voir ça, soit tu lances fvwm depuis un terminal et ça s'affichera sur le terminal, soit tu peux rediriger stderr vers un fichier ("fvwm 2>>fvwm.log" ou un truc comme ça)

----------

## DidgeriDude

Merci KarnEvil.

En fait, je savais que Echo envoyait vers stderr, qui, par défaut, est l'écran, mais je ne voyais pas comment le récupérer concrètement. Je vais de ce pas tester ton astuce...

----------

## DidgeriDude

En fait, voici la commande qui marche, dans mon .xsession, pour récupérer la sortie stderr !

```
#!/bin/bash

exec /usr/bin/fvwm2 2>> /home/dude/.fvwm/fvwm.log
```

Merci encore KarnEvil.

----------

## yoyo

 *yoyo wrote:*   

> Ok, cela fonctionne; mais du coup le problème c'est qu'il ne "rafraîchit" pas trayer lorsque la session gaim démarre après le lancement de trayer (ou si je ferme ouvre gaim etc.).
> 
> C'est vraiment bizarre. 

 

En fait, j'ai l'impression que le lancement de gaim me fait planter trayer lorsque celui-ci est swallowé (en mode standard, aucun problème, aucun message d'erreur en console) ...  :Confused: 

Ma config : 

```
*Side: (160x25, Swallow "trayer" "Exec trayer --widthtype pixel --width 150 --heighttype request --alpha 255 --transparent true")
```

avec 

```
Style trayer NoTitle,!Handles, WindowListSkip
```

Une idée ??

PS : avec xpad, aucun problème avec trayer swallowé ...

----------

## bosozoku

Je vais installer xtrayer pour voir. Mais juste une chose : pas besoin de définir la taille de trayer car c'est FvwmButtons qui le fait.

edit : c'est simple, gaim ne va pas dedans...

----------

## yoyo

 *bosozoku wrote:*   

> Je vais installer xtrayer pour voir. Mais juste une chose : pas besoin de définir la taille de trayer car c'est FvwmButtons qui le fait.

 Oui j'ai testé les différentes config.

 *bosozoku wrote:*   

> edit : c'est simple, gaim ne va pas dedans...

 Ben lance trayer dans un terminal (en dock "normal") et tu verras que gaim y va sans problème ...

EDIT : Bon j'ai lâché trayer pour passer à xystray comm conseillé par NetFab. Malgré quelques "bugs" du à une certaine jeunesse il fonctionne très bien. Ma config pour ceux que ça intéresse : 

```
Style "Xystray" NoTitle, StaysOnTop, Sticky, NoHandles, WindowListSkip
```

```
*Side: (160x25, Swallow "xystray" "Exec xystray -iconrows 1 -iconcols 7 -bg '#181d4e'")
```

----------

## _kal_

Je suis en train d'essayer fvwm à partir de la config de taviso, mais j'ai un ptit problème lorsque j'essai de lancer firefox  :Sad: 

En effet, celui-ci se lance, mais il est "out of space". En d'autre mot, il est en dehors de la zone de travail. Pourtant je n'ai pas ce problème sous fluxbox. Quelqu'un a déjà rencontré ce problème ? Y a t il un moyen de fixer la position géométrique alors que les options de firefox ne le permettent pas (elles permettent juste de féinir la largeur/hauteur) ?

Merci pour vos lumières  :Wink: 

----------

## Darkael

_kal_: ton problème me dit vaguement quelque chose mais je me souviens plus très bien quoi... Sinon, si tu utilises la config de taviso qui est sur son site, tu devrais avoir une fonction NewWindowFunc quelque part, ajoutes-y une commande pour redimensionner firefox:

```

DestroyFunc NewWindowFunc

AddToFunc NewWindowFunc

...

+ I ThisWindow (*Firefox*) Move 10p 10p

```

Petit hack en attendant de connaitre les raisons profondes de ce comportement...

[EDIT] attends, comment tu sais que la fenêtre est en dehors de l'écran? Elle pourrait tout simplement ne pas exister du tout (ce problème apparait chez certains possesseurs d'amd64)

----------

## _kal_

 *KarnEvil wrote:*   

> _kal_: ton problème me dit vaguement quelque chose mais je me souviens plus très bien quoi... Sinon, si tu utilises la config de taviso qui est sur son site, tu devrais avoir une fonction NewWindowFunc quelque part, ajoutes-y une commande pour redimensionner firefox:
> 
> ```
> 
> DestroyFunc NewWindowFunc
> ...

 

Hm je suis effectivement en amd64 mais lorsque je lance firefox et qu'il n'apparait pas alors je tente de le relancer ; et là apparait le gestionnaire de compte qui me demande de sélectionner un autre compte que "default" car celui-ci est déjà en cours d'utilisation. J'en déduit donc que firefox doit se cacher quelque part  :Wink: 

----------

## Darkael

 *_kal_ wrote:*   

> 
> 
> Hm je suis effectivement en amd64 mais lorsque je lance firefox et qu'il n'apparait pas alors je tente de le relancer ; et là apparait le gestionnaire de compte qui me demande de sélectionner un autre compte que "default" car celui-ci est déjà en cours d'utilisation. J'en déduit donc que firefox doit se cacher quelque part 

 

Ouais, en fait je me suis mal exprimé, je veux dire que la fenêtre existe, mais elle ne s'affiche pas, comme par exemple dans ce thread (il y en a d'autres comme ça):

https://forums.gentoo.org/viewtopic-t-277923-highlight-fvwm+amd64.html

Enfin, essaye voir le truc que j'ai dit, on verra bien ensuite.

----------

## netfab

Salut,

Désolé, je répond en retard, un peu occupé en ce moment  :Wink: 

 *yoyo wrote:*   

> 
> 
> @NetFab : intéressant le systray; n'hésite pas à partager ta config (screenshots ??). 
> 
> 

 

```

*Dock: (40x4, Frame 1, Colorset 10, Swallow(NoClose, UseOld, Respawn) 'xystray' 'Exec exec xystray -iconpadding 4 -iconrows 1 -iconcols 5')

```

Pour les screenshots, je verrais un peu plus tard, le temps de terminer la config  :Very Happy: 

 *yoyo wrote:*   

> 
> 
> Malgré quelques "bugs" du à une certaine jeunesse il fonctionne très bien.
> 
> 

 

De quels bugs parles-tu ?

A part la transparence des icônes, je n'ai pas de problème.

Et en fait, pour les applications GTK (gaim, gnomemeeting, etc...), la couleur qui remplace la transparence est déterminée par le thème GTK utilisé.

----------

## yoyo

 *NetFab wrote:*   

> De quels bugs parles-tu ?

 Principalement de celui indiqué sur le site de xystray : les icônes ne sont pas réorganisées lorsque l'une d'entre elle disparait (suite à la fermeture du programme). Tu te retrouves alors avec un xystray "édenté" (avec des "trous" entre les applis restantes).

C'est juste un problème esthétique (rien de bien méchant).

EDIT : bon à savoir le coup du thème GTK ...  :Smile: 

----------

## bosozoku

Avez vous remarqué que lorsque vous maximisez une fenêtre (firefox par exemple), les bordures ne sont pas cachées. Quel intérêt ? Petit exemple concret :

j'ai une molette souris mais des fois j'aime bien utiliser l'ascenceur, mais il faut bien viser car si l'on colle le pointeur sur le bord de l'écran, on redimensionne le fenêtre car on est sur la bordure et pas sur l'ascenseur...

J'ai créé une petite fonction qui reproduit le comportement de Windows XP (c'est un détail mais comparez firefox maximisé sur xp et sur n'importe quel wm) : les bordures sont cachées :

```

SetEnv border.width 4

Style * HandleWidth $[border.width]

PipeRead "echo SetEnv offset.maximize $$(($[vp.width]+$$(($[border.width]*2))))"

DestroyFunc MaximizeRealFunc

AddToFunc MaximizeRealFunc

+ I Maximize $0 $[offset.maximize]p 100

+ I Move w-$[border.width]p 0

```

Petit screen : http://img187.imageshack.us/img187/5666/fvwm200506303wz.jpg

Enjoy  :Smile: 

edit : faut bien sur remplacer vos Maximize par MaximizeRealFunc.

----------

## DidgeriDude

Bon il est tard donc c'est peut-être pour ça que je n'ai pas trop percuté ce que fait réellement ta fonction Bosozoku  :Wink: 

Sinon, ben j'expose ici une astuce qui me tenait à c½ur :

Si on se trouve en MouseFocus ou en SloppyFocus ou en d'autres trucs, je ne sais pas, on obtient un effet de highlight lorsque l'on passe la souris sur une icône. Par contre, en ClickToFocus, ça ne marche pas ! En effet, le highlight que l'on voit est simplement un changement de Colorset car l'icône reçoit le focus (enfin, c'est ce que j'ai cru comprendre...).

Etant moi-même en ClickToFocus, je voulais recréer cet effet. Pour cela, j'ai rajouté dans ma fonction d'icônification (la fonction Thumbnail de Taviso) la commande pour donner à l'icône la focus policy MouseFocus et dans la focntion DeThumbnail la commande pour rendre à la fenêtre le ClickToFocus. Avec cette astuce, j'ai récupéré mon highlight (donc content  :Very Happy:  ) mais un autre problème s'est vite révélé : dès que ma souris passait sur une icône et la quittait, je perdais le focus et il me fallait recliquer sur une fenêtre pour le récupérer. Donc pas très pratique.

Après une bonne prise de tête avec FvwmEvent, je suis enfin arrivé à reproduire mon effet sans perdre le focus (merci d'ailleurs à KarnEvil pour l'idée de mettre en variable l'id de la fenêtre qui a le focus pour chaque bureau).

Voici donc les morceaux de code pour l'astuce :

Fonctions Thumbnail et DeThumbnail :

```
SetEnv icons_size 128

DestroyFunc Thumbnail

AddToFunc Thumbnail

+ I Raise

+ I SetEnv Icon-$[w.id] $[w.iconfile]

+ I ThisWindow (!Shaded Iconifiable !Iconic) PipeRead \

    "xwd -silent -id $[w.id] | convert -scale $[icons_size]x$[icons_size] -frame 1x1 \

    -mattecolor black -quality 0 xwd:- png:$[FVWM_USERDIR]/icon.tmp.$[w.id].png \

    && echo WindowStyle IconOverride, Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png, StaysOnBottom \

    || echo Nop"

+ I TestRc (Match) Test (f $[HOME]/icons/$[w.miniiconfile]) PipeRead "composite -geometry +2+4 \

    $[HOME]/icons/$[w.miniiconfile] $[FVWM_USERDIR]/icon.tmp.$[w.id].png \

    $[FVWM_USERDIR]/icon.tmp.$[w.id].png && echo Nop \

    || echo Beep"

+ I Iconify

+ I ThisWindow (Iconic) WindowStyle MouseFocus

DestroyFunc DeThumbnail

AddToFunc DeThumbnail

+ I Iconify

+ I ThisWindow (!Iconic) WindowStyle ClickToFocus

+ I Focus

+ I PipeRead "echo WindowStyle Icon \\$\\[Icon-$[w.id]\\]"

+ I UnsetEnv Icon-$[w.id]

+ I Exec exec rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png
```

L'utilisation de FvwmEvent :

```
DestroyModuleConfig FvwmEvent: *

*FvwmEvent: StartDelay 2

*FvwmEvent: PassId

*FvwmEvent: add_window NewWindowFocusFunc

*FvwmEvent: focus_change ActuFocusFunc

*FvwmEvent: leave_window RecupFocusFunc

DestroyFunc NewWindowFocusFunc

AddToFunc NewWindowFocusFunc

+ I WindowId $0 Focus

DestroyFunc ActuFocusFunc

AddToFunc ActuFocusFunc

+ I ThisWindow (!Iconic) SetEnv LastFocus$[desk.n] $[w.id]

DestroyFunc RecupFocusFunc

AddToFunc RecupFocusFunc

+ I ThisWindow (Iconic) PipeRead 'echo WindowId $LastFocus$[desk.n] Focus'
```

Et on n'oublie pas la ligne suivante dans la fonction Start :

```
(...)

+ I Test (Restart) All (Iconic) WindowStyle MouseFocus

(...)
```

Bon, je suis d'accord que cela fait beaucoup de travail pour un petit effet de pas grand chose mais bon, Fvwm est aussi fait pour ça  :Wink: . De plus, je nétais pas le seul à le vouloir alors, en espérant que cela intéressera quelques uns...

Note : il reste bien sûr à adapter cette astuce avec des variables afin de la rendre portable sur des bureaux multi-pages, ou avec des icônes en mode Sticky. Mais bon, là ça devient du masochisme  :Twisted Evil: 

----------

## bosozoku

Ah j'utilise le sloppu focus  :Smile: 

Il y'a un truc qui me chiffone avec FvwmIconMan. Lorsqu'il gère une seule fenêtre, le bouton fait toute la longueur de FvwmIconMan ! J'ai épluché le man mais je ne trouve pas comment faire  :Sad: 

Il y'a bien un moyen avec ManagerGeometry : numx0 mais ça fout la merde, enfin les boutons se mettent n'importe ou. Pas moyen de reproduire le comportement de kde par exemple ? J'ai pas besoin d'un bouton qui fait la taille de mon ecran pour un term par exemple...

edit : j'ai compris, il faut jouer avec ButtonGeometry et ManagerGeometry... C'est un peu galère car c'est pas exactement comme je voulais car arrivé au nombre num (de managergeometry), les boutons ne se réduisent pas, ils passent à la ligne, dommage.

edit2 : résultat, j'ai une autre question qui sera j'espere plus simple. J'ai désactivé les icones pour IconMan mais est il possible d'afficher à la place des miniIcones, une image (pour toutes). Genre une fleche blanche par exemple. J'ai tenté avec un colorset mais c'est pas possible, je pense qu'il faut passer par IconMan.

----------

## bosozoku

Quelqu'un connaissait ce site : http://oceanic.wsisiz.edu.pl/~slabosz/wordpress/?page_id=9 ?

Cette page est très interessante, elle montre pas mal de thèmes (tous ceux que j'ai publié sur internet d'ailleurs). Incroyable étant donné que je vois ce site pour la première fois.

J'ai l'impression qu'il a pris ces informations à partir de fvwm.lair.be.

----------

## Darkael

Ca a l'air d'être un site récent, en tout cas je l'ai jamais vu. Au passage, tu devrais être content d'avoir un de des thèmes en haut de page  :Wink: 

----------

## Pompon

Je me suis mis y a pas longtemps à fvwm, et je viens de regarder la config de bosozoku, histoire que ça me donne des idées et des exemples. 

J'avoue qu'il y a 1 truc qui me chifonne, c'est la partie concernant la météo. D'après ce que j'ai compris le script perl écrivant le fichier de log météo est lancé au démarrage, et qu'ensuite on peut donc facilement avoir les infomrations météo du jour dans un fvwmbutton swallowé par exemple, ou dans un menu pour les prévisions à 10 jours. 

Cependant, ben que se passe-t-il au bout de disons n jours d'utilisations de fvwm sans le relancer ? Pour moi il va avoir des vieilles infos de prévision météo, sans profiter de la mise à jour des infos sur weather.com (par exemple si je le relance pas pendant une semaine, dans mon fvwmbutton qui me montre le jour courant il va me donner la meteo telle qu'on la prévoyait il y a une semaine, ce qui est bien evidemment la plupart du temps atrocement éloigné de la réalité  :Wink: ). 

Est-ce que je me trompe (j'avoue ne pas l'avoit laissé tourné assez longtemps pour pouvoir vérifier, élaboration de ma nouvelle config oblige), et si je ne me trompe pas, comment faire pour qu'il relance le script à intervalle régulier (y a la solution du cron bien sûr, mais est-ce faisable directement dans le fichier de conf fvwm, si oui, ce serait plus pratique si je veux partager ma configuration.

Je sais pas si j'ai été très clair, mais je vous remercie par avance de vos réponses.

----------

## bosozoku

Bonjour,

cela fait pas mal de temps que je n'utilise plus la config dont tu parles mais je m'en souviens un peu quand même  :Smile: 

En fait le dock swallow un FvwmScript. Et dans ce FvwmScript il y'a une mise à jour toutes les 60secondes.

```
*Dock: (77x65, ActionOnPress, Colorset 16, \

Swallow "WeatherIconAndTemp" `FvwmScript $[scripts]/WeatherIconAndTemp na.png`)
```

La partie qui s'occupe de réactualiser toutes les 60secondes :

```
PeriodicTasks

Begin

    If $check==1 Then

    Begin

        If (RemainderOfDiv (GetTime) 60)==0 Then

        Begin

            Set $weather_icon = (GetOutput { exec cat /dev/shm/weather.log } 1 -1)

            Set $weather_title = (GetOutput { exec cat /dev/shm/weather.log } 2 -1)

            ChangeIcon 1 $weather_icon

            ChangeTitle 2 $weather_title

            Set $check = 0

        End

    End

End

```

dans le fichier $[scripts]/WeatherIconAndTemp. C'est assez clair ?

----------

## Pompon

 *Quote:*   

> C'est assez clair ?

 

Non

Pour moi, tu te contentes de voire toute les 60 secondes ce qu'il y a dans le fichier /dev/shm/weather.log... Et ce fichier n'a pas changé pour moi depuis que fvwm a lancé initfunction... Donc t'as beau mettre à jour toute les 60 secondes ça sert à rien puisque le fichier n'es jamais mis à jour ...

En effet, le script qui s'occupe de récuperer les infos de weather.com est (chez moi) weather_log.plx, et le seul endroit ou pour moi tu le lançais dans ta "vieille" config c'était dans:

```
AddtoFunc InitFunction

...

+ I exec exec   $[fvwm_script]/weather_log.plx $./img/weather/$[fvwm_weather]/ > /dev/shm/weather.log

...
```

Ou alors j'ai absolument rien compris et j'ai besoin de plus de précisions ...

----------

## Darkael

Pompon: ouaip, je connais pas ce script, mais d'après ce que je vois il n'est lancé qu'une seule fois effectivement. Faudrait le lancer périodiquement quelque part (peut-être avec cron par exemple?)

----------

## bosozoku

Ah oui effectivement. En fait le coup des 60secondes c'était car l'execution du script est assez longue alors le FvwmScript met une icone par defaut et au bout de 60secondes actualise avec le resultat du script perl. Il faudrait donc réactualiser le weather.log avec cron, je pense que c'est la meilleure solution.

----------

## Pompon

Ah oui c'est vrai comme il remet check à 0 il le fait qu'une fois, j'avais lu trop vite le script, par contre vous corroborez ce que je pensais pour le fichier de log c'est bien un cron qu'il faut utiliser.

Par contre, j'ai encore une question sur la météo. Dans ton ancienne config bosozuku y avait aussi 1 menu dynamique avec la prévision à 10 jours, si je le met dans le menu, ça passe très bien, il s'affiche nickel, par contre si j'essaye de l'associer à 1 click dans mon fvwmbutton, aussi bien en l'invoquant avec popup que menu, il ne s'affiche pas  :Sad: 

----------

## bosozoku

J'ai exactement le même problème. En fait tu essaies de l'ouvrir si tu cliques sur l'image de la météo? J'ai pas compris pourquoi mais il veut pas prendre en compte le clic sur l'image, ça marche sur l'espace vide du bouton, autrement dis c'est très merdique. Essaie de créer un bouton "vide" et d'y associer le menu via un clic ça devrait marcher.

----------

## Pompon

En effet c'est axactement ça Bozozuku, vraiment curieux cette histoire.

----------

## jack_mort

Yop !

Gros problème pour moi : je viens d'écraser ma config actuelle par une autre et bien évidemment, je n'avais pas de sauvegarde récente de ma config... Bon je n'ai bien spur pas encore quitter ma session et du coup je voulais savoir s'il y a un moyen de récupérer la config de la session actuelle via la console fvwm (du style /proc/config pour le kernel  :Wink: )  :Question: 

----------

## Darkael

Hmm je crois vraiment  pas que ça soit possible  :Confused: ...

----------

## bosozoku

 *KarnEvil wrote:*   

> Hmm je crois vraiment  pas que ça soit possible ...

 

Demande tout de même sur #fvwm @ freenode pour être sur. Peut être que quelqu'un de très informé comme Thomas Adam ou Taviso pourra t'aider mais je ne crois pas que ce soit possible effectivement...

----------

## jack_mort

Dommage  :Crying or Very sad:  Merci quand même... Je vais devoir refaire ce que j'avais fait, et je le ferais encore mieux ! (motivation inside  :Cool:  )

----------

## netfab

Salut,

Je cherche à affecter des sons à certains évènements de fvwm, comme expliqué sur la man-page de FvwmEvent.

Ce sont des sons au format wav.

J'ai jeté un oeil à la configuration de fvwm-themes (certains thèmes ont des sons), mais rien n'y fait.

J'ai même essayé de recompiler fvwm avec le support rplay, toujours rien.

Je m'y prends sûrement mal.

Est-ce possible, et comment ? (au niveau de la sortie j'utilise souvent esd)

Merci.

----------

## netfab

Ok, çà marche  :Very Happy: 

La solution se trouve ici : /usr/share/fvwm/themes/default/settings/sound-player

Pour jouer un son au démarrage, avec esd :

```

*FvwmEvent-Sound: Cmd "Exec exec esdplay "

*FvwmEvent-Sound: StartDelay 4

*FvwmEvent-Sound: Delay 1

*FvwmEvent-Sound: startup $./chords/steelchord-start.wav

```

Et ajouter à la StartFunction :

```

+ I Module FvwmEvent FvwmEvent-Sound

```

----------

## jack_mort

Yop !

Bon en refaisant ma config, je viens de me rappeler pourquoi j'ai d/l une nouvelle config : je cherchais un moyen de rendre le focus à la fenêtre précédente lorsque je minimise la fenêtre courante. Exemple :

J'ai mon éditeur de texte qui est lancé, et un terminal. Je fais 2-3 trucs dans mon terminal, puis je vais à mon éditeur et là je le réduis. Ce que je voudrais, c'est rendre le focus au terminal : en fait, lors de la minimisation, le focus reste sur la fenêtre... donc je suis obligé de recliquer sur le terminal pour y récupérer le focus... Z'avez compris ?  :Laughing: 

----------

## bosozoku

Bonsoir,

tu préfères pas le focus SloppyFocus ?! Bon de toutes façons ça marche bien : Style * GrabFocus

Mais si tu utilisais le SloppyFocus, le problème se poserait pas : tu as le focus lorsque la souris est au dessus de la fenêtre (sans cliquer), si la souris va sur une autre fenêtre, la fenêtre prend le focus et si la souris va juste sur le wallpaper alors la fenêtre garde le focus (et un click pour faire passer la fenêtre en avant plan si tu veux).

----------

## jack_mort

Ben j'ai essayé le sloppyfocus y a quelques temps et j'arrive pas à m'y faire  :Confused: 

----------

## bosozoku

 *jack_mort wrote:*   

> Ben j'ai essayé le sloppyfocus y a quelques temps et j'arrive pas à m'y faire 

 

Ok, alors Style * GrabFocus marche bien ? (Tu dois le rajouter en plus, ça remplace pas SloppyFocus ou ClickToFocus, c'est pour dire que les applications "attrapent" le focus).

----------

## netfab

Salut,

Essayes çà :

```

      *FvwmEvent: focus_change SetVars

      *FvwmEvent: iconify DonneFocus

      DestroyFunc SetVars

      AddToFunc SetVars

      + I SetEnv Var2 $[Var1]

      + I SetEnv Var1 $[w.id]

      DestroyFunc DonneFocus

      AddToFunc DonneFocus

      + I WindowId $[Var2] Focus

```

Edit : en ajoutant dans la StartFunction :

```

+ I Module FvwmEvent

```

----------

## jack_mort

Merci pour les tuyaux !

Alors le GrabFocus, j'avais déjà essayé et ça ne faisait pas ce que je veux... Par contre la solution de NetFab fonctionne à merveille !

Merci à vous  :Very Happy: 

----------

## billiob

Salut !

Dans le but d'améliorer la fonction BrowseWallpapers pour qu'elle change aussi les thumbnails de mon pager, j'ai fait un petit script wallpapers.sh, qui remplace les images qui sont présentement en tant que wallpapers. J'ai 3 desks. Mon problème est que je ne modifie que l'image du premier desk. Mon script prend deux paramètres : le numéro du desk (pour le moment fixé à 0) et l'adresse du fichier image. Il faudrait que je passe le numéro du desk qui a le focus (un truc du genre $[desk_id]). Comment faire ?

Ou sinon ajouter un menu pour choisir quel desk modifier, mais là encore, je ne sais pas comment faire.

De plus, comme je ne fait que changer les fichiers pour que la manipulation soit définitive, comment relancer le pager le backer après que le wallpaper soit changé pour que tout soit actualisé ?

EDIT: C'est bon, j'ai trouvé le premier point (variable $d , tout simplement !).

Par contre, il me manque toujours un truc pour actualiser/relancer le backer et le pager.

```
DestroyFunc WallpaperBrowser

AddToFunc WallpaperBrowser

+ I PipeRead 'test ! -d "$0/.thumbs" && mkdir "$0/.thumbs"; \

    for i in "$0/"*; do \

        test -f "$0/.thumbs/${i##*/}" \

            -a "${i}" -ot "$0/.thumbs/${i##*/}" || { \

                convert -quality 0 -scale 64 "${i}" "png:$0/.thumbs/${i##*/}" 2>/dev/null \

                    || continue; \

            }; \

    done; \

    fvwm-menu-directory --icon-title "$[fvwm_icon_path]/folder.png" --icon-file __PIXMAP__ \

    --icon-dir $[fvwm_icon_path]/folder.png --dir $0 --exec-file "^$[fvwm_script_path]/wallpapers.sh $d " \

    --exec-t="^eog *" | sed -e "s#FuncFvwmMenuDirectory#WallpaperBrowser#g" \

    -e "s#__PIXMAP__\\(.*\\)\\"\\(.*/\\)\\(.*\\)\\"#\\2.thumbs/\\3\\1\\2\\3#g"'
```

----------

## Darkael

billiob: tu pourrais poster ton script wallpaper.sh et les lignes de conf pour le pager et le backer? Je pense savoir à quoi ils ressemblent d'après ton post, mais c'est juste pour que ça soit plus clair...

----------

## billiob

le script wallpapers.sh (pas optimisé, mais ça viendra)

```

#/bin/bash

# $1 -> number of the current desk

# $2 -> file

convert $2 -resize 1280x1024 /home/boris/.fvwm/images/wallpapers/desk-$1.jpg

convert $2 -resize 100x80 /home/boris/.fvwm/images/pager/$1.png

convert /home/boris/.fvwm/images/pager/$1.png -colorize 40,30,50 /home/boris/.fvwm/images/pager/$1a.png
```

```
DestroyModuleConfig FvwmBacker: *

*FvwmBacker: RetainPixmap

*FvwmBacker: Command(Desk 0, Page * *) Exec fbsetbg -f $[fvwm_wallpaper_dir]desk-0.jpg && FvwmCommand Refresh

*FvwmBacker: Command(Desk 1, Page * *) Exec fbsetbg -f $[fvwm_wallpaper_dir]desk-1.jpg && FvwmCommand Refresh

*FvwmBacker: Command(Desk 2, Page * *) Exec fbsetbg -f $[fvwm_wallpaper_dir]desk-2.jpg && FvwmCommand Refresh

###################################################################

### Pager

###################################################################

DestroyModuleConfig FvwmPager: *

*FvwmPager: MiniIcons

*FvwmPager: Geometry 100x240+0+0

*FvwmPager: Rows 3

*FvwmPager: Columns 1

*FvwmPager: Colorset 0 41

*FvwmPager: Colorset 1 42

*FvwmPager: Colorset 2 43

#*FvwmPager: Colorset 3 44

*FvwmPager: HilightColorset 0 45

*FvwmPager: HilightColorset 1 46

*FvwmPager: HilightColorset 2 47

#*FvwmPager: HilightColorset 3 48

*FvwmPager: WindowColorsets 32 31

#*FvwmPager: BalloonColorset * 32

*FvwmPager: BalloonColorset * 50

*FvwmPager: Font none

*FvwmPager: SmallFont none

*FvwmPager: Balloons none

*FvwmPager: BalloonFont "xft:Lucida MAC:bold:pixelsize=9:minspace=True"

*FvwmPager: BalloonYOffset +2

*FvwmPager: BalloonBorderWidth 0

*FvwmPager: UseSkipList

*FvwmPager: MoveThreshold 0

*FvwmPager: NoSeparators

*FvwmPager: WindowBorderWidth 1

*FvwmPager: Label 0 Net

*FvwmPager: Label 1 Prog

*FvwmPager: Label 2 Divers3

#*FvwmPager: Label 3 Divers4

Style FvwmPager    Colorset 33, NoTitle,  Sticky, WindowListSkip, CirculateSkipIcon, CirculateSkip

Style FvwmPager    StaysOnBottom, !Borders, !Handles, NeverFocus

Colorset 30 RootTransparent

Colorset 31 fg #444, bg #f5f5f5, hi #9c9e9c, sh #9c9e9c, Translucent white 90

Colorset 32 fg #121212, bg #c8c8c8, hi #c8c8c8, sh #9c9e9c

Colorset 33 fg #515457, fgsh #f4f6fa, bg #000000, hi #ffffff, sh #9c9c9c, RootTransparent, Tint #a6a6a6 100, IconAlpha 100

#### Fond du Pager

Colorset 41 Pixmap $[fvwm_pager_path]0.png

Colorset 42 Pixmap $[fvwm_pager_path]1.png

Colorset 43 Pixmap $[fvwm_pager_path]2.png

Colorset 44 Pixmap $[fvwm_pager_path]3.png

Colorset 45 Pixmap $[fvwm_pager_path]0a.png

Colorset 46 Pixmap $[fvwm_pager_path]1a.png

Colorset 47 Pixmap $[fvwm_pager_path]2a.png

Colorset 48 Pixmap $[fvwm_pager_path]3a.png

#########Thumbnails

Colorset 50 fg black, bg white, fgsh white, RootTransparent, Tint #ffffff 60

Colorset 51 fg white, bg black, fgsh black, RootTransparent
```

Je pense qu'il faut utiliser FvwmCommand, mais je ne sais pas quoi mettre après.

----------

## Darkael

Ok, 

Donc pour FvwmBacker normalement y'a rien à faire vu que c'est toujours les mêmes noms de fichier.

Par contre pour réactualiser le pager il faut effectivement faire quelque chose, par exemple tu peux redéfinir le colorset, et FvwmPager prendra le changement en compte et affichera la nouvelle image. Rajoutes ça à la fin de ton script:

```

FvwmCommand "Colorset 4$(($1 + 1)) $fvwm_pager_path$1.jpg"

```

(en suivant la numérotation qui est dans ta config)

[EDIT]

euh, plus exactement, il faut rajouter ça plutot:

```

FvwmCommand "Colorset $((41 + $1)) $fvwm_pager_path$1.jpg"

FvwmCommand "Colorset 4$((45 + $1)) $fvwm_pager_path$1a.jpg"

```

----------

## billiob

Merci, ça marche comme je le voulais !

sinon, c'est : 

```
FvwmCommand "Colorset $((41 + $1)) Pixmap $fvwm_pager_path$1.jpg"

FvwmCommand "Colorset 4$((45 + $1)) Pixmap $fvwm_pager_path$1a.jpg" 
```

J'ai plus qu'à améliorer mon script wallpapers.sh pour qu'il soit plus rapide.

----------

## La Saucisse

Bonjour tout le monde, 

J'ai peu de temps a consacrer a fvwm (et je le regrette); mon dernier post etant la derniere fois ou je m'etait penché dessus :/

Mon probleme concerne la fonction Thumbnail de Taviso et ce que DidgereDude a expliqué plus haut concernant le survol d'icones.

D'une part ma fonction Thumbnail me parait monstrueuse et m'y connaissant peu j'ignore ce qui est en trop :

 *Quote:*   

> 
> 
> DestroyFunc Thumbnail
> 
> AddToFunc Thumbnail
> ...

 

L'appel de Thumbnail :

 *Quote:*   

> # Icons Binding
> 
> Mouse 1   I     A   Iconify
> 
> Mouse 2   I     A   Move
> ...

 

Et l'intervention des fonctions Restart/Exit function:

 *Quote:*   

> DestroyFunc RestartFunction
> 
> AddToFunc RestartFunction
> 
> + I All (Iconic) ReThumbnail
> ...

 

Leur agencement sur le bureau est le suivant :

 *Quote:*   

> Style * NoIconTitle, IconBox 20 20 100 -15
> 
> 

 

Alors j'ai tenté d'optimiser tout ça mais je ne vois pas ce qui est superflu. Je souhaite que les icones se reorganisent lorsque j'en enleve une, que les images soient purgées lorsque je quitte fvwm...et j'aimerai que ces icones deviennent mat lorsque je passe au dessus avec la souris mais cela ne fonctionne pas chez moi. Pourtant j'ai fait ce que DidgereDude conseille et même en sloppyFocus ou MouseFocus (pour ne pas avoir a modifier Thumbnail) cela ne marche pas. Si quelqu'un sait ce que je dois modifier afin d'avoir un Thumbnail moins "delirant" ainsi que le survol d'icones.

Merci d'avance

ps: si on exclue le pb de survol et le fait que je trouve thumbnail parfois un peu lent, tout marche tres bien.^^

----------

## Darkael

 *Quote:*   

> Je souhaite que les icones se reorganisent lorsque j'en enleve une,

 

Y'a plusieurs façons de faire, je pense que la plus propre est de rajouter cette ligne à la fonction DeThumbnail:

```

+ I All (CurrentPage, Iconic) PlaceAgain Icon

```

et ensuite ajouter DeThumbnail à FvwmEvent:

```

DestroyModuleConfig FvwmEvent:*

*FvwmEvent: Cmd Function

*FvwmEvent: deiconify DeThumbnail

AddToFunc StartFunction I Module FvwmEvent

```

De cette façon DeThumbnail (qui fait le ménage) est appelée à chaque déiconification

 *Quote:*   

> 
> 
> que les images soient purgées lorsque je quitte fvwm
> 
> 

 

D'après ce que je vois dans ton post, c'est déja le cas (dans ExitFunction). Ca ne marche pas?

Pour le reste je sais pas, je vois pas trop ce qu'est ce pb de survol (et j'ai la flemme de lire les posts précédents  :Smile:  )

----------

## La Saucisse

Effectivement tout marche chez moi. Mais j'ignore si ma methode est la plus elegante, la plus efficace...

Tout ce que je souhaite c'est ameliorer ce qui doit l'etre (si ce n'est pas l'cas tant mieux) et surtout ajouter cette histoire de survol.

En effet mes Thumbnail sont transparents j'aimerai les rendre opaques au survol de la souris (pour montrer qu'ils sont reactif).

Avec SloppyFocus ou autre d'apres ce que j'ai lu c'est censé fonctionner or chez moi rien y fait.

 *Quote:*   

> Pour le reste je sais pas, je vois pas trop ce qu'est ce pb de survol (et j'ai la flemme de lire les posts précédents  )

 

Et moi j'ai tout lu ^^ et y a pas a dire y a plein de bons trucs dans ce thread  :Very Happy: 

Mais c'est vrai que c'etait long  :Confused: 

----------

## pem

 *bosozoku wrote:*   

> J'ai exactement le même problème. En fait tu essaies de l'ouvrir si tu cliques sur l'image de la météo? J'ai pas compris pourquoi mais il veut pas prendre en compte le clic sur l'image, ça marche sur l'espace vide du bouton, autrement dis c'est très merdique. Essaie de créer un bouton "vide" et d'y associer le menu via un clic ça devrait marcher.

 

 *Pompon wrote:*   

> En effet c'est axactement ça Bozozuku, vraiment curieux cette histoire.

 

Salut les gars, je vois qu'on galère sur mes vieilleries. Normalement, l'appel pour avoir à la fois l'icone toute jolie et le beau menu (qui n'a pas besoin d'un espace vide pour fonctionner):

```

*FvwmDock:      (5x7+50+0, ActionOnPress, \

                Swallow "WeatherIconAndTemp" `FvwmScript $[fvwm_script]/WeatherIconAndTemp \

                    $[FVWM_USERDIR]/img/weather/$[fvwm_weather]/na.png`, \

                Action(Mouse 1) `Popup MenuWeather Rectangle +$left+$top 0 -105m`, \

                Action(Mouse 2) `Popup MenuWeather Rectangle +$left+$top 0 -105m`, \

                Action(Mouse 3) `Popup MenuWeather Rectangle +$left+$top 0 -105m`)
```

Si vous étes encore dans le coin sur ce truc là, bien sûr  :Wink: 

----------

## Zanton

Alors, deux petites questions ^^

Je ne me souviens plus de la commande pour forcer une fenêtre à être présente sur tous les bureaux (gaim en l'occurence)  :Smile: 

Et je voulais savoir si vous utilisiez un splash screen quand vous vous loggez sous fvwm.

----------

## Darkael

Wow, le thread a été inactif pendant un mois entier!? Ca va pas du tout, ça  :Smile: 

 *Zanton wrote:*   

> 
> 
> Je ne me souviens plus de la commande pour forcer une fenêtre à être présente sur tous les bureaux (gaim en l'occurence) 
> 
> 

 

La commande c'est Stick (par exemple All (Gaim) Stick), le style c'est Sticky (par exemple Style Gaim Sticky)

 *Quote:*   

> 
> 
> Et je voulais savoir si vous utilisiez un splash screen quand vous vous loggez sous fvwm.

 

Il me semble que bosozoku avait un splash screen assez avancé dans sa config, tu devrais aller la voir.

----------

## pem

J'étais justement en train de regarder les attributs Sticky. KarnEvil, tu es toujours aussi rapide  :Cool: 

Sinon, j'utilise moi aussi un splash screen et ça donne ça. J'aime bien  :Wink: 

----------

## Zanton

Merci bien  :Smile: 

Dites moi au passage, est ce que au lancement de fvwm, ça met un peu de temps à s'afficher ? Ou bien c'est aussitôt fonctionnel ? (J'ai un p4 3.2 1Go ram)

----------

## pem

Avec une bête de guerre comme ça, tu vas pas attendre des masses.

----------

## ryo-san

lut pem

j'aurais une question a propos de ton theme artic:

la fonction mail fonctionne t'elle avec tout les pop ? j'ai un abonnement wanadoo et il me semble que j'avais lus qu'il fallait pouvoir pinguer le server pop pour que ca marche or le pop.wanadoo.fr est "inpingabble ", aurait tu des infos ?

----------

## pem

 *ryo-san wrote:*   

> la fonction mail fonctionne t'elle avec tout les pop ? j'ai un abonnement wanadoo et il me semble que j'avais lus qu'il fallait pouvoir pinguer le server pop pour que ca marche or le pop.wanadoo.fr est "inpingabble ", aurait tu des infos ?

 

Normalement, tu peux très bien offrir des services réseaux et ne pas être détecté par un ping : un grand principe de sécurité consiste à retirer l'ICMP (le ping) sauf pour certains accès autorisés. Le seul truc, c'est que mon script se base sur un vieux module PERL (libnet) et qu'il ne supporte pas l'authentification par SSL. 

Le plus simple, c'est le test en ligne de commande. J'ai mis quelques explications ici avec le script en question.

----------

## bosozoku

Bonjour, 

je n'ai pas repris le nom de domaine fvwm-fr car j'avais déja stationlinux et que je pouvais pas en payer deux. Par contre je compte faire de stationlinux un fvwm-fr ; on me comprend ? J'ai supprimé tous les tutoriels qui se dispersaient dans tous les sens et je me consacre uniquement à Fvwm (et fluxbox) donc voila voila si ça en interesse quelques un (avec s ou pas à "un" ?).

----------

## Darkael

 *bosozoku wrote:*   

> Bonjour, 
> 
> je n'ai pas repris le nom de domaine fvwm-fr car j'avais déja stationlinux et que je pouvais pas en payer deux. Par contre je compte faire de stationlinux un fvwm-fr ; on me comprend ? J'ai supprimé tous les tutoriels qui se dispersaient dans tous les sens et je me consacre uniquement à Fvwm (et fluxbox) donc voila voila si ça en interesse quelques un (avec s ou pas à "un" ?).

 

C'est une très bonne nouvelle, surtout que la communauté Fvwm coté français a besoin d'être secoué un peu (ce thread n'a été bumpé que très rarement ces derniers mois! Vous êtes tous passé à E17 ou quoi?  :Very Happy: )

----------

## gulivert

 *KarnEvil wrote:*   

>  *bosozoku wrote:*   Bonjour, 
> 
> je n'ai pas repris le nom de domaine fvwm-fr car j'avais déja stationlinux et que je pouvais pas en payer deux. Par contre je compte faire de stationlinux un fvwm-fr ; on me comprend ? J'ai supprimé tous les tutoriels qui se dispersaient dans tous les sens et je me consacre uniquement à Fvwm (et fluxbox) donc voila voila si ça en interesse quelques un (avec s ou pas à "un" ?). 
> 
> C'est une très bonne nouvelle, surtout que la communauté Fvwm coté français a besoin d'être secoué un peu (ce thread n'a été bumpé que très rarement ces derniers mois! Vous êtes tous passé à E17 ou quoi? )

 

 :Embarassed: 

sinon GG Lucky

----------

## Greatguy

Salut à tous, je me suis mis à Fvwm y'a pas longtemps et pour l'instant je me suis aidé des fichiers de Taviso et des man, pour comprendre comment il fonctionne.

Mais je voulais savoir si vous connaissiez des alternatives aux gdesklets pour le monitoring que je pourrais intégrer dans un FvwmButton, mais qui soit graphiquement assez joli et pas un utiliser seulement xosview??

parce que j'ai qques problème avec les gdesklets et la transparence ?? en fait ils utilisent leurs propres règles de root-transparence ce qui fait que les colorsets que j'applique aux cases du fvwmbutton ne s'affichent pas du tout!

Merci d'avance!

----------

## bosozoku

Bonjour Greatguy,

nop je ne connais pas grand chose à part ce que tu as dit. Une manière mais alors beaucoup plus sobre serait de prendre la sortie directe de l'acpi comme Gulivert l'avait fait par l'intermédiaire d'un menu. M'enfin t'as pas de belles images transparentes ... (et c'est vrai que c'est joli)

----------

## Greatguy

je te remercie bosozoku, j'avais pensé à utiliser la sortie directe de l'ACPI mais je voulais un joli truc graphiquement, mais ça fait rien pour l'instant j'utilise des petites applications X (au moins ce sont des trucs pas trop lourds en mémoire).

sinon j'avais un autre problème j'étais en train d'étudier une fonction écrite par Taviso et je ne comprends vraiment pas grand chose, voici un extrait de cette fonction :

```
DestroyFunc FvwmShelfHideFunc

AddToFunc FvwmShelfHideFunc

+ I WindowID $[shelf.id] PipeRead 'echo LockingSlide $$(test $$(($[w.x]+$[w.width])) -le $[vp.width] \

    && echo w$$(($[w.width]-$0))p \

    || echo w-$$(($[w.width]-$0))p) keep'

```

ce que j'ai compris c que lorsque cette fonction est appelé,  l'action est exécuté immédiattement uniquement sur la fenêtre correspondant à l'id mais alors je ne comprends pas à quoi correspondent le deux signes $$ à la suite ?

et si je comprends bien : il y a un test effectué qui est  ((w.x+w.width<=vp.width) mais je ne comprends pas bien la suite s'agit t'il d'autres arguments pour le test?? ou ce sont des paramètres passés à la fonction LockingSlide??

merci d'avance à tous ceux qui auront pris la peine de lire mon message!!

p.s: bosozoku, j'ai vu le site de stationlinux et le wiki sur fvwm je sais pas si vous cherchez du monde mais je peux vous aider à traduire qques trucs si ça vous intéresse, je ne suis pas une bête en anglais mais je me débrouille pas trop mal!!!

----------

## Darkael

 *Greatguy wrote:*   

> 
> 
> ```
> DestroyFunc FvwmShelfHideFunc
> 
> ...

 

Quand t'as un truc du genre:

```

test (condition) && instruction1 || instruction2

```

ça veut dire la même chose que:

```

si (condition)

alors

   instruction1

sinon

   instruction2

```

Donc dans la fonction que tu montres, ce qui sera executé au final sera soit:

```

LockingSlide w($[w.width]-$0)p keep

```

soit:

```

LockingSlide w-($[w.width]-$0)p keep

```

selon la condition (w.x+w.width<=vp.width)

En français, ce que la fonction fait c'est faire glisser la fenêtre pour la mettre hors de l'écran, vers la gauche ou la droite selon le resultat du test. Enfin, il me semble que c'est ça.

----------

## Darkael

Sinon, pour les applis de monitoring, j'aurais pensé à conky/torsmo, mais ce n'est pas aussi joli que gdesklets (enfin, ça dépend des gouts)

----------

## Greatguy

merci KarnEvil, c bien ce que je pensais d'après le comportement de la fenêtre puisqu'elle agit comme tu le dis mais je dois avouer que je ne connaissais pas ce && et ||, je suis vraiment encore un newb sous Linux mais je comprends mieux certaines commandes maintenant par exemple lorsqu'on recompile le noyau et qu'on écrit "make && make modules_install" en fait le shell execute la première commande attend que soit renvoyé une valeur TRUE et execute ensuite la seconde, non ??

et merci aussi pour conky/torsmo ça m'a l'air d'être bien sympa et bien plus joli que xosview.

http://conky.sourceforge.net/conky.png

en tout cas merci beaucoup pour votre aide c cool d'avoir des réponses aussi rapides.

----------

## Darkael

 *Greatguy wrote:*   

> merci KarnEvil, c bien ce que je pensais d'après le comportement de la fenêtre puisqu'elle agit comme tu le dis mais je dois avouer que je ne connaissais pas ce && et ||, je suis vraiment encore un newb sous Linux mais je comprends mieux certaines commandes maintenant par exemple lorsqu'on recompile le noyau et qu'on écrit "make && make modules_install" en fait le shell execute la première commande attend que soit renvoyé une valeur TRUE et execute ensuite la seconde, non ??
> 
> 

 

oui c'est bien ça

 *Quote:*   

> 
> 
> et merci aussi pour conky/torsmo ça m'a l'air d'être bien sympa et bien plus joli que xosview.
> 
> http://conky.sourceforge.net/conky.png
> ...

 

ah, conky est plus beau que je ne l'imaginais  :Shocked:  Y'a vraiment de l'avancement par rapport à torsmo (dont conky est un fork)

Par contre, si tu comptes le foutre dans un FvwmButtons, j'ai lu qu'il pouvait y avoir des problèmes:

https://forums.gentoo.org/viewtopic-t-381296-highlight-fvwm.html

----------

## bosozoku

Greatguy -> je te remercie. Si tu veux aider, le wiki est libre d'accès -> http://fvwm.stationlinux.org

----------

## bosozoku

Bon bon j'ai besoin de votre aide  :Smile: 

Je suis sur que c'est simple mais je ne vois pas trop comment faire. J'ai un menu pour ouvrir des sites oueb :

```
DestroyMenu SitesWeb

AddToMenu SitesWeb

+ %internet.png%"Pages jaunes" Exec firefox -remote "openurl(http://www.pagesjaunes.fr,new-tab)"

+ %internet.png%"ImageShack" Exec firefox -remote "openurl(http://imageshack.us/,new-tab)"
```

Cela ne marche uniquement si Firefox est ouvert car ça ouvre un nouvel onglet. Voila ce que je veux faire :

si firefox est ouvert on garde la commande ci dessus mais si il n'y a pas de firefox d'ouvert alors la commande devient "Exec firefox url". 

J'ai pensé à None ("Firefox-bin") blabla mais comment dire alors pour le "sinon" ?

----------

## netfab

Salut,

Il faut raisonner dans l'autre sens : Si firefox pas ouvert on lance firefox, et après on charge la page.

J'ai bricolé çà vite fait, faut sûrement rafistoler 2/3 bugs et adapter  :Smile: 

```

DestroyFunc MaFonction

AddToFunc MaFonction

+ C Any ("Firefox-bin") Next ("Firefox-bin") WindowListFunc

+ C TestRc (NoMatch) Exec firefox

+ C Schedule 5000 Exec firefox -remote "openurl($0,new-tab)"

DestroyMenu SitesWeb

AddToMenu SitesWeb

+ %internet.png%"Pages jaunes" MaFonction "http://www.pagesjaunes.fr""

```

----------

## netfab

J'ai fini par trouver exactement ce que tu voulais, à coup de PipeRead :

```

code pas bon :)

```

Edit : reste un petit défaut : une fois cliqué, la page ne s'ouvre pas tant que l'on ne bouge pas la souris.

Edit 2 : finalement non, çà ne fonctionnait pas, puisque j'avais oublié que j'ai activé une option dans firefox qui permet d'ouvrir dans un nouvel onglet toute url qui provient d'un programme externe, et du coup çà faussait tout.

Mais, le code se rapprochant le plus de ce que tu cherches est celui-ci :

```

DestroyFunc MaFonction

AddToFunc MaFonction

+ I SetEnv Ouverture False

+ C Any ("Firefox-bin") Next ("Firefox-bin") WindowListFunc

+ C TestRc (NoMatch) SetEnv Ouverture True

+ C PipeRead `echo Exec firefox $$( test $[Ouverture] == True && echo $0) || echo -remote "openurl($0,new-tab)"`

DestroyMenu SitesWeb

AddToMenu SitesWeb

+ %internet.png%"Pages jaunes" MaFonction "http://www.pagesjaunes.fr"

```

Le seul problème c'est que le "openurl($0,new-tab)" n'est pas pris en compte, et je n'arrive pas à échapper les double-quotes, du coup, c'est une nouvelle fenêtre vierge qui s'ouvre...

----------

## Darkael

NetFab: Si le openurl-machin ne marche pas, c'est parce qu'il y a une parenthèse mal placée: celle qui est après le echo $0, elle devrait plutot être à la fin de la ligne.

Sinon, je propose un truc sans passer par la variable Ouverture:

```

DestroyFunc MaFonction

AddToFunc MaFonction

+ I Any (Firefox-bin) Exec firefox -remote "openurl($0,new-tab)"

+ I TestRc (Match) Next (Firefox-bin) WindowListFunc

+ I TestRc (NoMatch) Exec firefox $0

```

ça devrait marcher....

----------

## Darkael

En fait y'a beaucoup plus simple:

```

DestroyFunc MaFonction

AddToFunc MaFonction

+ I Exec firefox -remote "openurl($0,new-tab)" || firefox $0 

```

Tout simplement...

[EDIT]

Euh en fait le code ci-dessus ne fait pas monter le firefox s'il existe déja (ce que fait WindowListFunc dans les codes précédents), donc si tu veux ce comportement il faut rajouter la ligne:

```

+ I Any ("Firefox-bin") Next ("Firefox-bin") WindowListFunc

```

(bon du coup ce n'est pas si "beaucoup plus simple" que ça... bah)

[EDIT2]

NetFab: d'ailleurs je viens de remarquer que tu utilises des "+ C" au lieu de "+ I" dans ta fonction. Y'a une raison particulière à ça?

----------

## netfab

Oui, bien vu pour le coup de la parenthèse.

Pour le + C au lieu de + I, çà vient de copiés/collés d'autres lignes de codes.

Par contre, tu viens de m'apprendre une chose : en fait, je ne savais pas que l'on pouvait utiliser des || et && directement : je faisais çà à coups de PipeRead. J'ai des dizaines de fonctions dans mes fichiers de config, et beaucoup de PipeRead  :Smile: 

----------

## bosozoku

Aie Aie Aie ! 

C'est parfait ! C'est quand même dommage que j'ai pas réussi à faire ça moi même m'enfin bon... Sympa le coup du WindowListFunc héhé.

Bon bah merci bien les gars  :Smile: 

----------

## ercete

Hoplà adieu fluxbox !

Bonjour fvwm,

je vais commencer par mettre en place ton thème milk bosozoku,

puis une fois qu'il sera en place je verrai si ca me plait

----------

## bosozoku

Salut raoulchatigre,

je ne sais pas si ce thème va te plaire car en fait il est pas du tout mais alors pas du tout fonctionnel. J'avais voulu recopier un peu macosX mais c'est pas terrible...

----------

## ercete

arf...

Passé un temps tu avais mis au point le WM de rêve dans un autre topic.

Ayé retrouvé 

Le thème dark dont tu parles, il est présent sur ta page ?

Ptêt que celui là me conviendrait mieux ?

Hum en fait ton thème carbonne a pas l'air si mal mais le screenshoot présent sur le wiki fait pas trop envie  :Confused: 

Celui-là est plus alléchant

----------

## bosozoku

Boarf le thème dark n'est plus nul part, ce n'était qu'un pale copie de la config de Taviso (en beaucoup moins bien d'ailleurs). Je travaille plus que sur le thème carbone. Il est peut être beaucoup moins beau mais c'est fonctionnel (merci à Taviso pour ses menus dynamiques). Je le met à jour aujourd'hui d'ailleurs.

edit : et voila -> http://img324.imageshack.us/img324/6861/fvwm20051001bis0ck.jpg

----------

## bosozoku

Je ne sais pas si ce sujet ou même ce forum est bien approprié mais je tente quand même : 

je recherche une ou plusieurs personnes acceptant de donner un peu de leur temps libre pour le contenu de StationLinux. Pourquoi pas des "admins", histoire de former une équipe. Je rappelle succintement le but du site qui est de remplacer l'ancien fvwm-fr.org avec du contenu fluxbox en plus. Je dis pas grand chose dans ce post mais si il 'ya quelqu'un d'interessé, je serais tout de suite plus bavard  :Smile: 

----------

## geekounet

Je pourrai peut-être participer pour la partie Fluxbox, si je trouve du temps libre et quand j'aurai l'ADSL à la maison. D'autre part, j'ai envie de me mettre à FVWM, donc peut-être aussi plus tard je pourrai aider sur ce point.

----------

## bosozoku

 *pierreg wrote:*   

> Je pourrai peut-être participer pour la partie Fluxbox, si je trouve du temps libre et quand j'aurai l'ADSL à la maison. D'autre part, j'ai envie de me mettre à FVWM, donc peut-être aussi plus tard je pourrai aider sur ce point.

 

Merci c'est très genti de ta part.

Personne n'est volontaire pour le post d'admin ? (ya pas que le nom bien sur, ça implique qu'il faut être actif et sérieux).

----------

## bosozoku

Bonjour,

j'essaie d'avoir une fonction qui me permette de changer à la volée les colorsets. Voici une fonction très simple qui marche parfaitement :

```
AddToFunc ChangeColorset

+ I PipeRead "echo Colorset 0 fg blue, bg blue"

+ I UpdateStyles

```

Bien sur c'est pas super pratique... alors j'ai voulu améliorer un minimum :

```
AddToFunc ChangeColorset

+ I Test ($0 == "blue") PipeRead "echo Colorset 0 fg blue, bg blue"

+ I TestRc (Match) UpdateStyles

```

Et la ça marche pas du tout ! ChangeColorset blue ne fait rien ; des idées ?

----------

## Darkael

Hello, 

c'est normal que ça marche pas, car Test ne peut pas à ma connaissance faire des tests sur l'égalité de 2 chaines comme ça. Donc une solution est de faire rentrer le test à l'intérieur du PipeRead (donc au niveau de bash):

```

AddToFunc ChangeColorset

+ I PipeRead ' [[ "$0" == "blue" ]] && (echo "Colorset 0 fg blue, bg blue"; echo UpdateStyles)'

```

(vu qu'on utilise pas Test, TestRc ne peut pas être utilisé, et faut donc aussi mettre le UpdateStyles dans le code bash)

Bon après pour agrandir la fonction, t'as plusieurs possilités en bash, par exemple:

```

AddToFunc ChangeColorset

+ I PipeRead ' case "$0" in \

    "blue"|"red"|"yellow"|"green") echo "Colorset 1 bg $0, fg $0"; echo "UpdateStyles";; \

    "transparent") echo "Colorset 1 RootTransparent buffer, Tint yellow 40"; echo "UpdateStyles";; \

    "pixmap") echo "Colorset 1 Pixmap pixmap.png"; echo "UpdateStyles";; \

    esac'      

```

----------

## bosozoku

Oups j'ai oublié de dire que ça marchais. Alors oui j'avais réussi en bash mais trop compliqué pour ce que je veux faire. En fait je me limite pas à un ou deux colorsets, je voulais changer de décor, colorsets, menustyles etc... Bref j'ai fait une fonction dédiée pour chaque thème et je lance la fonction ChangeThemeDefaut au début  :Smile: 

Au fait j'ai essayé de commenter un minimum ma config. Voili voilou.

http://www.stationlinux.org/fvwm/fvwm2rc.html et http://www.stationlinux.org/fvwm/menus.html

----------

## bosozoku

Bonjour, 

j'ai un petit soucis : je suis vraiment novice en bash et je n'arrive pas à regrouper ces deux lignes en une seule : 

```
+ I PipeRead "if [ -f ${FVWM_USERDIR}/vert ]; then rm ${FVWM_USERDIR}/vert; fi"

+ I PipeRead "if [ -f ${FVWM_USERDIR}/defaut ]; then rm ${FVWM_USERDIR}/defaut; fi"
```

J'aimerai bien regrouper les deux if dans un if + else ou if + elif je ne sais pas trop.

----------

## Darkael

 *bosozoku wrote:*   

> Bonjour, 
> 
> j'ai un petit soucis : je suis vraiment novice en bash et je n'arrive pas à regrouper ces deux lignes en une seule : 
> 
> ```
> ...

 

Si j'ai bien compris ce que tu veux faire:

```

if [ -f ${FVWM_USERDIR}/vert ]; then rm ${FVWM_USERDIR}/vert; elif [ -f ${FVWM_USERDIR}/defaut ]; then rm ${FVWM_USERDIR}/defaut; fi

```

Si t'as plus de 2 cas, alors faut rajouter des elif/then (c'est peut-être plus lisible si tu les mets sur plusieurs lignes, d'ailleurs), sinon tu peux faire aussi un case.

----------

## Darkael

Au fait j'ai remarqué que tu avais pas mal de difficultés au niveau de bash et du scripting en général. Peut-être que tu devrais prendre un peu de temps pour apprendre sérieusement à programmer et tout? Après ce genre de choses te semblera facile...  J'ai vu trainer quelques threads récemment ici sur la meilleure façon d'apprendre à programmer, tu peux t'en inspirer  :Very Happy:  (commencer par bash n'est pas forcément une bonne idée....)

----------

## bosozoku

Je te remercie. Ouep tu remarques bien, j'ai un bouquin qui en parle de manière assez poussée d'ailleurs mais je l'ai ouvert qu'une fois... Faudra vraiment que je m'y mette !

Au fait j'ai bien avancé dans ma config, voila ce que j'arrive à faire (entre autres), changer de thème :

http://img350.imageshack.us/img350/9950/fvwm20051007bis3wc.jpg

http://img129.imageshack.us/img129/3333/fvwm200510077ej.jpg

Qu'en pensez vous ?

----------

## bosozoku

Bon j'ai remis des forums temporaires sur stationlinux pour les utilisateurs francophones de Fvwm :

http://www.stationlinux.org/forum/

Ils sont libres d'accès pour pas embêter ceux qui veulent juste poser leurs questions sans entendre parler d'histoires de membres... C'est moche mais c'est temporaire  :Smile: 

----------

## bosozoku

Petite video de mon bureau http://www.stationlinux.org/fvwm/demo.mpeg.gz

Ca va peut être en stimuler quelques uns car j'ai l'impression que ce thread est mort   :Rolling Eyes: 

----------

## marvin rouge

 *bosozoku wrote:*   

> Ca va peut être en stimuler quelques uns car j'ai l'impression que ce thread est mort  

 Bah, e17 a fait des ravages parmi les utilisateurs de fvwm je pense (moi le premier).

EDIT : ceci dit, elle est jolie ta config de fvwm.

EDIT bis : y'a même Gulivert qu'est passé à E17, il fait un theme milky sur le site de E ... (sans jugement, hein, juste un constat: E17 est p'tain de chouette à utiliser !).

----------

## ryo-san

lut

ben faut reconnaitre que faire un theme fvwm ca prend beaucoup (trop ?) de temps.les deux desktops me plaisent bien mais pour l'instant j'ai une petite preference pour fvwm.

gros travail de config bozosoku bravo.le theme promet.

----------

## ryo-san

re 

j'ai un petit probleme avec la fonction "lockingslide" de taviso.J'ai reussi a l'adapter mais pour un raison obscure,

lorsque j 'appelle la fonction , je change de page ...

```

*Mydock: (372x9,Frame 0, action (mouse 1) \

Next (CirculateHit, MyDock)PipeRead 'echo LockingSlide $$(test $$(($[w.y]+$[w.height])) -le $[vp.height] &&\

 echo keep w$$(($[w.height]-$height))p || echo keep w-$$(($[w.height]-$height))p);\

echo Next \\(CirculateHit, Mydock\\) Maximize ewmhiwa 0 growup')))

```

alors j'ai bien compris w.height (windows height) w.y (position du dock) vp.height apparement c'est la hauteur de la page.

j'ai un doute pour $height , je penchais pour la taille du bouton mais j'en suis pas sur.

j'appuie sur ce bouton avec un fakeclik assigné au clavier

```

AddToFunc PressDock

     + I SetEnv pointer_x $[pointer.x]

     + I SetEnv pointer_y $[pointer.y]

     + I Next (MyDock, CirculateHit) WarpToWindow $1 $2

     + I FakeClick depth 7 press $0 release $0 

     + I WindowId root WarpToWindow $[pointer_x]p $[pointer_y]p

     + I FakeClick depth 2 press 3 release 3

     + I GoToPage 0 0

```

j'ai donc du ajouter + I GoToPage 0 0 sinon je change de page.

y 'a aussi le "Maximize ewmhiwa 0 growup" que je maitrise pas faut que je me renseigne.

enfin si jamais ca vous parle...

----------

## bosozoku

 *Quote:*   

> Maximize [flags] [bool] [horizontal[p]] [vertical [p]]
> 
>  If horizontal is "grow", it is maximized to current available space until finding any obstacle. The vertical resizing is similar. If both horizontal and vertical values are "grow", it expands vertically first, then horizontally to find space. Instead of the horizontal "grow" argument, "growleft" or "growright" can be used respectively "growup" and "growdown". 

 

Autrement dit Maximize ewmhiwa 0 growup maximize la ou les fenêtre(s) concernée(s) en ignorant EWMHBaseStrut,  en gardant sa dimmenssion horyzontale et en maximisant la fenêtre jusqu'au bord supérieur de l'écran.

Pour la fonction LokingSlide, je ne l'utilise pas car elle ne me sert à rien au final. Je remplace simplement LockingSlide par AnimatedMove. Pour $height, tu as bien raison c'est la heuteur du bouton. Je te conseille de faire plutot comme ça : 

```
*Side: (3x1000, Frame 1, Action(Mouse 1) `SideHideFunc $width`)

DestroyFunc SideHideFunc

AddToFunc SideHideFunc

+ I Next (CirculateHit,Side) PipeRead 'echo AnimatedMove $$(test $$(($[w.x]+$[w.width])) -le $[vp.width] \

    && echo w$$(($[w.width]-$0))p \

    || echo w-$$(($[w.width]-$0))p) keep'

+ I Next (CirculateHit,Side) PipeRead 'test $$(($[w.x]+$[w.width])) -le $[vp.width] \

    && echo SetEnv strut.right $[side.width] \

    || echo SetEnv strut.right $0'

+ I EwmhBaseStruts 0 $[strut.right] 0 33

+ I All (Maximized, !Side, !Panel) Maximize True
```

C'est beaucoup plus clair et plus fonctionnel je trouve. Pour le coup du changement de page je vois pas trop pourquoi...

----------

## ryo-san

lut

merci bien , sympa le EwmhBaseStruts dynamique !!

marche impec   :Wink: 

edit : le changement de page venait de la fonction du fakeclick et j'ai pas trop de soluces pour l'instant.

en fait la commande est assigné a un touche du clavier , le dock est masqué vers le bas et quand il l'est (masqué) laisse apparaitre juste une bande de 4 pixels pour  pouvoir cliker dessus sans ce prendre la tete.j'utilise un warptowindow jusqu'a cette partie et la est le probleme: le curseur se retrouve a cheval entre deux pages et donc m 'envoie vers la page deux. 

pour l instant j'ai mis 

```

     + I SetEnv currentpagex $[page.nx]

     + I SetEnv currentpagey $[page.ny]

     + I SetEnv pointer_x $[pointer.x]

     + I SetEnv pointer_y $[pointer.y]

     + I Next (MyDock, CirculateHit) WarpToWindow $1 $2

     + I FakeClick depth 7 press $0 release $0

     + I GoToPage $[currentpagex] $[currentpagey]

```

donc je sauve la position et je la restore , ca clignote un chouilla mais j'ai que ca sous la main.

----------

## billiob

Salut.

Je refait mon thème fvwm (très près de celui de bosozoku).

J'ai 3 pages en 3x1 (horizontal). J'ai mis un FvwmIconMan qui fonctionne presque bien.

J'ai mis 

```
*FvwmIconMan: Resolution        global

*FvwmIconMan: Action    Mouse   1 N sendcommand FocusOrIconify
```

 pour voir toutes les fenêtres.

Le seul point qui manque est que si je clique sur le nom d'une fenêtre dans FvwmIconMan, la fenêtre agit bien comme il se doit, mais je voudrais en + pouvoir changer de page à ce moment. (De plus, le Iconify ne crée pas un nouveau thumbnail, mais ça doit être facile à régler ce point).

----------

## bosozoku

Changer de page quand tu clic sur le nom d'une fenêtre ? Je ne comprend pas bien ce que tu veux faire, tu peux expliciter un peu por favor ?

----------

## billiob

Explications : 

j'ai une fenêtre sur la page 1 et je suis sur la page 2. Vu que j'ai mis "Resolution global", iconman m'affiche en taskbar toutes les fenêtres ouvertes. 

Si je clique sur le nom de la fenêtre dans iconman, je vois bien la fenêtre s'iconifier (vu depuis le pager). Ce que souhaiterais, c'est qu'un clic sur le nom de la fenêtre sur iconman me change de page vers la page où il y a la dite fenêtre.

Suis-je clair ?

De plus, le iconify ne fais que iconifier !! Comment faire pour qu'il fasse en même temps un thumbnail ?

Je suppose qu'il faut que je me crée une fonction "ThumbnailOrFocus" avec des GoToPage & Cie, mais je ne sais pas vraiment comment faire.

----------

## bosozoku

Pour faire un thumbnail à la place du iconify, il suffit que tu appelles la fonction Thumbnail à la place de Iconify. 

Par contre si tu veux aller la ou est ta fenêtre, utilise la fonction WindowListFunc.

```

DestroyFunc FocusOrIconify

AddToFunc FocusOrIconify

+ I ThisWindow (!Focused) WindowListFunc

+ I TestRc (NoMatch) Iconify

DestroyFunc WindowListFunc

AddToFunc WindowListFunc

+ I Iconify off

+ I FlipFocus

+ I Raise

+ I WarpToWindow 50 50

```

----------

## ryo-san

j'aurais du lire avant de poster   :Embarassed: 

----------

## billiob

J'vais regarder ça.

[EDIT]C'est tout à fait ce que je voulais, merci bosozoku

----------

## bosozoku

 *ryo-san wrote:*   

> j'aurais du lire avant de poster  

 

Pourquoi tu dis ça   :Question: 

----------

## ryo-san

 *bosozoku wrote:*   

>  *ryo-san wrote:*   j'aurais du lire avant de poster   
> 
> Pourquoi tu dis ça  

 

 j'etais en train d'ecrire une commande que billiob avait deja ecrite   :Confused: 

----------

## billiob

 *ryo-san wrote:*   

>  j'etais en train d'ecrire une commande que billiob avait deja ecrite  

 

Je l'avais testé, mais mal testée. Si j'utilise la molette sur iconman, la fenêtre s'iconifie sans thumbnail.

J'ai rajouté, en plus du code de bosozoku : 

```
*FvwmIconMan: Action Mouse 4 N sendcommand FocusOrIconify

*FvwmIconMan: Action Mouse 5 N sendcommand FocusOrIconify
```

 et ça marche aussi avec la molette.

----------

## ryo-san

salut

Basozoku si tu passes par la :

j'ai maté ta config et je voudrais bien le meme effet que toi sur ma barre  :Smile: .

Donc j'ai epluché tout ca mais (ah je parle du theme defaut), mais je suis incapable de reproduire cet effet.

je pensais que tu avais placé un iconbox en dessous de la barre mais je ne vois aucune config pour .La je viens de passer l'apres-midi dessus et toujours pas de resultats :'(.

tu ne voudrais pas un peu expliquer stp ? pour etre clair :

- comment faire pour ne pas faire apparaitre les icones ( Style * NoIcon ?)

- comment diriger l'animation sans iconbox ?

merci par avance, parce que au bout de la 5220 e page de man , je suis un peu las la  :Smile: .

----------

## bosozoku

Oula je ne vois pas du tout de quoi tu parles ?

Dans le thème defaut j'applique bien Style * NoIcon et j'ai un FvwmIconMan qui est swallowé dans le FvwmButtons qui ressemble à une barre de fluxbox. Qu'est ce que tu ne comprends pas, le comportement de FvwmIconMan ?

----------

## geekounet

Bon, je laisse un peu fluxbox de côté et je suis revenu à Gnome, mais je commence à m'intéresser à la conf de FVWM.

J'ai donc une première question : certaines apps devrait ne pas avoir de barre de titre (beep-media-player, gkrellm2, les splashs de xine et de OOo) mais elle y est quand même, j'ai lu que c'était normal (j'en doute un peu parce que les autres wm le gèrent très bien) et que ça se règle avec :

```
Style beep-media-player NoTitle
```

Ca marche mais le pb c que même le panneau de prefs se retrouve sans barre de titre, et aussi je n'ai pas envie de faire pour toutes les apps, surtout pour les splashs qui ont en plus le même nom que la fenêtre principale.

De plus sans la barre de titre, quand je bouge bmp ou gkrellm2, il ne se déplace pas en même que la souris mais seulement à la fin du drag.

Ya-t-il donc un autre moyen de gérer ça (patch ou autre) ?

----------

## ryo-san

 *bosozoku wrote:*   

> Oula je ne vois pas du tout de quoi tu parles ?
> 
> Dans le thème defaut j'applique bien Style * NoIcon et j'ai un FvwmIconMan qui est swallowé dans le FvwmButtons qui ressemble à une barre de fluxbox. Qu'est ce que tu ne comprends pas, le comportement de FvwmIconMan ?

 

et bien le comportement de l'iconification en fait. je pensais que chaque icones se rendait dans iconbox par defaut, et donc que la direction de l'animation etait relative a la position d'iconbox sauf que dans ton theme y 'a pas d'icones , pas d'iconbox. et que la direction va vers iconman donc je suis un peu largué ...

----------

## Zanton

Tiens, petite question : fvwm est toujours en développement ? Si oui, c'est actif ou pas trop ?

----------

## ttgeub

Oui c est toujours en développement, c'est actif sans etre ultradynamique, mais fvwm a 12 ans il a donc une vision toute relative sur le temps 

Pour juger de l'activité regarde ici : http://fvwm.org/news/

----------

## bosozoku

RyoSan : ok je comprend. Donc oui tout est avec FvwmIconMan.

Voila la partie qui va t'interesser : 

```

DestroyModuleConfig FvwmAnimate: *

*FvwmAnimate: Color white

*FvwmAnimate: Delay 1

*FvwmAnimate: Iterations 100

*FvwmAnimate: Width 1

*FvwmAnimate: Effect Frame

*FvwmIconMan: NoIconAction         "SendToModule FvwmAnimate animate"

*FvwmIconMan: Action    Mouse   1 N sendcommand FocusOrIconify

DestroyFunc FocusOrIconify

AddToFunc FocusOrIconify

+ I ThisWindow (!Focused) FuncSelectWindow

+ I TestRc (NoMatch) Iconify

DestroyFunc FuncSelectWindow

AddToFunc FuncSelectWindow

+ I Focus

+ I Iconify false

+ I Raise

```

Tu comprends mieux ?

Désolé si je ne t'explique pas trop aujourd'hui car on est le matin et je suis un peu à la bourd. De plus je m'absente pendant une semaine. Bon courage !

----------

## ryo-san

C'est bon merci, je l'ai eu a l'usure pendant la nuit  :Smile: .

+

----------

## geekounet

Bon pour les barre de titre, je vais laisser comme ça pour le moment, j'ai vu dans la config de taviso qu'il faut utiliser UsePPosition pour que la fenêtre suit la souris lors d'un drag.

Je voudrai savoir comment on obtient une barre de titre transparente, j'apprécie d'avoir une fenêtre de terminal totalement transparente jusqu'à la barre de titre.

J'ai essayer :

```
Colorset 3 RootTransparent

Style * Colorset 3, HillightColorSet 3

```

mais ça marche pas.

Et sinon ya t'il un support de composite dans fvwm ?

----------

## ryo-san

lut

rajoute 

```
Buffer
```

 a la fin et optionnellement un 

```
 Tint %
```

:

```

Colorset 3 fg ceketuveux, bg ceketuveux , (...) , RootTransparent Buffer , Tint white 10

```

----------

## geekounet

Bon sur l'histoire du drag, c'était pas USePPosition, ça sert pas à ça en fait (la prochaine fois, je testerai avant de dire des conneries). Donc le pb est tjrs là.

Pour enlever les décorations aux apps qui le demande, j'ai trouvé par moi même :

```
Style * MwmDecor
```

Ca marche comme je le voulais.

Par contre ton truc, j'ai déjà essayé ça marche pas, mais j'ai trouvé aussi finalement, c'était pas loin :

```
Colorset 3 RootTransparent buffer, Tint black 60

TitleStyle Colorset 3
```

Sinon, buffer ou pas je vois pas vraiment la différence.

Merci.

----------

## bosozoku

Le buffer est censé optimiser les performances pour la pseudo transparence.

----------

## bosozoku

Un petit post pour relancer ceux qui voudraient contribuer à Fvwm. On avait mis en place la traduction de la FAQ, il ne reste plus beaucoup à faire alors si il y'a des traducteurs ou relecteurs ça se passe ici : http://www.stationlinux.org/wiki/wakka.php?wiki=FAQ  :Smile: 

----------

## DidgeriDude

J'ai pas trop eu de temps de continuer mais là ça devrait aller mieux. Je vais finir ma partie  :Wink: 

----------

## FlexOrFlex

Salut tout le monde voila je laisse tomber les autres WM pour me consacrer a FVWM j'ai donc d'emblée une petite question sur la configuration la voiçi:

- Je n'arrive pas a desiconnifier les applications reduites (elles restent a l'etat d'icones sur le bureau... ensuite quels sont les fonction pour maximiser minimiser et fermer une fenetre? je me base sur la config de base de FVWM du moins j'essai de bidouiller pour comprendre mais je n'ai pas trouvé de reponse a ce sujet sur stationlinux.org... donc si vous avez des reponses a m'apporter ou des tutos (en français car je suis pas tres copain avec l'anglais) n'hesitez pas  :Smile: 

Merçi

----------

## bosozoku

http://www.stationlinux.org/fiche.139.html -> thumbnails.

http://www.stationlinux.org/fiche.102.html -> quelques fonctions de base.

Alors pour déiconifier une icône il faut que tu mettes ce raccourci : 

```
+ I Mouse 1 I A Iconify
```

Pour maximiser : Maximize, Iconify et Close.

Tu trouves tout ça très facilement sur la page man avec firefox par exemple : ctrl + f.

----------

## FlexOrFlex

 *bosozoku wrote:*   

> Tu trouves tout ça très facilement sur la page man avec firefox par exemple : ctrl + f.

 

Etant un peu beaucoup novice je sais pas trop comment m'y prendre la  :Sad: 

----------

## geekounet

Bon, j'arrive à me débrouiller à peu près dans ma config. Pour le moment, j'essaie de faire une config proche de Fluxbox, il me manque que la barre des taches. Je dois utiliser quoi pour ça ?

Sinon, j'ai pensé pour le menu browser de video qu'on pourrait faire un thumbnailing comme pour les wallpapers. Yavait un post une fois sur un script qui fait ça, mais sinon ya aussi le totem-video-thumbnailer. J'ai vais bricoler ça et poster la solution si j'y arrive.

A quand la prévisualisation des musiques dans le menu ?   :Smile: 

----------

## bibi.skuk

 *pierreg wrote:*   

> Bon, j'arrive à me débrouiller à peu près dans ma config. Pour le moment, j'essaie de faire une config proche de Fluxbox, il me manque que la barre des taches. Je dois utiliser quoi pour ça ?
> 
> 

 

Je dirait betement FvwmTaskBar...  :Smile: 

----------

## Darkael

 *bibi.skuk wrote:*   

>  *pierreg wrote:*   Bon, j'arrive à me débrouiller à peu près dans ma config. Pour le moment, j'essaie de faire une config proche de Fluxbox, il me manque que la barre des taches. Je dois utiliser quoi pour ça ?
> 
>  
> 
> Je dirait betement FvwmTaskBar... 

 

 FvwmTaskBar permet d'avoir rapidement une taskbar, mais c'est assez limité au niveau configurabilité et flexibilité. De plus la dernière fois que j'ai regardé y'avait pas mal de bugs (c'est un module qui n'est pas beaucoup, voire pas du tout, maintenu). La solution alternative c'est d'utiliser FvwmIconMan (+FvwmButtons) qui propose beaucoup plus de possibilités.

 Il me semble avoir vu passer une config avec une barre qui ressemblait beaucoup à celle de fluxbox, il me semble que c'était la config de bosozoku?

----------

## bibi.skuk

A vrai dire, j'ai une profonde aversion pour les barres de tache, donc, je n'ai jamais tester FvwmTaskBar, mais c'est bon a savoir.

----------

## bosozoku

En effet karnevil c'est moi qui est reproduit la barre des taches de fluxbox que je trouve très pratique.

Voici ma config : http://www.stationlinux.org/fvwm/fvwm2rc.html

Il faut regarder la config du FvwmButtons Panel qui contient tout simplement la barre des taches : le module FvwmIconMan

----------

## l.slysz

bon je viens juste d'installer fvwm, et   :Twisted Evil: 

boudjou que c'est mauche   :Laughing: 

et je me sent tout perdu  :Confused: 

par exemple, j'ai lu qu'il existait des themes, mais j'ai pas encore compris comment on les met en place   :Embarassed: 

un petit coup de pouce serait le bienvenu   :Sad: 

----------

## bosozoku

Bonjour l.slysz, oué Fvwm est très moche par défaut  :Smile: 

Je te propose d'installer ma config pour te donner une petite idée de ce que tu peux faire. En fait on parle de thème mais c'est simplement le fichier ~/.fvwm/.fvwm2rc et les fichiers images ou autres que tu utilises en plus.

J'ai créé une archive ou tu n'as qu'a la décompresser dans ton répertoire personnel puis redémarrer Fvwm pour voir les changements. Etant donné que tu pars de 0 tu peux être sur que tu ne perdras rien  :Wink: 

http://www.stationlinux.org/wiki/wakka.php?wiki=BosoZoku

(Mon dernier thème est carbone).

----------

## l.slysz

déja, je peux dire que tu as fait du joli boulot !   :Wink: 

ce que je n'ai pas bien saisi :

- la console à la Quake, elle n'est pas censée descendre quand on appuie sur ² ?

- la barre sur la droite qui est retractable, c'est normal qu'elle ne contienne rien à part l'heure, la date, des logos pour le proc, la ram, les hdd, mais pas de texte et rien en dessous de la vue des 4 bureaux virtuels ?

----------

## bosozoku

Merci  :Smile: 

Pour la console j'ai mis ctrl+² car j'ai parfois besoin du ² tout seul.

Oui il n'y a rien dans la barre rétractable tout simplement parce que je ne sais pas quoi mettre, alors si tu as des idées, n'hésite pas !

Sinon tu as vu que tu pouvais changer de thème à partir du menu ?

----------

## l.slysz

oky pour le ctrl+²   :Surprised: 

je suis un peu deçu du rendu de la console  :Very Happy:  va falloir que je vois pour mettre un fond plutot rouge sang comme sous Q3 si j'ai de bon souvenir   :Twisted Evil: 

et sinon pour la barre retractable sur la droite, pourquoi ne pas afficher la frequence actuelle du proc, quantité de ram utilisée/ram total, statistique sur les partitions montées, et l'etat des connexions reseaux, soyons fou   :Laughing: 

ps: je n'ai pas du tout regardé le coté de faisabilité de ce que je viens d'enoncer   :Razz: 

----------

## bibi.skuk

 *l.slysz wrote:*   

> ps: je n'ai pas du tout regardé le coté de faisabilité de ce que je viens d'enoncer  

 

Avec Fvwm on ne se demande si c'est possible, on se demande comment faire...

avec un simple FvwmScript qui contiendrait des `cat` c'est possible autrement, on peut faire un swallow de conky ou torsmo.

----------

## bosozoku

l.slysz : pour le rendu de la console c'est toi qui choisi hein  :Wink: 

Pour la fréquence actuelle du proc je ne sais pas si ma carte mère peut le faire, en effet avec le module de E17 ça ne met rien. la quantité de ram ça existe déja et le reseau aussi, regarde bien les petites images.

Voila dans l'ordre : charge cpu, reseau, accès disque, swap et ram.

----------

## gulivert

 *bosozoku wrote:*   

> l.slysz : pour le rendu de la console c'est toi qui choisi hein 
> 
> Pour la fréquence actuelle du proc je ne sais pas si ma carte mère peut le faire, en effet avec le module de E17 ça ne met rien. la quantité de ram ça existe déja et le reseau aussi, regarde bien les petites images.
> 
> Voila dans l'ordre : charge cpu, reseau, accès disque, swap et ram.

 

Pour la fréquence du proc, no soucis, suffit de faire un petit script fvwm qui appelle cette commande

```
grep "cpu MHz" /proc/cpuinfo|cut -d ' ' -f 3-3
```

Sa donnerais ça en script Fvwm

```
WindowTitle {FvwmACPI}

WindowSize 85 24      # Taille

WindowPosition 0 0      # Position

#ForeColor   {black}

#BackColor   {grey85}

#ShadowColor   {grey55}

#HilightColor   {grey100}

Colorset 35

Init

 Begin

  Set $mhz=(GetOutput {grep "cpu MHz" /proc/cpuinfo|cut -d ' ' -f 3-3} 1 -1)

  Set $mhz1=Mhz

  ChangeTitle 1 $mhz

  ChangeTitle 2 $mhz1

End

PeriodicTasks

Begin

    If (RemainderOfDiv (GetTime) 30)==0 Then

    Begin

        Set $mem = (GetOutput {grep "cpu MHz" /proc/cpuinfo|cut -d ' ' -f 3-3} 1 -1)

        ChangeTitle 1 $mem

    End

End

Widget 1

Property

 Size 60 24

 Position 0 0

 Colorset 32

 Font      "Shadow=1:xft:Bitstream Vera Sans:pixelsize=11:minspace=true"

 Flags Left

 Type ItemDraw

 Title {OK}

End

Widget 2

Property

 Size 25 24

 Position 60 0

 Colorset 32

 Font      "Shadow=1:xft:Bitstream Vera Sans:pixelsize=11:minspace=true"

 Flags Left

 Type ItemDraw

 Title {OK}

End

```

Sinon Lucky, j'ai testé ta config, vraiement joli, y a pas a dir, c'est du beau boulot. Par contre pour la bare de droite, je la trouve un peu vide sinon ça rox. Je me suis remis sur une config, Fvwm y a pas a dire, c'est de la bale. E17 c'est beau mais il manque le custom maison.

----------

## bosozoku

Ouep la barre de droite est très vide, va falloir que je la remplisse  :Smile: 

----------

## gulivert

Bon ben vu que je me rettape un theme, j'ai déjà un petit soucis. Rien de sorcier mais ça me prend tout de même la tête.

J'utilise peksystray dans un fvwmbutton, la pas de soucis, mon problème est que gaim, lorsque je l'iconifie dans peksystray, au lieu de ce mettre dans peksystray et de ne plus apparaitre sur le bureau, il met ça petite icone sur le bureau (dans iconbox), et justement le principe du systray est que cette icone ne dois justement appraitre nul part. Etrangement xchat ne me fait pas soucis. Une idée?

Je pense qui faut passe un paramètre à gaim genre 

```
Style "Liste de contacts"* queque chose, queque chose
```

Pour qu'il ne se fasse pas prendre dans l'iconbox lors d'iconification, mais quel paramètre?

Merci d'avance

----------

## bibi.skuk

NoIcon non ??

----------

## gulivert

 *bibi.skuk wrote:*   

> NoIcon non ??

 

Bienvue, je l'avais oublié lui   :Very Happy: 

Merci

----------

## truc

salut  :Smile: 

en fait c'est bon, mais pour les curieux, vous pouvez vous rendre ici

voila, j'ai un petit problème avec ça:

ce que j'ai 

```
cat .fvwm/choix

SetEnv wallpaper 1280x1024_spiral

Read $[fvwm_colors]/1280x1024_ironforge

```

et mon problème

```
DestroyFunc FvwmWallpaperEnv

AddToFunc FvwmWallpaperEnv

+ I PipeRead 'grep -v "fvwm_colors" $[fvwm]/choix > $[fvwm]/tmp ; \

          echo "Read \$[fvwm_colors]/$0" >> $[fvwm]/tmp ; '

```

Malgré le \$  $[fvwm_colors] est remplacé par sa valeur.. et ce n'est pas vraiment ce que je veux... :

dans FvwmConsole si je fais FvwmWallpaperEnv qsdfmlk

voila ce que j'obtiens:

```
cat .fvwm/tmp 

SetEnv wallpaper 1280x1024_spiral

Read /home/myname/.fvwm/wallpapers/colors/qsdfmlk

```

Auriez vous une idée? (sachant que dans un terminal 

grep -v "fvwm_colors" ~/.fvwm/choix > ~/.fvwm/tmp ; echo "Read \$[fvwm_colors]/$0" >> ~/.fvwm/tmp fonctionne comme je le souhaiterai..

Merci:)Last edited by truc on Mon Nov 21, 2005 5:12 pm; edited 1 time in total

----------

## FlexOrFlex

Salut tout le monde bon voila je tourne pas autour du pot j'aimerais comme j'ai deja vu dans un screenshot incorporer le systeme de thumbnails de Taviso a une dockbar...

si vous pouviez m'eclairer je vous en serait reconnaissant merçi ^^

----------

## bosozoku

Tu as peut être vu les thumbnails dans Engage. Malheuresement E17 bouge énormément et c'est quasiment sur que ça ne marche plus (à moins de retrouver une autre méthode). Si tu as vu dans un dock Fvwm, c'est possible de le simuler si ton dock ne bouge pas, tout simplement en indiquant les bonnes coordonnées à ta IconBox.

----------

## bibi.skuk

un swallow de ta IconBox ??

----------

## bosozoku

 *bibi.skuk wrote:*   

> un swallow de ta IconBox ??

 

J'y ai pensé mais je ne sais pas si c'est possible, si ça l'est c'est génial  :Very Happy: 

----------

## FlexOrFlex

Ok merçi je vais me pencher là dessus,si j'arrive a en sortir un truc sympa je le posterai avec une petite serie de screenshots...

----------

## bibi.skuk

allez hop voilou...

http://fvwm.lair.be/viewtopic.php?t=283&highlight=swallow+iconbox

on ne se demande pas si on peut, mais comment on peut avec Fvwm

----------

## gulivert

Nouvelle question au sujet du FvwmButton.

J'ai un Fvwmbutton qui affiche en début de dock, des icons prenant toute la hauteur du FvwmButton, ensuite je veux y mettre des objets mais

au lieu d'etre sur une ligne j'aimerais qu'ils soient sur 2 lignes. Du coup je me suis pris comme ça mais ça ne veut fonctionner.

```
DestroyModuleConfig dock: *

*dock: Geometry 800x48+560-0

*dock: Font "Shadow=0 b bl r br r :xft:Bitstream Vera Sans:bold:pixelsize=11:minspace=True"

*dock: Colorset 39

*dock: Rows 2

*dock: Columns 800

*dock: BoxSize fixed

*dock: Frame 0

*dock: (54x46+10+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/gentoo.png, ActionOnPress, Action(Mouse 1) `Menu MenuFvwmRoot Rectangle +$left+46 0 0m`)

*dock: (46x46+65+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/thunderbird.png, ActionOnPress, Action(Mouse 1) `DockLaunch "thunderbird" $left $top`)

*dock: (46x46+112+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/firefox.png, ActionOnPress, Action(Mouse 1) `DockLaunch "firefox" $left $top`)

*dock: (46x46+159+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/gaim.png, ActionOnPress, Action(Mouse 1) `DockLaunch "gaim" $left $top`)

*dock: (3x46+210+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/separator.png)

*dock: (3x20+655+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/separator.png)

*dock: (20x20+665+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/desk_1.png, ActionOnPress, Action(Mouse 1) `GoToDesk 0 0`)

*dock: (20x20+685+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/desk_2.png, ActionOnPress, Action(Mouse 1) `GoToDesk 0 1`)

*dock: (20x20+705+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/desk_3.png, ActionOnPress, Action(Mouse 1) `GoToDesk 0 2`)

*dock: (20x20+725+0, Padding 0 0, Icon $[fvwm_icon_laptop_path]/desk_4.png, ActionOnPress, Action(Mouse 1) `GoToDesk 0 3`)

*dock: (40x20+750+0, Padding 0 0,  Frame 0,  Swallow (UseOld, NoClose) clock `FvwmScript clock 30`)

*dock: (24x24+665+1, Padding 0 0, Icon $[fvwm_icon_laptop_path]/sound.png)
```

Entre autre ici c'est la dernière ligne que je veux en dessous de l'icone desk_1.png. Pour la hauteur du dock j'y ai bien mis 2 lignes, ensuite j'affiche desk_1.png sur 0 et je me suis dit quand mettant sound.png à la ligne 1 ça le ferait, ben non, le FvwmButton ne démarre pas comme ceci.

Help me.....   :Very Happy: 

----------

## gulivert

Bon ben je me réponds, il me suffit de passé le nombre de row a 48 (=hauteur du dock en PX) puis de mettre ce que je veux sur la première ligne par ex a la deuxième ligne, puis ce que je veut sur la deuxième ligne de mettre en row 24 et ça fonctionne ainsi

----------

## bosozoku

Désolé gulivert j'arrive trop tard !

J'ai moi aussi une petite question : je voudrais avoir un dock qui soit capable de lancer l'application si elle n'existe pas encore, d'aller direct dessus si il y'a une fenêtre et d'ouvrir un menu dynamique qui me permette de choisir si il y'en à plusieurs.

Pour le menu je sais faire grace aux menus dynamiques de Taviso, par contre la ou je bloque completement c'est de détecter si il y'a une ou plusieurs fenêtres...

Voici ce que j'avais fait : http://fvwm.lair.be/viewtopic.php?t=993

Mais ça marche pas du tout, alors si quelqu'un à une solution  :Smile: 

----------

## ryo-san

lut lucky

alors je viens de tester ton  code qui est plutot pas mal je dois dire, seulement il faut juste le peaufiner.

le probleme dans la fonction c'est que la variable nbr_fenetre est remise a zero a chaque appel , sinon elle marche. je crois que j'ai modifie 2 ou 3 trucs mais elle fonctionne.

un petit truc : si tu ne l'a pas, tu devrait utiliser "root-tail" , petit prog pour afficher sur l'ecran les logs choisi, je m'en sers pour lire xsession-errors , pour debugger c'est pas mal.

le code actuel : 

```

 AddToFunc TestFunc

+ I SetEnv nbr_fenetre 0

+ I Current All (Gvim) PipeRead 'echo SetEnv nbr_fenetre $$(($$nbr_fenetre + 1))'

+ I Test (EnvMatch nbr_fenetre 0) Exec gvim

+ I PipeRead 'if [ ${nbr_fenetre} -eq 1 ];then \

              echo "Next (Gvim) WindowListFunc"; \

                     elif [ ${nbr_fenetre} -gt 1 ]; then \

                   echo "Popup MenuPlusieursFenetres"; \

               fi'

+ I echo $[nbr_fenetre]

```

Hum, ouais , c'etait les point-virgule qu'il manquait dans les lignes des "echo".

ca m'interesse, je vais regarder de mon cote aussi apres manger.

----------

## bosozoku

Merci pour avoir corrigé le code mais en fait j'ai l'impression que tu as beau avoir 50 gvim d'ouverts, $[nbr_fenetre] ne dépassera jamais 1.

Ceci ne marche que dans un  menu dynamique, mais comment faire sans ? snif  :Sad: 

edit : merci beaucoup pour root-tail, je ne connaissais pas mais je l'ai adopté dès que je l'ai lancé  :Smile: 

----------

## Darkael

 *bosozoku wrote:*   

> Désolé gulivert j'arrive trop tard !
> 
> J'ai moi aussi une petite question : je voudrais avoir un dock qui soit capable de lancer l'application si elle n'existe pas encore, d'aller direct dessus si il y'a une fenêtre et d'ouvrir un menu dynamique qui me permette de choisir si il y'en à plusieurs.
> 
> Pour le menu je sais faire grace aux menus dynamiques de Taviso, par contre la ou je bloque completement c'est de détecter si il y'a une ou plusieurs fenêtres...
> ...

 

As tu essayé la solution qu'on te propose à la fin de l'autre thread (avec les deux Next)?  Ca a l'air de fonctionner.

----------

## ryo-san

bon il marche pas mal aussi l'autre code mais il ouvre WindowlistFunc tout le temps...

en fait tu voudrais a un instant T verifier si il y a une ou plusieurs fenetres :

- si pas , on l'ouvre

- si une windowsListFunc

- si plus d'une CeKeTuVeuxFunc

mais tu comptes ouvrir ces instances d' application du meme bouton ou pas ?

----------

## bosozoku

Oui bien sur tout ça à partir du même bouton !

Exemple : j'ai un bouton "terminal" dans mon dock. Si il existe aucun term quand je clic dessus ça le lance. Si ya un term, windowlistfunc, si y'en à plussieurs : cequejeveuxFunc.

KarnEvil : si je ne veux pas utiliser la dernière solution c'est parce que je ne la comprend pas...   :Embarassed: 

----------

## gulivert

Bon je reviens a la charge, j'ai deux petits soucis qui me prenne bien la tête avec Iconman.

1.- J'aimerais que iconman s'affiche sur deux lignes, c'est possible? Pour info pour cette partie de config que je me base sur la config de Lucky. Qui affiche l'iconman sur une ligne. Perso ce que je voudrais c'est que iconman affiche un max de 6 appli sur une ligne une fois six applis ouvertes il passe sur la deuxieme ligne. Ou mieux, première appli ouverte, se met dans la premiere ligne a gauche, deuxieme appli ouverte, ce met en dessous, troisième appli ouverte se met a droite de la première, ainsi de suite, par contre je sais pas si c'est possible.

Deuxio, j'affiche pour l'iconman des .png arrondi sur les bord, mais lorsque le rectangle d'iconman est trop grand les coins arrondis sont tout déformé, pouvons nous forcé la taille d'un rectangle définit dans une largeur hauteur, et qu'il fasse ni moin ni plus que c'est hauteur. merci d'avance

----------

## bibi.skuk

 *gulivert wrote:*   

> Bon je reviens a la charge, j'ai deux petits soucis qui me prenne bien la tte avec Iconman.
> 
> 1.- J'aimerais que iconman s'affiche sur deux lignes, c'est possible? Pour info pour cette partie de config que je me base sur la config de Lucky. Qui affiche l'iconman sur une ligne. Perso ce que je voudrais c'est que iconman affiche un max de 6 appli sur une ligne une fois six applis ouvertes il passe sur la deuxieme ligne. Ou mieux, premire appli ouverte, se met dans la premiere ligne a gauche, deuxieme appli ouverte, ce met en dessous, troisime appli ouverte se met a droite de la premire, ainsi de suite, par contre je sais pas si c'est possible.
> 
> Deuxio, j'affiche pour l'iconman des .png arrondi sur les bord, mais lorsque le rectangle d'iconman est trop grand les coins arrondis sont tout dform, pouvons nous forc la taille d'un rectangle dfinit dans une largeur hauteur, et qu'il fasse ni moin ni plus que c'est hauteur. merci d'avance

 

Moi j'ai mon iconman qui se fait sur plusieurs lignes, j'ai fixÃ© la taille, et dÃ¨s qu'elle depasse... il passe a la ligne d'au-dessus (c'est au bas de 

l'ecran...) de la a avoir un truc plus complexe, j'en ai aucune idÃ©e.

----------

## gulivert

Bon ok a force de tester et de lire et relire le man j'arrive plus ou moin a quelque chose. Donc j'arive a le mettre sur deux ligne comme je le souhaite en mettant ça

```
*FvwmIconMan: ManagerGeometry 0x2+0+0

```

Pour fixer la largeur du bouton ok avec ça 

```
*FvwmIconMan: ButtonGeometry    115x18

```

donc mes pixmaps ne sont plus déformé

Pour mes autres problèmes je testerai encore un peu avant de poster cette fois, j'ai été un peu vite en besogne   :Very Happy: 

----------

## gulivert

Bon cette fois j'ai quelques questions que je n'arrive pas résoudre seul.

Au sujet de l'iconman, il affiche deux ligne, et il n'est pas limité en nombre de colonne, n'ayant pas tout compris à ça configuration j'aimerais savoir si je peux le limiter à 3 colonnes ???

Deuxième chose, lorsque l'iconman à rempli ses 3 colonnes et deux lignes, j'aimerais qu'il regroupe les application de même classe, et lors d'un clique sur le rectangle du "groupe" d'application, qu'il ouvre un popup en demandant qu'elle appli doit etre lancée. Est-ce possible ?

Dernière petite question, est il possible, dans fvwmbutton, d'afficher une deux icones pour une seul appli. Exemple simple, j'ai une icone firefox qui apparait dans mon fvwmbutton, maintenant j'aimerais que lorsque firefox est déjà lancé, que dans FvwmButton l'icone soit remplacé par une autre.

Merci 'davance pour votre aide.

----------

## bosozoku

Pour ta première question, j'en sais rien mais je sais que j'avais pas trouvé super la gestion des boutons dans IconMan.

 *Quote:*   

> Deuxième chose, lorsque l'iconman à rempli ses 3 colonnes et deux lignes, j'aimerais qu'il regroupe les application de même classe, et lors d'un clique sur le rectangle du "groupe" d'application, qu'il ouvre un popup en demandant qu'elle appli doit etre lancée. Est-ce possible ? 

 

A mon avis c'est pas possible, faudrait dire à FvwmIconMan qu'un bouton corresponde à un menu si y'a plusieurs fenêtres du même type... Gnome et kde font ça très bien mais pour fvwm je sèche bien que ça serait vraiment super !

 *Quote:*   

> Dernière petite question, est il possible, dans fvwmbutton, d'afficher une deux icones pour une seul appli. Exemple simple, j'ai une icone firefox qui apparait dans mon fvwmbutton, maintenant j'aimerais que lorsque firefox est déjà lancé, que dans FvwmButton l'icone soit remplacé par une autre. 

 

Ah ça par contre c'est pas dur ! Tu mets une icône par defaut et avec une petite fonction lancée à chaque fois que tu clics sur le bouton ou à chaque ouverture de fenêtre avec FvwmEvent, tu testes si ta fenêtre existe et si oui alors tu indiques à FvwmButton de changer son icone.

Je n'ai pas testé mais ça pourrait donner un truc de ce genre : 

```
*FvwmEvent : add_window AddWindowFunc

AddToFunc AddWindowFunc

+ I All ou Test (Firefox-Bin) SendToModule Panel ChangeButton icone Icon $[img]/truc.png

+ I TestRc (NoMatch) Exec firefox

(ou + I None (Firefox-Bin) Exec firefox

*Panel: (35x23, id icone, Icon $[img]/firefox.png, Action(Mouse 1) AddWindowFunc)
```

Je sais pas du tout si ça fonctionne car j'ai pas Fvwm sous la main mais ça ne me paraît pas infaisable.

----------

## DidgeriDude

Salut à tous :

Tout d'abord à Bosozoku : je suis vraiment désolé pour la traduction de la partie 4 de la FAQ. J'ai en effet vu hier que tu avais terminé seul et même si mon temps m'est de plus en plus compté depuis cet été (femme et enfant d'un seul coup !!), j'ai eu les boules pour toi alors que je n'avais pas oublié  :Sad:  Mea culpa.

Ensuite, ben après un passage de quelques mois sur E17, j'ai décidé de me remettre à FVWM. Je reprends donc, tout doucement, mon idée de faire un fichier de config paramétré par des variables, à coup de PipeRead et menus dynamiques à tout va (par exemple à partir d'une syntaxe particulière dans un fichier). Mais avant d'atteindre cet objectif qui d'ailleurs me parait loin, je me suis penché sur les scripts de Gulivert en ce qui concerne les "emerge sync", "update world", etc. par les menus. J'en arrive à mon pb :

Peut-on faire en sorte que, dans une fonction, une action soit réellement effectuée après que la précédente qui est un Exec ..... est terminée ?

En fait, en ce qui concerne l'Emerge sync, je veux faire apparaître une boite de dialogue qui me dit qu'il s'est bien passé ou qu'au contraire il ne s'est pas terminé.

Le seul moyen que j'ai trouvé est de lancer la commande dans une fenêtre xterm avec une classe particulière (SyncXTerm) et d'utiliser FvwmEvent lors de la fermeture de la fenêtre pour lancer ma fonction avec FvwmForm :

```
DestroyMenu MenuGentoo

AddToMenu MenuGentoo

+ "= Menu Gentoo ="                                     Title MenuGentoo

+ "Emerge sync"                                                 Function PortageSync

(...)

DestroyFunc PortageSync

AddToFunc PortageSync

+ I SetEnv Sync_OK 0

+ I Exec uxterm -geometry 100x40 -class SyncXTerm -e $[scripts_dir]/gentoo.sh sync

DestroyFunc DialogSync

AddToFunc DialogSync

+ I DestroyModuleConfig sync: *

+ I *sync: Font "-*-bitstream vera serif-bold-*-normal-*-11-*-*-*-*-*-iso10646-1"

+ I *sync: ButtonFont "-*-bitstream vera serif-bold-*-normal-*-10-*-*-*-*-*-iso10646-1"

+ I *sync: Colorset 33

+ I *sync: ItemColorset 34

+ I *sync: Line center

+ I *sync: Text "Synchronisation de l'arbre de portage"

+ I *sync: Line center

+ I PipeRead 'if [ $$0 = 1 ] ; then echo *sync: Text \\"effectuée avec succès !\\" ; else echo *sync: Text \\"non effectuée \\(Interrompue !!\\)\\" ; fi'

+ I *sync: Line center

+ I *sync: Line center

+ I *sync: Button quit "   OK   " ^M

+ I *sync: Command Nop

+ I *sync: Line center

+ I Module FvwmForm sync

(...)

DestroyModuleConfig FvwmEvent: *

*FvwmEvent: StartDelay 2

*FvwmEvent: PassId

(...)

*FvwmEvent: destroy_window CloseWindowFunc

(...)

DestroyFunc CloseWindowFunc

AddToFunc CloseWindowFunc

+ I ThisWindow ("SyncXTerm") Function DialogSync $[Sync_OK]
```

et le script gentoo.sh :

```
#!/bin/bash

case $1 in 

    sync)

        sudo emerge sync && FvwmCommand 'SetEnv Sync_OK 1' ;;

    etc)

        sudo etc-update ;;

esac
```

D'où ma question : Y-a-t'il plus simple ?

Sinon, je ne comprends rien à l'utilisation des fontes par fvwm (je copie la sortie de xfontsel pour avoir ce qui m'intéresse, mais je reste dans le flou. Qu'est-ce donc que xft et comment cela fonctionne-t-il avec FVWM ? (Je sais que Google est mon ami, mais je préfère là l'avis de gens qui utilisent, non qui renseignent !)

Merci d'avance.

----------

## Darkael

 *Quote:*   

> 
> 
> ```
> 
> #!/bin/bash
> ...

 

Pourquoi ne pas juste lancer directement la fonction DialogSync depuis le script?

```

 sudo emerge sync && FvwmCommand 'DialogSync 0' || FvwmCommand 'DialogSync 1'

```

 *Quote:*   

> 
> 
> Sinon, je ne comprends rien à l'utilisation des fontes par fvwm (je copie la sortie de xfontsel pour avoir ce qui m'intéresse, mais je reste dans le flou. Qu'est-ce donc que xft et comment cela fonctionne-t-il avec FVWM ? (Je sais que Google est mon ami, mais je préfère là l'avis de gens qui utilisent, non qui renseignent !)
> 
> 

 

xft c'est ce qui permet d'afficher des fontes TrueType (celles qui terminent en .ttf) Ca permet de faire plein de trucs comme l'anti-aliasing, effets d'ombres, etc. Et la syntaxe est plus simple et intuitive que les fontes traditionnelles. Par exemple, pour avoir Bitstream Vera Sans Mono en taille 11 et gras, tu fais juste:

```

Font "xft:Bitstream Vera Sans Mono:size=11:Bold

```

Pour avoir une liste des fontes disponibles pour xft, lance fc-list.

Si tu veux plus d'infos, fais une recherche dans le man fvwm sur "If  you  have  Xft  support".

----------

## DidgeriDude

 *KarnEvil wrote:*   

> 
> 
> Pourquoi ne pas juste lancer directement la fonction DialogSync depuis le script?
> 
> ```
> ...

 

J'ai bien pensé à cette unique commande mais dans ce cas-là, rien ne s'affiche si la fenêtre dans laquelle l'Emerge sync se déroule vient à se fermer pour une raison ou une autre. A moins qu'il y ait une façon de faire que cela ne puisse pas arriver !

(Euh, ne faudrait-il pas inverser le 0 et le 1 ??)  :Wink: 

Sinon, merci, je vais jeter un oeil sur XFT. Ça me paraissait intéressant mais je ne trouvais aucune police avec locate alors je pensais que je devais activer un truc... Je vais me pencher la-dessus !

----------

## Darkael

 *DidgeriDude wrote:*   

>  *KarnEvil wrote:*   
> 
> Pourquoi ne pas juste lancer directement la fonction DialogSync depuis le script?
> 
> ```
> ...

 

Ah, ben dans ce cas là je vois pas autre chose que le faire avec FvwmEvent   :Confused: 

 *Quote:*   

> 
> 
> (Euh, ne faudrait-il pas inverser le 0 et le 1 ??) 
> 
> 

 

Je sais pas j'y ai pas réfléchi   :Very Happy: 

 *Quote:*   

> 
> 
> Sinon, merci, je vais jeter un oeil sur XFT. Ça me paraissait intéressant mais je ne trouvais aucune police avec locate alors je pensais que je devais activer un truc... Je vais me pencher la-dessus !

 

Juste un petit truc: oublie pas qu'il faut que Fvwm soit compilé avec le flag truetype pour le support xft

----------

## netfab

Yop !

Bon, je me suis remis à fvwm, après un petit passage par xfce.

Y'a pas à tortigner, si on veut quelque chose de rapide, pas lourd, et pas trop buggé, fvwm est là.

Et du coup, j'ai repris mon ancienne config, et j'ai décidé de la refaire entièrement, mais cette fois-ci, correctement  :Smile: 

J'ai donc commencé par me concevoir un dock avec FvwmButtons, pour y mettre quelques applis à lancer.

Mais ce dock, je voulais qu'il se rétracte automatiquement lorsque le pointeur de la souris le quittait, et qu'il réapparaisse lorsque le pointeur arrivait dans la zone.

J'ai jeté un oeil dans la config de Taviso, ce qui m'a dirigé vers la FAQ de fvwm, où l'on y trouve quelques fonctions toute prêtes.

Après quelques tests, il se trouve que ce n'est pas vraiment au point : çà ne fonctionnait que dans certains bureaux virtuels (ceux du bas dans le pager), et j'avais des erreurs qui s'affichaient dans la FvwmConsole :/

Je suis donc retourné dans la config de Taviso, et j'ai extrait les fonctions qui lui permettent de cacher/afficher sa console, plus quelques autres.

J'ai effectué quelques modifications, mixé le tout, et voilà le résultat :

```

# ****************************************************************************

#

# I.   Définitions Variables

#

# II.  Définitions Styles

#

# III. Définitions de Fonctions

#

# IV.  Définition du Dock

#

# V.   Lancement du Dock (ajout à la StartFunction)

#

# Liens :

#  - Gentoo French Forums : http://forums.gentoo.org/viewtopic-t-344091-start-275.html

#  - Taviso's Config : http://dev.gentoo.org/~taviso/fvwm2rc.html

#

# ****************************************************************************

# ============================================================================

# I. Définitions Variables

# ============================================================================

# 

      # largeur du dock en pixels

         SetEnv LargeurDock 800

      # hauteur du dock en pixels

         SetEnv HauteurDock 40

      # Partie visible du dock lorsqu'il est caché, en pixels (doit être plus petit que sa hauteur évidemment...)

         SetEnv VisiblePart 5

      # Temps en millisecondes au bout duquel le dock disparait lorsque le pointeur de la souris le quitte.

         SetEnv DockHideTime 2000

      # Temps en millisecondes au bout duquel le dock apparait lorsque le pointeur de la souris y entre.

         SetEnv DockShowTime 0

      # Temps en millisecondes au bout duquel le dock disparaît au démarrage de FVWM.

         SetEnv DockHideTimeOnFvwmStart 5000

      

      # Décommentez la ligne suivante si vous voulez que le mouvement du dock soit animé.

         #SetEnv AnimatedMovement 'Animated'

# ============================================================================

# II. Définitions Styles

# ============================================================================

# 

   Style "Dock"   NoTitle, Sticky, WindowListSkip, CirculateSkip, \

         !Maximizable, !Iconifiable, NeverFocus, NoHandles, Borderwidth 0

# ============================================================================

# III. Définitions de Fonctions

# ============================================================================

# 

####

# These functions modified from Taviso's configuration (Thanks !)

# http://dev.gentoo.org/~taviso/fvwm2rc.html

#################

      DestroyFunc LockingDockSlide

      AddToFunc LockingDockSlide

      + I Test (!State 2) Break

      + I State 1 toggle

      + I State 2 False

      + I $2Move $0 $1

      + I State 2 True

      DestroyFunc Autohide

      AddToFunc Autohide

      + I ThisWindow ($0) Deschedule $[w.id]

      + I TestRc (!Match) Deschedule -$[w.id]

      + I ThisWindow ($0, State 1) AutohideShow $1 $3

      + I TestRc (!Match) All ($0, !State 1) AutohideHide $2 $3

      DestroyFunc AutohideShow

      AddToFunc AutohideShow

      + I Schedule $0 -$[w.id] MoveDock $[w.y] $[w.height] $1

      + I Schedule $0 -$[w.id] Deschedule $[w.id]

      + I Schedule $0 -$[w.id] Deschedule -$[w.id]

      DestroyFunc MoveDock

      AddToFunc MoveDock

      + I PipeRead 'echo LockingDockSlide keep $$(test $$(($0+$1)) -le $[vp.height] && echo w$$(($1-$VisiblePart))p || echo w-$$(($1-$VisiblePart))p) $2'

      DestroyFunc AutohideHide

      AddToFunc AutohideHide

      + I Schedule $0 $[w.id] MoveDock $[w.y] $[w.height] $1

      + I Schedule $0 $[w.id] Deschedule $[w.id]

      + I Schedule $0 $[w.id] Deschedule -$[w.id]

      

      # Set the delays on Showing and Hiding here for the AutoHide functions.

      DestroyFunc FuncAutoEnter

      AddToFunc FuncAutoEnter

      + I Autohide Dock $[DockShowTime] $[DockHideTime] $[AnimatedMovement]

      

      DestroyFunc StartHiddenDock

      AddToFunc StartHiddenDock

      + I Autohide Dock 0 0 $[AnimatedMovement]

# ============================================================================

# IV.  Définition du Dock

# ============================================================================

# 

   DestroyModuleConfig Dock: *

   *Dock: Columns 800

   *Dock: Frame 1

   *Dock: Padding 2 2

   *Dock: Rows 128

   

   *Dock: (40x128, Icon '32x32/mozilla-firefox.png', ActionOnPress, Action(Mouse 1) 'DockLaunch firefox Firefox-bin $left $top', Action(Mouse 3) 'Next (Firefox-bin) Popup MenuFvwmWindowOps Rectangle +$left+$top -100m 0')

   

   *Dock: (760x128, Colorset 14, Frame 0)

# ============================================================================

# V. Lancement du dock (ajout à la StartFunction)

# ============================================================================

# 

   AddToFunc StartFunction

   + I Module FvwmButtons -g $[LargeurDock]x$[HauteurDock]-0-0 Dock

   + I Schedule $[DockHideTimeOnFvwmStart] StartHiddenDock

   + I Module FvwmAuto FvwmAutohide -menterleave FuncAutoEnter

```

Notes :

 Le dock est positionné en bas de l'écran. Si vous voulez le mettre sur les côtés, ou en haut, il faut modifier les fonctions en conséquence.

 Je n'ai mis que les fonctions essentielles, celles qui permettent le déplacement automatique du dock : les fonctions utilisées dans la définition du dock ne sont pas présentes.

 La définition du dock, je l'ai mise, mais c'est juste un exemple, de façon à ce que vous puissiez tester sur une config vierge.

 Pour la StartFunction, vous remarquerez qu'il n'y a pas de DestroyFunc StartFunction : tout simplement parce que je définis le début de ma StartFunction dans un autre fichier.

Voilà, çà peut toujours servir à quelqu'un.

Si vous trouvez un bug, ou une amélioration...

Je finirai pas une question : dans mon InitFunction, j'ai ceci :

```

+ I Exec exec /usr/libexec/gnome-settings-daemon

+ I Exec exec /usr/kde/3.4/bin/kdeinit

```

Quand je lance une application GTK ou KDE, c'est nickel.

Sauf pour OpenOffice2, où j'ai l'impression que c'est du GTK1.

Comment faire ?

Merci  :Smile: Last edited by netfab on Tue Dec 13, 2005 6:32 pm; edited 1 time in total

----------

## netfab

Ok, j'ai trouvé :

```
Exec OOO_FORCE_DESKTOP=gnome ooffice2
```

 :Very Happy: 

----------

## netfab

Salut,

J'ai une colle.

J'ai une fenêtre qui a le focus. Je presse une touche du clavier, evènement qui déclenche une fonction.

Dans cette fonction, je veux récupérer l'id de la fenêtre qui a le focus, pour le stocker dans une variable.

De façon à pouvoir redonner le focus à cette fenêtre par la suite, parce qu'elle va forcément le perdre pendant l'éxécution de la fonction.

Je n'arrive pas à récupérer l'id de la fenêtre.

Si çà se trouve, c'est hyper simple, mais je n'y parviens pas.  :Evil or Very Mad: 

----------

## DidgeriDude

Un truc dans ce genre-là ?

```
+ I ThisWindow SetEnv WindowFocus $[w.id]
```

Enfin, si j'ai bien tout compris...

----------

## netfab

Oui, c'est çà, sauf que, çà fonctionne pour les évènements à la souris, mais pas quand je presse une touche du clavier.

----------

## DidgeriDude

Salut,

J'ai une question concernant les menus de FVWM :

J'aimerais avoir des tabulations, ou des alignements dans mes menus. Je m'explique :

Si un menu contient :

A     Truc  >

BC   Bidule  >

DEF  Chouette  >

j'aimerais que les mots 'Truc', 'Bidule' et 'Chouette' soient alignés.

J'ai pensé à utiliser ItemFormat avec des %l mais à partir de là, impossible de créer une ligne dans AddToMenu qui me donne quoi que ce soit. Pourtant la page de manuel donne :

 *Quote:*   

> MenuStyle * ItemFormat "%.4s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|"
> 
> Is the default string used by fvwm: (side picture + 4 pixels gap) (beginning of the hilighted area + 1 pixel gap) (mini icon + 5p) (first column left aligned + 5p) (second column left aligned + 5p) (third column right aligned + 5p) (second mini icon + 5p) (2p + sub menu triangle + 3p) (1p + end of hilighted area).

 

J'avoue que je ne comprends pas comment fonctionne cette histoire de colonnes !

Si vous pouvez m'éclairer... (car google n'a pas pu  :Sad:  )

----------

## Darkael

 *NetFab wrote:*   

> Oui, c'est çà, sauf que, çà fonctionne pour les évènements à la souris, mais pas quand je presse une touche du clavier.

 

La ligne que t'as donné Djideridude devrait marcher aussi au clavier. Es-tu sur que la fenetre a bien le focus quand tu presses la touche? (si t'es en ClickToFocus il faut cliquer sur la fenetre d'abord)

Pourrais tu donner tes lignes de config correspondantes? (si ça se trouves c'est une petite erreur toute bête)

----------

## netfab

Bon, finalement j'ai réussi à m'en sortir. Pas tout à fait comme je l'espérais au début, mais çà fonctionne.

En fait, je n'arrivais pas à récupérer le focus, à cause d'un autre problème.

J'utilise fvwm 2.5.12, et j'avais ceci dans mon code :

```

+ I Test (EnvIsSet LastWindow) WindowId $[LastWindow] Focus

```

Et apparemment, le EnvIsSet LastWindow ne passe pas avec cette version.

Du coup j'ai fait un PipeRead.

Bon, voilà le résultat : une console à la quake, basée sur le code de bosozoku (http://www.stationlinux.org/fiche.140.html).

La console reste lancée au redémarrage de fvwm, elle garde la transparence, et reste exploitable après le redémarrage. Enfin bref, j'ai mis pas mal d'explications.

Si vous trouvez un bug ou une amélioration...  :Wink: 

```

# ****************************************************************************

# Console Quake

# Fonctions à l'origine basées sur http://www.stationlinux.org/fiche.140.html

# Fonctionne avec FVWM 2.5.12 - Une amélioration possible avec versions ultérieures

#

# I.    Définitions Variables

#

# II.   Définitions Styles

#

# III.  Définitions de Fonctions

#

# IV.  Définitions Raccourcis clavier

#

# V.   Définition Evènements

#

# VI.  Ajouts aux fonctions spéciales

#

# ****************************************************************************

# Gentoo French Forums : http://forums.gentoo.org/viewtopic-t-344091-start-275.html

# NOTES :

# - Au premier démarrage de fvwm, la console n'est pas lancée automatiquement. Si vous la voulez, jetez un oeil tout en bas de ce script.

# - Si vous fermez le terminal par un exit, la séquence de touches CTRL + ² le relance.

# - Lors d'un restart de FVWM, le terminal ne se ferme pas, et reste exploitable après le redémarrage (même avec la tranparence).

# - Lorsque l'on cache le terminal (WindowShade true) , il rend le focus à la dernière fenêtre qui l'avait, à condition

#    d'être sur le même bureau virtuel (CurrentPage) que cette fenêtre (?). 

#    Cependant, il y a un effet de bord, à vous de le découvrir (amélioration possible).

# - Si par exemple, dans un menu, vous voulez switcher l'état du terminal  (WindowShade toggle) : appelez la fonction CreateOrToggle

# - Si par exemple, dans un menu, vous voulez à coup sûr afficher la console (WindowShade False) : appelez la fonction StartTerminal

# ============================================================================

# I. Définitions Variables

# ============================================================================

# 

# définition type de console, avec ses paramètres.

SetEnv Console 'aterm -tr +sb -bg black -sh 50 -fg white -fn *-*-fixed-medium-r-normal--*-140-*-*-*-*-iso8859-1'

# Nombre de lignes dans le terminal.

# Détermine la hauteur de la console en fonction de la police utilisée.

SetEnv LinesNumber 20

# temps en millisecondes au bout duquel la console se cache, au redémarrage de fvwm.

SetEnv TimeToShade 4000

# Ne pas toucher

# Avec une version ultérieure à fvwm 2.5.12, on peut supprimer cette ligne (voir fonction WaitShadeAndFocus).

SetEnv LastWindow 0

# ============================================================================

# II. Définitions Styles

# ============================================================================

# 

Style GameConsole NoHandles, !Borders, NoTitle, FixedPosition, WindowListSkip, Sticky

# ============================================================================

# III. Définitions de Fonctions

# ============================================================================

# 

# Fonctions à l'origine basées sur http://www.stationlinux.org/fiche.140.html

DestroyFunc SetVarsConsole

AddToFunc SetVarsConsole

+ I SetEnv LastWindow $[Var1]

+ I SetEnv Var1 $[w.id]

DestroyFunc CreateOrToggle

AddToFunc CreateOrToggle

+ I All (GameConsole) ToggleTerminal

+ I None (GameConsole) StartTerminal False

DestroyFunc ToggleTerminal

AddToFunc ToggleTerminal

+ I All (GameConsole, Shaded) FocusRaiseAndUnshade

+ I TestRc (NoMatch) WaitShadeAndFocus 0

DestroyFunc ShowConsole

AddToFunc ShowConsole

+ I All (GameConsole, Shaded) FocusRaiseAndUnshade

DestroyFunc FocusRaiseAndUnshade

AddToFunc FocusRaiseAndUnshade

+ I Focus

+ I Raise

+ I WindowShade False

DestroyFunc WaitShadeAndFocus

AddToFunc WaitShadeAndFocus

+ I All (GameConsole) Schedule $0 WindowShade True

+ I PipeRead 'test "$[LastWindow]" != "0" && echo "WindowId $[LastWindow] (CurrentPage) Focus" || echo Nop'

# version ultérieure à 2.5.12 : la ligne ci-dessus peut certainement être remplacée par celle du dessous.

# Et dans ce cas, supprimer la définition de la variable LastWindow au début de ce fichier.

#+ I Test (EnvIsSet LastWindow) WindowId $[LastWindow] (CurrentPage) Focus

DestroyFunc StartTerminal

AddToFunc StartTerminal

+ I All (GameConsole) FocusRaiseAndUnshade

+ I TestRc (Match) Break

+ I Style GameConsole VariableSize

+ I Exec exec $[Console] -geometry 150x$[LinesNumber]+0+0 -name GameConsole

+ I Wait GameConsole

+ I All (GameConsole) Resize 101 keep

+ I Style GameConsole FixedSize

+ I UpdateStyles

+ I Test ($0) WaitShadeAndFocus $[TimeToShade]

# ============================================================================

# IV. Raccourcis (Bindings)

# ============================================================================

# CTRL + ²

Key twosuperior A C CreateOrToggle

# ============================================================================

# V. Définition Evènements

# ============================================================================

# 

*FvwmEvent: focus_change SetVarsConsole

# ============================================================================

# VI. Ajouts aux fonctions spéciales

# ============================================================================

# 

# Notes :

# - Dans ma configuration, les débuts de ces fonctions sont définis dans un autre fichier

#   C'est pourquoi il n'y a pas de 'DestroyFunc xxxxx'

AddToFunc StartFunction

+ I Module FvwmEvent

+ I Test (Restart) WaitShadeAndFocus $[TimeToShade]

AddToFunc ExitFunction

+ I ShowConsole

# Décommentez les 2 dernières lignes pour que le terminal se lance automatiquement au premier démarrage de fvwm.

#   #         StartTerminal True ===> lance le terminal, et le cache au bout de  $[TimeToShade] millisecondes.

#   #         StartTerminal False ===> lance le terminal.

#AddToFunc InitFunction

#+ I StartTerminal True

```

Last edited by netfab on Mon Dec 19, 2005 11:01 am; edited 3 times in total

----------

## netfab

 *DidgeriDude wrote:*   

> 
> 
> Si un menu contient :
> 
> A     Truc  >
> ...

 

Je vois que tu as fini par trouver.

En fait, c'est décrit dans la manpage :

 *Quote:*   

> All text up to the first Tab in the menu label is aligned to the left side of the menu, all text right of the first Tab is aligned to the left in a second column and all text thereafter is placed right aligned in the third column. All other Tabs are replaced by spaces. Note that you can change this format with the ItemFormat option of the MenuStyle command.

 

A rapprocher de ceci que l'on trouve (beaucoup) plus bas :

 *Quote:*   

> Examples:
> 
>     MenuStyle * ItemFormat \
> 
>       "%.4s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|"
> ...

 

Mais il est vrai que parfois, pour trouver une info dans cette satanée manpage, ce n'est pas évident.  :Laughing: 

----------

## DidgeriDude

En effet NetFab, je me suis bien pris la tête avec la page man pour arriver à ce que je voulais, en m'aidant des scripts de chombat.net !!

(Et là grande était ma fierté de posséder sur ma machine un gros dossier de fichiers de configs glanés un peu partout !!)

Et quand je pense qu'il aurait été si simple d'écrire bêtement que les différents champs ou colonnes dans un menu étaient séparés par des tabulations dans la chaîne de caractères entre quillemets doubles dans le fichier de config !!!!

Bah, maintenant mes flags pour mon menu "updates" sont alignés...  :Laughing: 

----------

## geekounet

Bonjour, j'avance petit à petit dans ma config.

Je me demandais comment on enlève ces hideuses barres hozizontales dans la barre de titre des fenêtres sticky ?

Merci.

----------

## Darkael

 *pierreg wrote:*   

> Bonjour, j'avance petit à petit dans ma config.
> 
> Je me demandais comment on enlève ces hideuses barres hozizontales dans la barre de titre des fenêtres sticky ?
> 
> Merci.

 

La dernière fois que j'ai regardé ce n'était possible qu'en modifiant le code de Fvwm.... peut-être que ça a changé entretemps mais je crois pas.

Il me semble que quelqu'un quelque part avait fait un patch, mais je sais plus où...

----------

## netfab

 *KarnEvil wrote:*   

> Il me semble que quelqu'un quelque part avait fait un patch, mais je sais plus où...

 

ici : http://edulinux.homeunix.org/fvwm/patches.html

Sinon, y'a une astuce sans patcher apparemment.

----------

## geekounet

OK merci, je vais essayer le patch.

----------

## bosozoku

NetFab : faudra que je regarde ce que tu as fait. Ça à l'air très sympa !

Bon me revoila avec comme toujours des soucis en bash... 

Je veux lire un fichier et effectuer différentes actions selon son contenu. Voici ce que je sais faire :

```
PipeRead `while read; do [[ "$REPLY" == "vert" ]] && echo ChangeThemeVert || echo Nop; done < $[FVWM_USERDIR]/test`

```

Seulement il y'a trois possibilités : vert, cathode ou defaut (et y'en aura d'autres, voila pourquoi je préfère faire un petit script plutot que de bidouiller). Je m'emmelle complètement les pinceaux avec les if, elif et fi ! J'ai essayé avec un case sans résultat : 

```
PipeRead `while read; case "$REPLY" in  

  "vert" ) echo ChangeThemeVert;;         

  "cathode" ) echo ChangeThemeCathode;;    

  "defaut" ) echo ChangeThemeDefaut;; 

esac; done < $[FVWM_USERDIR]/test`

```

Help !   :Confused: 

----------

## netfab

 *bosozoku wrote:*   

> Voici ce que je sais faire :
> 
> ```
> PipeRead `while read; do [[ "$REPLY" == "vert" ]] && echo ChangeThemeVert || echo Nop; done < $[FVWM_USERDIR]/test`
> 
> ...

 

çà, çà marche ?

Que contient ton fichier test ? Il définit la variable $REPLY ?

Dans ce cas, pourquoi ne pas faire directement quelque chose comme çà :

```
PipeRead `while read; do [[ "$REPLY" != "" ]] && echo ChangeTheme$REPLY || echo Nop; done < $[FVWM_USERDIR]/test`

```

En définissant $REPLY="Vert" ou $REPLY="Cathode" ou $REPLY="Defaut"

çà devrait marcher non ?

----------

## bosozoku

C'est parfait ! En effet le fichier test contient soit vert, cathode ou defaut.

Merci NetFab.

----------

## netfab

Regardez ce screen.

La fenêtre de gauche, je l'obtiens en cliquant avec la molette de la souris sur le titre du menu.

La fenêtre d'identification correspond à cette fenêtre.

Je ne parviens pas à modifier la couleur de fond. J'ai tout essayé, je n'y arrive pas. Il y a un truc ?

Au passage : merci bosozoku pour les icônes  :Smile:  (c'est çà que je trouve le plus dur à trouver)

----------

## DidgeriDude

 *bosozoku wrote:*   

> 
> 
> ```
> PipeRead `while read; case "$REPLY" in  
> 
> ...

 

J'ai vu que tu as trouvé une autre façon de faire, mais si tu te retrouves avec un case quelque part, je crois qu'il manque un do dans ton script, ainsi que les '\' à la fin des lignes. Je crois aussi que les quotes pour le PipeRead sont simples ' et pas inversées `. Le script suivant devrait marcher :

```
PipeRead 'while read; do case "$REPLY" in \

  "vert" ) echo ChangeThemeVert ;; \

  "cathode" ) echo ChangeThemeCathode ;; \

  "defaut" ) echo ChangeThemeDefaut ;; \

esac; done < $[FVWM_USERDIR]/test'

```

----------

## geekounet

Oyo ! Il était temps de remonter le topic qui s'est enfoncer de 4 pages en 2 semaines.

Vous l'attendiez tous, la voici : la première release de ma config Fvwm, ça se passe ici.

Un grand merci à Bosozoku et Taviso dont une grande partie de ma config est inspirée.  :Smile: 

Enjoy !   :Very Happy: 

----------

## yoyo

 *pierreg wrote:*   

> Vous l'attendiez tous, la voici : la première release de ma config Fvwm, ça se passe ici.

 Jolie !!   :Cool: 

Je l'ai testée rapidement et elle me paraît pas mal (en plus tu as repris les fichiers de config séparés  :Very Happy:  ).

Juste une remarque : ta config ne fonctionne pas correctement sur une résolution de 1024x768 ("barre des tâches" notamment). C'est une critique "récurrente" mais ça serait vraiment bien de dimensionner les éléments en fonction de la résolution de l'affichage. Soit en rentrant dans le fichier de config des variables indiquants la résolution et réutilisés par la suite pour le dimensionnement/positionnement des éléments de la config ou de récupérer la résolution via un programme "externe" (je sais que Bosozoku l'a fait).

Mais bien sur, l'idéal serait de pouvoir dimensionner les éléments "en relatif" directement avec fvwm (en donnant un pourcentage de la largeur/hauteur par exemple). Je ne sais pas si c'est possible mais ça serait vraiment le top ...  :Neutral: 

----------

## bibi.skuk

 *yoyo wrote:*   

> 
> 
> Mais bien sur, l'idéal serait de pouvoir dimensionner les éléments "en relatif" directement avec fvwm (en donnant un pourcentage de la largeur/hauteur par exemple). Je ne sais pas si c'est possible mais ça serait vraiment le top ... 

 

c'est possible, si je me souvient bien ce sont de svariables du genr $[window.h] etc... je regarde dans le man 2 sec et je te dit tout ca...

edit : 

bon, je vous fait pas le cut'n paste de la man page, c'est la section "COMMAND EXPANSION"

$[vp.x], $[vp.y] sont les coordonnées du viewport actuel, et $[vp.width], $[vp.height] sa taille

on peut aussi recuperer plein d'infos sur les fenetres de cette maniere, la position de la souris, pleins de trucs, sisi, vraiment

----------

## geekounet

Ben je comptais travailler sur ces pb de résolution justement, je risque d'en avoir besoin quand je travaillerai avec un écran externe : il faudra que je passe en 1024x768.

----------

## bosozoku

Ouais yoyo, je l'avais fait mais pas de manière relative car mes dock sont composés d'images. Alors si on l'étire ou le raccourci (relativement en fonction de la largeur de la résolution), ben les images ne sont pas redimenssionnées ! Faut se débrouiller pour que ça passe en 1024 mais en 1280 le dock ne sera pas plus grand.

Ya peut être un moyen, détecter la résolution d'écran et charger tel ou tel dock en fonction de celle ci. C'est très lourd puisqu'il faudrait un FvwmButtons pour chaque résolution...

----------

## yoyo

 *bosozoku wrote:*   

> Ouais yoyo, je l'avais fait mais pas de manière relative car mes dock sont composés d'images. Alors si on l'étire ou le raccourci (relativement en fonction de la largeur de la résolution), ben les images ne sont pas redimenssionnées ! Faut se débrouiller pour que ça passe en 1024 mais en 1280 le dock ne sera pas plus grand.
> 
> Ya peut être un moyen, détecter la résolution d'écran et charger tel ou tel dock en fonction de celle ci. C'est très lourd puisqu'il faudrait un FvwmButtons pour chaque résolution...

 OK, ça n'est pas si simple que ça ...

Ce qui me semble curieux c'est que fvwm-crystal parvient à le faire (de mémoire). Je ne sais pas du tout comment ils procèdent.

Un "contournement" bien barbare du problème serait de tester la résolution au démarrage, et si elle ne correspond pas à la dernière affichée, redimensionner les images pour les adapter et sauvegarder la résolution en court pour le prochain démarrage de fvwm. C'est très crade, le premier démarrage à chaque nouvelle résolution sera très long, cela impose d'avoir imagemagick d'installer sur la machine et de l'espace supplémentaire pour copier les images redimensionnées (pas questions d'écraser les originales).

Mais ça pourrait fonctionner ...   :Rolling Eyes: 

----------

## geekounet

Vivement l'inclusion du support SVG dans Fvwm, ça facilitera bien les choses, et pas que pour ça, pour les icônes aussi.

----------

## bibi.skuk

 *yoyo wrote:*   

> OK, ça n'est pas si simple que ça ...
> 
> Ce qui me semble curieux c'est que fvwm-crystal parvient à le faire (de mémoire). Je ne sais pas du tout comment ils procèdent.
> 
> 

 

En fait, c'est pas si compliqué que ça, fvwm-crystal utilise le module m4 de fvwm pour ecrire le fichier de conf a la volé...

http://www.fvwm.org/documentation/manpages/unstable/FvwmM4.php

----------

## Shaika-Dzari

Bonjour tous le monde!   :Wink: 

Je suis entrain de me faire une jlie config de fvwm grâce notament au tuto de stationlinux et plein d'info de ces thread.

J'ai créer un FvwmButtons avec plusieurs icônes que je positionne en bas.

Parmi ces boutons, je désirais ajouter 2 petites flêches Up et Down qui augmenteraient ou diminuraient de 5 ou 10 mon volume du pcm.

Quelq'un pourrait-il me guider pour cela? Existe t-il un module de contrôle du son dans fvwm?

Merci de votre aide!

@+   :Very Happy: 

----------

## ryo-san

lut

je laisse le soin aux z'abonnés de te repondre pour les boutons   :Twisted Evil: 

quand aux commandes

```

amixer  set Master 5-

```

et

```

amixer  set Master 5+

```

pour alsa oeuf corse.

ps: tu peux bien sur changer 5 par la valeur que tu veux.

----------

## Shaika-Dzari

Hé!   :Very Happy: 

J'avais essayé amixer set PCM +5 mais pas le contraire...  :Laughing: 

J'étais sur le point de me faire un prog en python pour piloter amixer...  :Smile: 

Merci ryo-san.

Je replonge...je vous ferez un petit screen shot lorsque ce sera terminé.

@+

----------

## Shaika-Dzari

Hello!!!

Autre petite question...  :Very Happy: 

J'utilise l'exemple de stationlinux (tirée de la config de taviso) pour créer des thumbnail de mes fenêtres lorsqu'ils sont réduient.

Ces mini-icône ont toutefois un titre qui apparaient en bas...

Comme ceci:

http://perso.b2b2c.ca/mangaquebec/fvwm-sc4.jpg

J'aimerais qu'il n'y ait aucun titre.

Merci de votre aide!

@+

....  Ya pas une balise img pour afficher des images sur le forum   :Question: 

----------

## geekounet

Salut !

```
Style * NoIconTitle
```

----------

## Shaika-Dzari

 *pierreg wrote:*   

> Salut !
> 
> ```
> Style * NoIconTitle
> ```
> ...

 

Super!

Ça fonctionne à merveille...

Merci Pierreg   :Wink: 

----------

## truc

cowcowou!

A mon tour, je cherche en vain à savoir si c'est possible d'utiliser RootTransparent et ?Gradient en même temps pour les TitleStyle ? j'essaie de combiner les deux ça marche pas, et je ne trouve rien sur le net (sans doute pas fait les bonnes recherches, mais je ne vois pas quoi chercher de plus..

Voili-voilou si vous pouviez m'aider?  :Smile: 

EDIT: en fait, après reflexion, même question pour les menus.. donc:

Comment faire fonctionner (si c'est possible) roottransparent et ?gradient en même temps?

----------

## geekounet

A ma connaissance, c'est pas possible. Et c'est vrai que moi aussi j'aimerai bien avoir ça, je regrette un peu Fluxbox pour ça.

----------

## ryo-san

lut

exact , ca fait parti d'un pool sur fvwm forum, donc pour plus tard ...

----------

## truc

arf merci pour les réponses, zut alors  :Sad:  M'enfin bon peut-être qu'un jour...

Sinon question dans le vide, pour avoir de la transparence des fenêtres, du contenu je veux dire, dois-je forcément passer par l'extension composite de xorg, ou est-ce possible de faire un truc similaire pour une fenètre donnée avec un des nombreux modules de fvwm ? (bah oui les man pages des modules ne sont jamais assez explicites sur ce qu'on peut  faire avec à mon gout...)

merci bonne soirée  :Smile: Last edited by truc on Sat Jan 21, 2006 6:02 pm; edited 1 time in total

----------

## bibi.skuk

 *truc wrote:*   

> arf merci pour les réponses, zut alors  M'enfin bon peut-être qu'un jour...
> 
> Sinon question dans le vide, pour avoir de la transparence des fenêtres, du contenu je veux dire, dois-je forcément passer par l'extension composite de xorg, ou est-ce possible de faire un truc similaire pour une fenètre données avec un des nombreux modules de fvwm ? (bah oui les man pages des modules ne sont jamais assez explicites sur ce qu'on peut  faire avec à mon gout...)
> 
> merci bonne soirée 

 

Pour avoir tu treanslucent (aka de la vraie transparence) a part le patch pour les menus, il faut passer par l'extention composite de xorg.

----------

## truc

oki merci, bon j'vais me pencher plus dessus alors, mais à première vu, ça demande tout de suite beaucoup plus de ressource :'(

C'est peut-être le moment de tester XGL! (Si vous ne connaissez pas encore regardez ce poste ici et les liens etc.. c'est plutôt très interessant)  quelqu'un à t'il déjà tenter XGL+fvwm?

----------

## Darkael

 *truc wrote:*   

> 
> 
> C'est peut-être le moment de tester XGL! (Si vous ne connaissez pas encore regardez ce poste ici et les liens etc.. c'est plutôt très interessant)  quelqu'un à t'il déjà tenter XGL+fvwm?

 

J'ai pas (encore) essayé Xgl, mais peut-être que Metisse t'interessera, c'est un WM qui tourne avec OpenGL et basé sur Fvwm... Ça permet de faire des effets 3D, et notamment de la transparence sans avoir à utiliser Composite. C'est très sympa, mais par contre y'a quelques petits problèmes qui empêchent de pouvoir l'utiliser au quotidien, par exemple tu ne peux pas utiliser de programmes OpenGL dans Metisse.

----------

## truc

 *KarnEvil wrote:*   

>  *truc wrote:*   
> 
> C'est peut-être le moment de tester XGL! (Si vous ne connaissez pas encore regardez ce poste ici et les liens etc.. c'est plutôt très interessant)  quelqu'un à t'il déjà tenter XGL+fvwm? 
> 
> J'ai pas (encore) essayé Xgl, mais peut-être que Metisse t'interessera, c'est un WM qui tourne avec OpenGL et basé sur Fvwm... Ça permet de faire des effets 3D, et notamment de la transparence sans avoir à utiliser Composite. C'est très sympa, mais par contre y'a quelques petits problèmes qui empêchent de pouvoir l'utiliser au quotidien, par exemple tu ne peux pas utiliser de programmes OpenGL dans Metisse.

 

j'en avais déjà entendu parlé mais lapage d'acceuil ne m'avait fait ni chaud ni froid, j'avoue que cette fois ci, j'ai télécharger la petite vidéo pour voir métisse en action... Et c'est clair que c'est assez impressionnant!, malheureusement, si , comme tu le dis, on ne peut utiliser des programmes OpenGL en même temps ça risque d'être très génant (quake3 in mind :/ ), J'vais quand même voir si y'a pas des gens qu'on réussi à faire fonctionner tout ça dès que j'ai un peu de temps..

Merci:)

----------

## Darkael

 *truc wrote:*   

> 
> 
> j'en avais déjà entendu parlé mais lapage d'acceuil ne m'avait fait ni chaud ni froid, j'avoue que cette fois ci, j'ai télécharger la petite vidéo pour voir métisse en action... Et c'est clair que c'est assez impressionnant!, malheureusement, si , comme tu le dis, on ne peut utiliser des programmes OpenGL en même temps ça risque d'être très génant (quake3 in mind :/ ), J'vais quand même voir si y'a pas des gens qu'on réussi à faire fonctionner tout ça dès que j'ai un peu de temps..
> 
> Merci:)

 

En fait, tu peux faire marcher des machins opengl, sauf que ça sera pas acceléré materiellement via la carte graphique.

----------

## Darkael

 *KarnEvil wrote:*   

>  *truc wrote:*   
> 
> j'en avais déjà entendu parlé mais lapage d'acceuil ne m'avait fait ni chaud ni froid, j'avoue que cette fois ci, j'ai télécharger la petite vidéo pour voir métisse en action... Et c'est clair que c'est assez impressionnant!, malheureusement, si , comme tu le dis, on ne peut utiliser des programmes OpenGL en même temps ça risque d'être très génant (quake3 in mind :/ ), J'vais quand même voir si y'a pas des gens qu'on réussi à faire fonctionner tout ça dès que j'ai un peu de temps..
> 
> Merci:) 
> ...

 

Euh, petit détail important quand même: tout ceci n'est vrai qu'à l'intérieur de Metisse. Il faut savoir que Metisse se lance dans un serveur X à part, similaire aux serveurs VNC (en plus de ton serveur X habituel, donc). Et tu peux très bien lancer des applications OpenGL sur ton serveur X de base. C'est peut-être pas très clair, tu comprendras mieux si tu lances Metisse une fois.

----------

## truc

oki, j'vais voir ça, car en fait après réflexion je me suis rendu compte que je lance quasiment toujours les trucs opengl (principalement 2 jeux..) sur une autre serveur X enfin display? enfin j'ai jamais vraiment su comment le dire, mais pas de problème pour le faire.. xinit blabal -- :1 vous voyez de quoi je parle?  :Laughing: 

Merci pour l'info, j'éspère principalement que ça ne sera pas aussi demandeur en ressource que l'extension composite .. Enfin bref merci je m'éloigne de fvwm là  :Smile: 

----------

## ryo-san

lut

ben apres ton post truc , me suis dit "pourquoi pas ?", donc si tu veux un retour : c'est la m...  :Razz: 

donc deja j'ai du passer en xorg v7 (une bonne heure de compil ) plus une bonne nuit de galère a essayer de compiler tout ce bazard pour m'apercevoir au petit matin qu'un genereux camarade gentooiste avait deja tout preparé   :Rolling Eyes:  .

m'enfin apres tout ca , la bave aux levres, je lance le server en esperant bien faire gondoler mes fenetres comme je l'ai apercu sur une video du post que tu cites... bah ce sera pas pour tout de suite:

CRASH , CRASH et re-CRASH.donc voila.a priori ca marche bien avec le dri de charger , faudrait m'expliquer car le dri et nvidia   :Question:  .

sinon metisse ,je connais un peu ,c'est vrai que visuellement c'est "las vegas", mais pour l'utiliser au quotidien, si tu as eu le malheur de pencher tes fenetres , c'est une horreur a replacer   :Razz:  .

M'enfin, se sont peut etre les desktops de demain ...

----------

## Darkael

[EDIT] post supprimé, je confonds tout, il est temps que j'aille dormir moi...Last edited by Darkael on Sun Jan 22, 2006 11:42 pm; edited 1 time in total

----------

## truc

 *ryo-san wrote:*   

> lut
> 
> ben apres ton post truc , me suis dit "pourquoi pas ?", donc si tu veux un retour : c'est la m... 
> 
> donc deja j'ai du passer en xorg v7 (une bonne heure de compil ) plus une bonne nuit de galère a essayer de compiler tout ce bazard pour m'apercevoir au petit matin qu'un genereux camarade gentooiste avait deja tout preparé   .
> ...

 

Arf... j'hésitais aussi à me lancer dans l'histoire... J'vais sans doute me plonger dedans pour éviter d'avoir trop de remords quand à tes aventures  :Laughing:  M'enfin bon, pas tout de suite pour l'instant c'est boulot;)

J'attends impatiemment d'autres retour de ta(votre) part  :Smile: 

----------

## ryo-san

lut

@pierreg

j'ai jeté un oeil a ta config, c'est bO ! mais trop gros   :Very Happy:  , je suppose que tu tournes au moins en 1280.

Juste un petit conseil , devrais mettre un test pour les terminaux parce que j'ai du lancer mon terminal par gvim   :Laughing:  .

sinon j'ai une petite question : je t'ai honteusement piqué les pixmaps des boutons , mais j'arrive pas a les rassembler cote a cote comme toi , qu'est qu'il faut faire pour qu 'il se touchent ?(les vicieux...)

----------

## geekounet

J'ai pas compris l'histoire des terminaux ...

Pour les pixmaps, ben il faut que ta barre de titre fasse 24px de hauteur, et les mettre en flat :

```
+ TitleStyle Height 24

+ ButtonStyle 1 Active (MiniIcon) Inactive (MiniIcon) - Clear

+ ButtonStyle 2 ActiveUp (Pixmap Metal-Purple/close.png) \

                ActiveDown (Pixmap Metal-Purple/closep.png) \

                Inactive (Pixmap Metal-Purple/close.png) - Clear

+ ButtonStyle 4 ActiveUp (Pixmap Metal-Purple/max.png) \

                ActiveDown (Pixmap Metal-Purple/maxp.png) \

                Inactive (Pixmap Metal-Purple/max.png) - Clear

+ ButtonStyle 6 ActiveUp (Pixmap Metal-Purple/icon.png) \

                ActiveDown (Pixmap Metal-Purple/iconp.png) \

                Inactive (Pixmap Metal-Purple/icon.png) - Clear

+ ButtonStyle All -- Flat
```

Tout est dans .fvwm/themes/Metal-Purple/theme.fvwm2rc

EDIT: effectivement, je suis en 1280x800

----------

## ryo-san

lut

c'est bon , me suis depatouillé mais j'ai pas vraiment compris ce que j'ai fait, ca se joue entre AddButtonStyle et ButtonStyle, je verais ca plus tard.

Pour les terminaux , ben c'est simple , j'ai pas ajusté ta config avant de relancer fvwm , du coup comme j'utilise pas urxvt, me suis retrouvé sans terminal ni filer , ni rien, j'ai du lancer gvim pour pouvoir lancer mon terminal, mais c'est du chipotage c'est tout   :Wink: 

ce que je te suggerai c'etait :

```

 Test (x mrxvt) + %24x24/apps/gnome-terminal.png%" Mrxvt" exec exec mrxvt

```

ca s'affiche seulement si , mrxvt ici , est present et executable.

je le redis encore c'est juste pour "chipotailler"   :Smile:  .

Merci en tout cas.

----------

## Shaika-Dzari

Hello!

Est-il possible de lancé deux Eterm mais avec 2 style différent?

J'utilise Eterm comme console standard mais j'aimerais qu'au démarrage un eterm sois lancé à une position précise 

mais lui avec ces caractéristique:

```
!Borders, WindowListSkip, NoTitle
```

C'est pour me faire une console transparente par dessus mon wallpaper...

Merci!

----------

## Darkael

 *Shaika-Dzari wrote:*   

> Hello!
> 
> Est-il possible de lancé deux Eterm mais avec 2 style différent?
> 
> J'utilise Eterm comme console standard mais j'aimerais qu'au démarrage un eterm sois lancé à une position précise 
> ...

 

Il suffit de lancer ton Eterm avec un nom distinct, apparement avec Eterm ça se fait avec l'option -n, par exemple

```

Eterm -n ConsoleTransparente -g 50x30+10+10

```

Et dans ta config Fvwm:

```

Style ConsoleTransparente !Borders, WindowListSkip, NoTitle

```

----------

## DidgeriDude

Coucou tout le monde.

Juste un mot pour ceux qui ont un peu de temps à tuer : Installer la dernière version de Metisse (pas dans portage).

Soyez indulgents, c'est mon premier Howto...

Amusez-vous bien !!

----------

## truc

 *ryo-san wrote:*   

> lut
> 
> ben apres ton post truc , me suis dit "pourquoi pas ?", donc si tu veux un retour : c'est la m... 
> 
> donc deja j'ai du passer en xorg v7 (une bonne heure de compil ) plus une bonne nuit de galère a essayer de compiler tout ce bazard pour m'apercevoir au petit matin qu'un genereux camarade gentooiste avait deja tout preparé   .
> ...

 

Désolé de ne faire remonter ce post que pour ça mais je trouvais ça interessant à savoir:)

pour l'histoire du dri et nvidia, ici on trouve une explication

 *Quote:*   

> 
> 
> opengl  	 Changed names to "dri," which enables direct rendering in xorg-server and many drivers. Whether USE=dri is on or off, you should still get software 3D via Mesa.

 

Sinon pour ceux qui n'ont pas encore fait un tour du coté de l'howto de DidgeriDude, ça vaut le coût, c'est bien fait, ça marche très bien, et c'est tripant  :Smile:  (le resultat)

----------

## ryo-san

hum, merci  pour l'info truc .

J'ai sauté cette partie , pensant  que cela concernait les ati ou autres.

je suis en train d'emerger ...

ps : ben ca se termine ...

```

eselect opengl set nvidia

Switching to nvidia OpenGL interface.../usr/share/eselect//libs/core.bash: line 115: /usr/bin/sed: Aucun fichier ou répertoire de ce type

!!! Error: Failed to create /usr/lib/libGL.la

```

sympa  :Smile: 

----------

## Shaika-Dzari

Bonjour à tous!   :Very Happy: 

Comment ça va? ( Ici c'est l'hiver et il fait  -24 degré celcius...  :Crying or Very sad:  )

J'ai récupéré un fonction dans les man de fvwm pour généré dans mon menu un "navigateur de fichier rapide"

La fonction:

```

DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

  + I PipeRead "fvwm-menu-directory -d '$0'"
```

Ensuite on ajoute dans son menu un truc du genre:

```

AddToMenu Browser MissingSubmenuFunction FuncFvwmMenuDirectory

+          "/home/shaika-dzari"         Popup $[HOME]

+          "/ systême"            Popup /
```

Ça fonction correctement mais j'aimerais savoir un ou deux trucs...

Disons que je navigue et clique sur un fichier .png, comment lui dire de lancer gwenview ou mplayer pour un .avi exemple?

Existe t-il un moyen de fixer la largeur du menu qui dynamiquement généré?

Merci beaucoup de votre aide   :Wink: 

@+

----------

## geekounet

Salut  :Smile: 

Moi j'utiliserai gnome-open si tu as gnome à côté :

```
DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

  + I PipeRead "fvwm-menu-directory -d '$0' -exec-f ^gnome-open"
```

----------

## Shaika-Dzari

Merci Pierreg!   :Wink: 

Effectivement gnome-open fonctionne.

Gnome-open lance bien des application mais pas les bonnes... :Surprised: 

J'ai jamais vraiment tourner sous gnome, donc les applications par défaut sont tous à configurer...

Existe t-il le même truc pour KDE car mes mime-type de kde sont eux correctement configurer.

Ou sinon,  :Very Happy: 

Peut-on ce faire un truc dans ce genre:

```

DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

+ I PipeRead "fvwm-menu-directory -d '$0'\

'case "$0" in \

    *.png *) -exec-f ^$[fvwm_image_browser] \

    *.avi *) -exec-f ^$[fvwm_video] \

esac'"
```

Merci encore!

@+

----------

## geekounet

Après une recherche sur le forum qui m'a amené sur ça, l'équivalent de gnome-open pour kde serait kfmclient exec, pour l'utiliser il ne faut pas oublier les "", ce qui donne :

```
DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

  + I PipeRead "fvwm-menu-directory -d '$0' -exec-f \"^kfmclient exec\""
```

 :Wink: 

----------

## Shaika-Dzari

Yeah! 

Merci beaucoup!   :Very Happy: 

Tout fonctionne!

J'adore fvwm   :Cool: 

@+

----------

## DidgeriDude

Salut à tous.

J'ai un poblème avec fvwm-menu-directory :

J'utilise le script suivant pour naviguer dans mes fichiers

```
#/bin/sh

case "$1" in

    "$audio_dir"*)

        myexec="$audio_pgm"

        mypng="$icons_dir/musique.png"

        myfolder="$icons_dir/dossier_musiques.png";;

    "$video_dir"*)

        myexec="$video_pgm"

        mypng="$icons_dir/video.png"

        myfolder="$icons_dir/dossier_videos.png";;

esac

test -f "$1/.jaquette.png" && mytitle="$1/.jaquette.png" || mytitle="$icons_dir/dossier_musiques.png"

fvwm-menu-directory --icon-title "${mytitle}" \

                    --icon-file ${mypng:-"$icons_dir/fichier.png"} \

                    --icon-dir ${myfolder:-"$icons_dir/fichier.png"} \

                    --dir "$1" \

                    --links \

                    --exec-t="^${myexec:-gvim} *" \

                    --exec-file "^${myexec:-gvim}"
```

Il est appelé dans ma config FVWM par

```
DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

+ I PipeRead '$[scripts_dir]/navigateurs.sh "$0"'

(...)

+ MissingSubmenuFunction FuncFvwmMenuDirectory

+ %$[icons_dir]/dossier_musiques.png%"Musiques"                 Popup $[audio_dir]

```

Mais j'ai découvert qu'il m'était impossible de naviguer dans les menus comportant des apostrophes.

J'ai eu beau changer les appels, remplacer les quotes simples par des guillemets, mais rien n'y fait !

Je récupère toujours cette erreur-là :

```
sh: -c: line 0: unexpected EOF while looking for matching `"'

sh: -c: line 1: syntax error: unexpected end of file
```

De plus, il m'arrive d'obtenir ces deux erreurs-là, mais je n'ai pas réussi à identifier clairement le moment où elles arrivent :

```
[FVWM.0][FvwmErrorHandler]: <<ERROR>> *** internal error ***

[FVWM.0][FvwmErrorHandler]: <<ERROR>> Request 53, Error 2, EventType: 4
```

et

```
[FVWM.0][FvwmErrorHandler]: <<ERROR>> *** internal error ***

[FVWM.0][FvwmErrorHandler]: <<ERROR>> Request 156, Error 182, EventType: 4
```

Je pense que la première erreur est due au fait que dans l'appel de mon script, il rencontre dans le paramètre "$0" une apostrophe qu'il doit prendre pour la quote de fin d'appel de PipeRead '$[scripts_dir]/navigateurs.sh "$0"' et donc il ne sait pas quoi faire du reste.

Voilà où j'en suis arrivé...

Si vous avez des idées...

Je tiens aussi à préciser que le script marche parfaitement en ligne de commande, quelque soit le chemin précisé en paramètre, i.e. qu'il contienne ou non une apostrophe !

----------

## geekounet

Remplace les "$0" par des \"$0\" ça devrait marcher.

Mais moi ma solution, c'est plutôt de faire des scripts externes, c'est moins confu comme ça.

----------

## DidgeriDude

Ben comme tu vois, j'utilise moi aussi un script (en bash)...

Par contre, ton idée ne marche pas ! snif  :Sad: 

[EDIT] J'ai trouvé, il suffisait de combiner 2 changements : le tien et des guillemets doubles autour du PipeRead

```
PipeRead "$[scripts_dir]/navigateurs.sh \"$0\""
```

Merci encore !

----------

## bosozoku

Salut tout le monde !

Ce n'est pas trop en rapport avec Fvwm directement mais j'ai envie de customiser un peu mon bureau étant donné que je suis en vacances. J'ai vu qu'il existait une application sous KDE qui fait une console à la quake un peu. Je me demande même si ce n'est pas konsole directement. Je l'avais vu sur linuxshot.org mais comme le site est mort, je ne peux pas vous montrer. 

Bref, pour ceux qui savent de quoi je parle, est ce que ça éxiste en GTK ? Genre un Gnome-terminal à la quake.

Je sais très bien que je peux le faire avec le shade de Fvwm (comme je le fais déja avec des rxvt) mais une vrai application m'interesse.

Merci bien !

Et bonnes vacances à ceux qui en ont, bon courage aux autres  :Smile: 

----------

## bibi.skuk

 *bosozoku wrote:*   

> Salut tout le monde !
> 
> Ce n'est pas trop en rapport avec Fvwm directement mais j'ai envie de customiser un peu mon bureau étant donné que je suis en vacances. J'ai vu qu'il existait une application sous KDE qui fait une console à la quake un peu. Je me demande même si ce n'est pas konsole directement. Je l'avais vu sur linuxshot.org mais comme le site est mort, je ne peux pas vous montrer. 
> 
> Bref, pour ceux qui savent de quoi je parle, est ce que ça éxiste en GTK ? Genre un Gnome-terminal à la quake.
> ...

 

Est-ce que ça t'irait ? ca depend seulement de x11-libs/vte qui elle depend de gtk  :Smile:  entre autres...

 *Quote:*   

> 
> 
> * x11-terms/tilda 
> 
>      Available versions:  0.09.1
> ...

 

----------

## bosozoku

Oulala que je t'aime toa  :Smile: 

Absolument parfait !

----------

## bibi.skuk

 *bosozoku wrote:*   

> Oulala que je t'aime toa 
> 
> Absolument parfait !

 

mais de rien, ca me fait plaisir  :Smile: 

----------

## geekounet

Sympa ce tilda, merci aussi  :Very Happy: 

----------

## Darkael

y'a aussi yeahconsole qui fait la même chose et qui est basé sur xterm, mais ce n'est pas dans portage

----------

## truc

bonjour, j'y vais de mon petit soucis...

mise en situation: j'ai vu avec XGL qu'en lançant /usr/libexec/gnome-settings-daemon ça améliorait grandement le rendu, les boutons, les menus etc.. tout est plus beau, (je parle menu et boutons de rox pour n'en citer qu'un seul, mais y'en a d'autre). Je me suis dit que si je lançais ça aussi avec fvwm ça pourrait être joli aussi  :Razz: 

Bref.. Ca ne marche pas.  :Confused: 

```
$ /usr/libexec/gnome-settings-daemon

The program 'gnome-settings-daemon' received an X Window System error.

This probably reflects a bug in the program.

The error was 'BadValue (integer parameter out of range for operation)'.

  (Details: serial 873 error_code 2 request_code 116 minor_code 0)

  (Note to programmers: normally, X errors are reported asynchronously;

   that is, you will receive the error a while after causing it.

   To debug your program, run it with the --sync command line

   option to change this behavior. You can then get a meaningful

   backtrace from your debugger if you break on the gdk_x_error() function.)

 0,xklavier.c:XklStartListen/]    The backend does not require manual layout management - but it is provided by the application
```

du coup je le lance avec --sync mais ça ne change pas grand chose apparemment:

```
/usr/libexec/gnome-settings-daemon --sync

The program 'gnome-settings-daemon' received an X Window System error.

This probably reflects a bug in the program.

The error was 'BadValue (integer parameter out of range for operation)'.

  (Details: serial 1640 error_code 2 request_code 116 minor_code 0)

  (Note to programmers: normally, X errors are reported asynchronously;

   that is, you will receive the error a while after causing it.

   To debug your program, run it with the --sync command line

   option to change this behavior. You can then get a meaningful

   backtrace from your debugger if you break on the gdk_x_error() function.)

sam@zarbe ~ $ 0,xklavier.c:XklStartListen/]    The backend does not require manual layout management - but it is provided by the application
```

...

Si vous aviez des idées, ça me ferait bien plaisir:)

merci

----------

## truc

ouaich pour ceux que ça interesserait gnome-settings-daemon and FVWM SOLVED voili-voilou   :Crying or Very sad: 

----------

## truc

J'me dit que ça en interessait peut-être certains mais en fait ça n'est pas un problème avec fvwm, mais plutôt entre xorg et gnome-settings-daemon (d'après ce que j'ai lu...)

Vous trouverez ici: bugzilla.gnome=323724

 quelques infos, et surtout un patch, qui a marché entre autres pour moi  :Very Happy: 

En esperant que ça puisse servir à quelqu'un:)

Desolé de polué fvwm, mais je croyais que c'était lié au début  :Embarassed: 

----------

## geekounet

Bonjour,

j'ai un problème avec amarok : je veux qu'il n'appraraisse que dans le 2e bureau, j'ai donc mis ça :

```
Style Amarokapp EWMHMiniIconOverride, MiniIcon amarok.png, StartsOnPage 1 0 0, StartsOnPageIncludesTransients, SkipMapping
```

Ca marche pour la fenêtre de lecture style XMMS et l'équaliseur, par contre la fenêtre de playlist apparait toujours sur le 1er bureau à sa première apparition.

Voilà ce qui apparait dans le FVWMIdent : 

 *Quote:*   

> EWMH Init State: StartOnDesk 1

 

Il faudrait désactiver cet Init State, mais je ne sais pas comment   :Confused: 

Merci  :Smile: 

----------

## truc

dans le man fvwm, je crois me souvenir qu'ils parlent de faire quelque chose comme ça

```
Style Amarokapp* ...
```

et/ou (ya une explication pour les deux)

```
Style Amarokapp** ...
```

t'as essayé ça?Last edited by truc on Fri Mar 10, 2006 10:45 pm; edited 1 time in total

----------

## geekounet

Ca ne marche pas  :Sad: 

----------

## truc

si tu appelle FvwmIdent sur cette fenètre, tu devrais avoir le nom de celle ci, et tu pourrais lui faire une ligne de style spécialement pour elle non? (je faisais un truc similaire pour la fenètre de contact d'amsn)

----------

## geekounet

Ben son nom, c aussi Amarokapp. Le problème, c cette propriété EWMH qui force la fenêtre à se placer sur le bureau 1.

----------

## truc

je sais pas mais tu dois faire une erreur en recopiant le nom car chez moi ça marche très bien(oui j'ai fait le test)

```
Style amaroK StartsOnPage 1 0 0,  SkipMapping

Style "Playlist - amaroK" StartsOnPage 1 0 0,  SkipMapping

```

pas chez toi:?:

EDIT: le skipmapping c'est juste pour la forme, je n'aime pas qu'on me vole la main sur ce qui se passe c'est tout;)

----------

## geekounet

Ben en fait, ça marche bien si la playlist s'ouvre dés le démarrage (donc que je l'ai laissé ouvert en l'arrêtant), mais si je l'ouvre en cours d'execution, elle apparait sur le bureau 1  :Confused:  J'ai bien essayé ton truc, mais ça fait pareil.

----------

## truc

 *pierreg wrote:*   

> Ben en fait, ça marche bien si la playlist s'ouvre dés le démarrage (donc que je l'ai laissé ouvert en l'arrêtant), mais si je l'ouvre en cours d'execution, elle apparait sur le bureau 1  J'ai bien essayé ton truc, mais ça fait pareil.

 

effectivement je n'avais pas vu ça comme ça.. par contre 

```
Style "Playlist - amaroK" StartsOnPage 1 0 0,  SkipMapping 

Style "Playlist - amaroK" StartsOnPage 1 0 0,  SkipMapping, EWMHIgnoreStateHints
```

 semble marcher comme tu le voudrais.. tiens moi au courant;)

----------

## geekounet

Ta commande ne marche pas, par contre

```
Style Amarokapp StartsOnPage 1 0 0,  SkipMapping, EWMHIgnoreStateHints
```

 marche effectivement comme il faut. C marrant, c qu'il me semble avoir déjà essayé ça, mais ça n'avait pas marché.

Enfin en tout cas merci beaucoup  :Very Happy: 

----------

## truc

 *pierreg wrote:*   

> Ta commande ne marche pas, par contre
> 
> ```
> Style Amarokapp StartsOnPage 1 0 0,  SkipMapping, EWMHIgnoreStateHints
> ```
> ...

 

bizarre c'est pile ce que j'ai et ça marche ici  :Question:  m'enfin...

----------

## leptitlutin

Bonjour,

J'ai un petit souci de refresh sous FVWM, si quelqu'un avait une petite astuce ça m'aiderait enormement.  :Smile: 

J'expose mon souci :

- Je viens de passer en Xorg 7 et driver ATI open source

- J'ai un theme multi wallpapers mais lorsque je change avec : *FvwmBacker: Command(Desk 0, Page * *) Exec fbsetbg -f /home/test/wallpapers/desk-3.jpg && FvwmCommand Refresh

Il faut au moins 10s pour qu'il recalcule la transparence des barres alors ça devient galère de changer de page ou de wall :/

Et encore des fois il perd la barre du haut et la faut relancer plusieurs restart pour peut-être la retrouver.

Cela ne m'était "que" 3s sous Xorg 6.8 avec Driver ATI proprio :'(

Vous comprendrez que je n'ai pas trop envi de faire machine arrière.

Enfin merci beaucoup pour ce topic car il apporte enormement d'info pour un débutant qui veut modifier des themes  :Wink: 

----------

## Darkael

leptitlutin:

Pourquoi est-ce que tu n'utilises pas les drivers proprios? C'est quoi ta carte graphique?

----------

## leptitlutin

Désolé pour le temps entre les 2 reponses :/

Beaucoup de travail !

Le driver c'est une kestion de stabilité.

Enormement de problème avec le driver proprio.

J'ai une Radeon M10 sur mon portable où il faut que je passe en mode console pour faire halt sinon Freeze de l'ecran (et de l'ordi)

Et une 9550 sur le fix où là j'ai freeze si je vais en console après avoir été en graphique et freeze lors d'un shutdown en graphique.

De plus je ne pouvais pas activer le composite. Enfin en driver open ça ramouille un peu donc j'utilise pas non plus mais au moins plus de problème pour le shutdown.

Sinon j'ai trouvé comment contourner le problème.

Au lieu de RootTransparent Buffer, j'ai codé RootTransparent et c'est même mieux qu'avec le driver proprio.

Faut que je regarde dans la doc à quoi sert ce parametre.

----------

## Darkael

Ah, ok. Sinon pour le RootTransparent buffer, d'après le man ça optimise la vitesse lors de la création de fenêtres, et lors de déplacement en opaque, mais tout ça au prix de la mémoire, et apparemment d'après ce que tu dis ça a aussi un effet négatif lors d'un changement de wallpaper...

Sinon à mon avis la meilleure solution si tu as un wallpaper par bureau serait de renoncer aux thèmes transparents   :Sad: (ou alors tu peux toujours prier pour que les devs améliorent le code)

----------

## leptitlutin

Non non  :Smile: 

Je t'assure là c'est vraiment nikel sans le buffer.

Je zap et rezap direct !

Parfaitement fluide moins d'une seconde de synchro.

Enfin bon là j'ai aussi un freeze avec Xorg 7 sur ma M10 mais bon je lui accorde d'être encore hardmaské  :Twisted Evil: 

----------

## Darkael

Ah, c'est si rapide que ça sans buffer? Parce que dans ce cas je crois que ça résoud une ancienne question similaire posée quelque part dans ce thread (ou le thread originel, je sais plus trop), mais j'ai la flemme de la chercher...

----------

## Cerberus.Aiacciu

Bonjour a vous ! (enfin plutot Bonne nuit ^^)

Etant recement passé sous Gentoo et etant un fan de FVWM je passe donc ici pour un petit coucou...

Au niveau de FVWM que puis-je dire ? bon et bien je suis pas un pro ça c'est evident ^^ j'ai quelques config assez basiques,actuellement lors de mes temps libres je m'inpire des travaux de Desintegr et de Taviso pour agrementer mon quotidien sur FVWM...

voiçi un screeshot de ce que j'ai actuellement (si vous avez des critiques constructives ça m'interesse car ça peut toujours servir ^^)

http://img95.imageshack.us/img95/2504/capture260320069ha.jpg

Voila et bonne config a tous et a bientot  :Smile: 

----------

## truc

c'est pas forcément très constructif car tout est question de gout mais bon, j'aime bien tes menus, je verrais également bien un peut de roottransparent pour ta barre d'icones en bas à droite:), ah, si juste autre chose, comme tu t'interesse un peu à l'apparence, je te suggererais de passer à un autre lecteur de musique, parce-que xmms... (mais les gouts et les couleurs ne se discutent pas...), si tu veux rester dans le même esprit qu'avec xmms (saus graphiquement parlant) tu peux essayer beep-media-player (bmp), c'est sympa:)

voili-voilou;)

----------

## geekounet

 *truc wrote:*   

> ah, si juste autre chose, comme tu t'interesse un peu à l'apparence, je te suggererais de passer à un autre lecteur de musique, parce-que xmms... (mais les gouts et les couleurs ne se discutent pas...), si tu veux rester dans le même esprit qu'avec xmms (saus graphiquement parlant) tu peux essayer beep-media-player (bmp), c'est sympa:)

 

Beep-Media-Player n'est plus maintenu, son remplaçant direct est Audacious, qui est plus complet en plus  :Wink: 

----------

## Cerberus.Aiacciu

J'avais prevenu que c'etait du sobre et simpliste  :Smile:  donc je suis bien la pour améliorer ça ^^

pour ce qui est de la transparence je ne suis pas contre mais bon trop de transparence tue la transparence je pense,donc un peu oui mais pas trop  :Smile:  (par pas trop j'entends en mettre dans la barre effectivement dans un eventuel pager aussi et puis on verra pour le reste  :Smile: )

Ensuite pour ce qui est de xmms,les screens ont étés faits sur ma machine du boulot comme on peut le voir dans la console l'user est stagiaire ^^ et comme j'ai pas d'acces root le probleme est reglé... 

[MODE TROLL]chez moi j'utilise VLC tout simplement  :Wink: [/MODE TROLL]

----------

## truc

iopiop! A mon tour, Bon pour pouvoir profiter des dernières avancés (games-misc/xpenguins) sans gacher mon conky, j'ai du mettre à ce dernier:

own_window yes

Mais voila, maintenant quand conky est lancé via fvwm, j'ai un affreux font jaune ou rose petant, pendant 5 secondes (jusqu'au prochain raffraichissement de conky quoi...) Alors que si je lance conky à la mano, ce flash ne dure que quelque centièmes de secondes

```
exec conky

ou meme 

exec exec conky
```

marche mal( flashi)

```
conky
```

 marche correctement..

----------

## efyx

Je me permet de remonter un peu ce topic car je voulais savoir si des personnes était arrivé a évité d'avoir des ombres en dessous de fenètres avec xcompmgr ?

j'ai vu ce que vous donniez comme commande avec xprop mais qui ne marché pas, car (je pense) vous avez oublier le paramètre -f 

```

 -f name format [dformat]

               Specifies  that the format for name should be format and that the dformat for name should be dformat.  If dformat is missing, "

               = $0+\n" is assumed.

```

(lire la page du man ya 50 lignes sur ca) et je pense que si on spécifie le bon format ca devrais passé (et peux être aussi l'option -frame)

J'ai beau essayer je n'y arrive pas (je ne suis pas assez expérimenté...)

Merci !

----------

## leptitlutin

Bonjour,

Petit question relative au changement de pager. Je me suis très fortement inspiré des scripts de billiob mais sans réussite.

Le font d'écran est bien changer mais pas les pagers.

J'ai même essayé de faire un DestroyModule... FvwmPager: * puis Read mais rien.

Seul un restart me change les petits icones.

 *KarnEvil wrote:*   

> 
> 
> [...]
> 
> Par contre pour réactualiser le pager il faut effectivement faire quelque chose, par exemple tu peux redéfinir le colorset, et FvwmPager prendra le changement en compte et affichera la nouvelle image.
> ...

 

Si quelqu'un a une idée.

Merci d'avance.

----------

## Darkael

leptitlutin, j'avais fait une petit erreur dans le petit bout de code que tu cites, il faut mettre un Pixmap avant chaque $fvwm_pager_machin

efyx, tu veux enlever les ombres pour toutes les fenêtres ou seulement certaines en particulier? Pour le deuxième cas il fallait en effet utiliser xprop il me semble, mais je sais plus trop comment exactement....

----------

## leptitlutin

Oui pardon j'ai mi en cote le mauvais exemple mais j'ai bien Pixmap dans mes lignes.

Mais cela ne marche pas du tout.

----------

## DidgeriDude

Personnellement, j'utilise le script suivant pour changer de wallpaper lorsque je clique sur celui que je veux dans mon menu déroulant. Si ça t'intéresse...

```
#!/bin/sh

## Définition des variables

#--------------------------

CURRENT_DESK=$1

WALLPAPER=$2

PAGER_WP=$pager_dir/$CURRENT_DESK.png

PAGER_WP_ACTIVE=$pager_dir/$CURRENT_DESK"-active".png

COLOR=10$1

COLOR_ACTIVE=11$1

## Activation du fond d'écran

-----------------------------

fbsetbg -f $WALLPAPER

## Création des mini-images pour le Pager

#----------------------------------------

convert -scale 80x60 -quality 0 $WALLPAPER $PAGER_WP

convert -scale 80x60 -quality 0 -fill "#ffffff" -colorize 60 $WALLPAPER $PAGER_WP_ACTIVE

## Mise à jour des colorsets pour le Pager

------------------------------------------

FvwmCommand 'Colorset '$COLOR' Pixmap '$PAGER_WP''

FvwmCommand 'Colorset '$COLOR_ACTIVE' Pixmap '$PAGER_WP_ACTIVE''

cp -f $WALLPAPER $wallpapers_dir/desk-$CURRENT_DESK.jpg

```

Ce script est appelé dans la fonction de Taviso qui m'affiche mes wallpapers (et que je devrais réécrire à l'aide d'un autre script basé sur imlib2, si c'est possible, afin d'accélérer la création des miniatures...) :

```
DestroyFunc WallpaperBrowser

AddToFunc WallpaperBrowser

+ I PipeRead 'test ! -d "$0/.thumbs" && mkdir "$0/.thumbs"; \

    for i in "$0/"*; do \

        test -f "$0/.thumbs/${i##*/}" \

            -a "${i}" -ot "$0/.thumbs/${i##*/}" || { \

                convert -quality 0 -scale 24 "${i}" "png:$0/.thumbs/${i##*/}" 2>/dev/null \

                    || continue; \

            }; \

    done; \

    fvwm-menu-directory --icon-title "$[icons_dir]"/dossier_images.png --icon-file __PIXMAP__ \

    --icon-dir "$[icons_dir]"/dossier_images.png --dir $0 --exec-file "^$[scripts_dir]/wallpapers.sh $[desk.n]" \

    --exec-t="^gqview $0" | sed -e "s#FuncFvwmMenuDirectory#WallpaperBrowser#g" \

    -e "s#__PIXMAP__\\(.*\\)\\"\\(.*/\\)\\(.*\\)\\"#\\2.thumbs/\\3\\1\\2\\3#g"'

```

Pour info, j'ai 5 bureaux, et donc mes colorsets vont de 100 à 104 pour les miniatures dans le pager, correspondant aux fichiers 0.png à 4.png, et de 110 à 114 pour les miniatures actives (le bureau actuel, dont la miniature est éclaircie), correspondant aux fichiers 0-active.png à 4-active.png.

Si cela peut t'aider...

----------

## Darkael

 *leptitlutin wrote:*   

> Oui pardon j'ai mi en cote le mauvais exemple mais j'ai bien Pixmap dans mes lignes.
> 
> Mais cela ne marche pas du tout.

 

Est-ce que les miniatures sont bien créées dans le répertoire correspondant à $fvwm_pager_path? Sinon, vu que la commande FvwmCommand est lancée, il faut avoir lancé au préalable le module FvwmCommandS (+ I Module FvwmCommandS dans StartFunction par exemple)

A part ça je vois pas...

----------

## leptitlutin

Merci à vous deux

Très propre tes scripts DidgeriDude !!!!

Quant à toi KarnEvil tu es trop fort  :Smile: 

Le bouletausore que je suis, avait effectivement oublié de charger le module FvwmComandS

Merci Merci Merci

J'adore Fvwm et ce Thread   :Laughing: 

----------

## FunzZy

Salut tout le monde, j'ai suivi vos infos pour fvwm et je commence a avoir une config qui est pas trop trop mal meme si c'est loin d'etre fini.

Par contre, avant j'utilisai fluxbox et le fait de double cliquer sur une fenetre pour garder que la barre de titre me manque sous fvwm.

Bien sur je peux le faire avec la molette mais je prefere le double clique sur la barre de titre pour réduire/agrandir.

Y'a t'il un quelconque moyen de faire cela ?

Merci.

----------

## truc

salut, je ne peux pas te dire la syntax exacte mais, il faut que tu te créés une fonction du style

```
FvwmMaximMinim

+C Nop

+D FonctionFvwmPourMaximiserOuMinimiser

```

ensuite tu dois pouvoir ajouter quelque chose comme ça:

```

mouse  1  T  N  FvwmMaximMinim

```

et voilà, comme tu sais le faire avec la molette je suppose que tu connais la fonction... 

quelqu'un à peut-être plus simple.

----------

## FunzZy

Merci, mais ca ne m'aide pas beaucoup car pour le moment y'a:

MOUSE 4 T N WindowShade True

MOUSE 5 T N WindowShade False

MOUSE 4 TW M WindowShade True

MOUSE 5 TW M WindowShade False

Comment je fais pour savoir avec le double click si je dois faire un WindowShade True ou False.

Je m'embrouille peut etre mais ce fichier de conf est décidemment pas simple !

----------

## Darkael

 *FunzZy wrote:*   

> Merci, mais ca ne m'aide pas beaucoup car pour le moment y'a:
> 
> MOUSE 4 T N WindowShade True
> 
> MOUSE 5 T N WindowShade False
> ...

 

Tu fais comme t'as dit truc:

```

AddToFunc FvwmTitlebarClick

+ C Nop 

+ M Move

+ D WindowShade

Mouse  1  T  N  FvwmTitlebarClick

```

"C": simple clic, "M": mouvement, "D": double-clic, cf. la section de la man page sur AddToFunc pour plus d'infos

Et quand tu mets pas d'arguments à WindowShade, ça fait toggle (ça masque ou demasque selon l'état de la fenêtre)

----------

## FunzZy

Merci beaucoup pour cette réponse !! C'est parfait !

----------

## FunzZy

Sinon maintenant j'aimerai que la fenetre se mette en premier plan quand je clique 1 fois sur la titlebar, comment faire ?

Désolé si la question est un peu bête mais je trouve pas. Je pense c'est dans cette fonction qu'il faut que je rajoute quelque chose mais je trouve pas.

Merci d'avance.

----------

## Darkael

 *FunzZy wrote:*   

> Sinon maintenant j'aimerai que la fenetre se mette en premier plan quand je clique 1 fois sur la titlebar, comment faire ?
> 
> Désolé si la question est un peu bête mais je trouve pas. Je pense c'est dans cette fonction qu'il faut que je rajoute quelque chose mais je trouve pas.
> 
> Merci d'avance.

 

faut juste que dans le code dessus à la place de "C Nop" tu mettes "C Raise".

----------

## DidgeriDude

Salut à tous.

Je suis en train de modifier mes scripts de navigation dans mon arborescence et je cherche un moyen pour n'afficher que les fichiers vidéos, musicaux ou images, le tout basé sur une reconnaissance des extensions (à partir d'une liste, par exemple...) en utilisant sed ou, peut-être, awk.

Comme vous pouvez le voir sur ce screenshot, j'aimerais ne pas voir afficher le fichier .jpg dans le menu, d'où mon idée ci-dessus.

Voici mon petit bout de config :

```
DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

+ I PipeRead "$[scripts_dir]/navigateurs.sh \"$0\" $[desk.n]"
```

et mon script :

```
#/bin/sh

####

# 

# Arborescence du dossier "Musique" :

#   Style -> Artiste (Prénom Nom) -> Année - Nom de l'album

#   

#   Chaque dossier album contient un fichier .jaquette.png qui

#   est une miniature de la jaquette de l'album qui s'affiche

#   comme icône de titre.

# 

#   La commande 'sed' enlève les " item +100 c" à la fin des lignes

#   dans le menu, ainsi que l'année de chaque album (ceux-ci se

#   retrouvent donc classés par ordre chronologique, sans les dates).

# 

# 

# Arborescence du dossier "Vidéos" :

#   Rien de particulier, à voir pour des icônes de jaquettes de films...

# 

#   La commande 'sed' enlève les " item +100 c" à la fin des lignes

#   dans le menu.

# 

# 

# Arborescence du dossier "Wallpapers" :

#   Dans ce dossier, ainsi que dans chaque sous-répertoire, un dossier

#   ".thumbs" contient les miniatures des fichiers images (Merci à

#   Taviso pour son script que j'ai remanié pour mes besoins).

#   ".thumbs" est créé s'il n'existe pas, et mis à jour automatiquement,

#   si nécessaire, à chaque navigation par le menu.

# 

#   La commande 'sed' enlève les " item +100 c" à la fin des lignes

#   dans le menu (encore que cela n'est pas nécessaire s'il n'y a que

#   des fichiers images dans le dossier, enfin je ne l'ai remarqué que

#   pour des .png et .jpg).

#   De plus, 'fvwm-menu-directory' ignore l'option '--icon-file' pour

#   les fichiers images, et met automatiquement comme icône le nom du

#   fichier (avec le chemin complet), donc la seconde commande 'sed'

#   rajoute le "/.thumbs" pour afficher la miniature !

#

#   Idée : ne pas créer de dossier ".thumbs", mais tout mettre dans un

#   unique dossier "Thumbs", dans lequel recréer une arborescence ne

#   contenant que les miniatures de fichiers situés un peu partout !

# 

####

case "$1" in

    "$audio_dir"*)

        programme="$audio_pgm"

        icone_fichier="$icons_dir/musique.png"

        icone_dossier="$icons_dir/dossier_musiques.png"

        test -f "$1/.jaquette.png" && icone_titre="$1/.jaquette.png" || icone_titre="$icons_dir/dossier_musiques.png"

        fvwm-menu-directory --icon-title "${icone_titre}" \

                            --title '%d' \

                            --icon-file ${icone_fichier} \

                            --icon-dir ${icone_dossier} \

                            --dir "$1" \

                            --links \

                            --exec-t="^${programme} *" \

                            --exec-file "^${programme}" \

                            | sed -e 's/ item.*$//g' \

                                  -e 's/%[0-9][0-9][0-9][0-9] - /%/';;

    "$video_dir"*)

        programme="$video_pgm"

        icone_fichier="$icons_dir/video.png"

        icone_dossier="$icons_dir/dossier_videos.png"

        icone_titre="$icons_dir/dossier_videos.png"

        fvwm-menu-directory --icon-title "${icone_titre}" \

                            --title '%d' \

                            --icon-file ${icone_fichier} \

                            --icon-dir ${icone_dossier} \

                            --dir "$1" \

                            --links \

                            --exec-t="^${programme} *" \

                            --exec-file "^${programme}" \

                            | sed -e 's/ item.*$//g';;

    "$wallpapers_all_dir"*)

        programme="$scripts_dir/wallpapers.sh $2"

        icone_fichier="$icons_dir/fichier.png"

        icone_dossier="$icons_dir/dossier_images.png"

        icone_titre="$icons_dir/dossier_images.png"

        test ! -d "$1/.thumbs" && mkdir "$1/.thumbs"

        for i in "$1/"*

        do

            test -f "$1/.thumbs/${i##*/}" -a "${i}" -ot "$1/.thumbs/${i##*/}" || convert -quality 50 -sample 42 "${i}" "png:$1/.thumbs/${i##*/}" 2>/dev/null || continue

        done

        fvwm-menu-directory --icon-title "${icone_titre}" \

                            --title '%d' \

                            --icon-file ${icone_fichier} \

                            --icon-dir "${icone_dossier}" \

                            --dir "$1" \

                            --links \

                            --exec-t="^gqview $1" \

                            --exec-file "^${programme}" \

                            | sed -e 's/ item.*$//g' \

                                  -e "s~\(%$1\)\(.*\)~\1/.thumbs\2~g";;

esac
```

Le script wallpapers.sh dans la partie "$wallpapers_all_dir"*) est affiché un peu plus haut sur cette page...

J'aimerais aussi accélérer la création des miniatures en utilisant un programme basé sur imlib2 mais je sèche un peu... Si vous avez des idées...

Quant à mon idée de dossier unique pour toutes les miniatures (en arborescence), qu'en pensez-vous ? Certains ont-ils testé ?

----------

## Darkael

Pour filtrer les extensions, faut rajouter aux sed un truc comme ça:

```

sed -e '/^+ ".*\(mp3\|ogg\|wma\|flac\)"/!d'

```

la clé étant ici le \(mp3\|ogg\|wma\|flac\) où tu as la liste des extensions autorisées. Si tu veux un truc plus user-friendly, tu peux essayer un truc comme ça:

```

audio_extensions="mp3 ogg wma flac" 

audio_extensions_regex=`echo $audio_extensions | sed 's/\s\+/\\\|'`

...

                    -e '/^+ ".*\('$audio_extensions_regex'\)"/!d'

```

(note: je suis pas chez moi, donc tout ça est à prendre avec des pincettes, je vérifierais ça ce soir)

 *Quote:*   

> 
> 
> J'aimerais aussi accélérer la création des miniatures en utilisant un programme basé sur imlib2 mais je sèche un peu... Si vous avez des idées... 
> 
> 

 

Si c'est juste pour redimensionner, ça devrait pas être trop difficile d'écrire un petit programme en C, je verrais ça ce soir....

----------

## DidgeriDude

Merci KarnEvil pour tes idées avec sed (plus j'utilise ce programme, plus il me bluffe !  :Shocked: )

[OFF mode]

Le truc que je préfère car je m'étais pris la tête dessus :

```
sed -e 's/\(\<[a-zA-Z]\)\([a-zA-Z]*\>\)/\u\1\L\2/g'
```

qui écrit chaque mot avec une première lettre majuscule et le reste en minuscule comme, par exemple, les tritres de chansons en anglais...

[/OFF mode]

Pour imlib2, j'ai un peu potassé la doc (notamment afin de modifier le programme de miniaturisation rapide pour afficher les icônes sur le bureau), mais concernant ce que je veux faire, c'est un peu flou...

Question qui n'a rien à voir : comment utiliser opera -remote "openURL($url,new-window)" où $url est un chemin sur mon disque qui contient des espaces, des accents ou d'autres trucs bizarres ?

----------

## truc

 *DidgeriDude wrote:*   

> Question qui n'a rien à voir : comment utiliser opera -remote "openURL($url,new-window)" où $url est un chemin sur mon disque qui contient des espaces, des accents ou d'autres trucs bizarres ?

 

j'pense que tu vas avoir le plaisir de jouer avec sed encore.. pour remplacer ces accents espaces et autres par leur equivalent en html (c'est quoi d'ailleurs de l'ascii?) bref regarde par exemple en utilisant simplement les fonctionnnalités de bash qui me font penser que sed peut faire ce que tu veux..

```
$ url=/home/sam/tmp/test\ qsfd/bookmarks.html

$

$ echo $url

/home/truc/tmp/test qsfd/bookmarks.html

$

$ opera -remote "openURL(file://localhost${url// /%20},new-window)"

$

```

Certes là je ne remplace que les espaces, mais bon.. c'est pour le principe.. (y'a 2 '/' pour dire qu'on remplace toutes les occurences de ' ' dans la chaine $url)

voili-voilou, any comments?  :Smile: 

EDIT: par contre ça ne marche qu'avec des chemin absolu.. mais si c'est pour une utilisation avec rox ou un truc du style alors c'est tout bon;)

----------

## DidgeriDude

@truc : En fait c'est pour le fichier qui gère les associations d'extensions de Midnight Commander, mais bon merci beaucoup, je vais tester...

EDIT : J'ai testé -> pas marché ; puis adapté et hop ça a marché !!!!!! Merci encore !

J'avais pas mal regardé le manuel de bash et j'avais vu des trucs dans le genre, mais bon, je m'étais dit que ce serait pour plus tard. Je crois que le moment est venu de m'y remettre !

@KarnEvil : tu as écrit :

 *Quote:*   

> sed -e '/^+ ".*\(mp3\|ogg\|wma\|flac\)"/!d'

 Ce qui me paraît bizarre, c'est que je pensais que les \( et \) délimitaient des groupes pour les réutiliser avec \1, \2, etc. tels des registres...Last edited by DidgeriDude on Sat Jun 10, 2006 10:49 am; edited 1 time in total

----------

## Darkael

 *DidgeriDude wrote:*   

> @truc : En fait c'est pour le fichier qui gère les associations d'extensions de Midnight Commander, mais bon merci beaucoup, je vais tester...
> 
> @KarnEvil : tu as écrit :
> 
>  *Quote:*   sed -e '/^+ ".*\(mp3\|ogg\|wma\|flac\)"/!d' Ce qui me paraît bizarre, c'est que je pensais que les \( et \) délimitaient des groupes pour les réutiliser avec \1, \2, etc. tels des registres...

 

A ma connaissance c'est le seul moyen d'avoir une liste comme ça quand il y a d'autres éléments dans le pattern à chercher...

----------

## DidgeriDude

Encore une petite question de scripting :

J'ai, dans mon arborescence, des noms de dossiers comportant des esperluètes (&) ou des pourcents (%).

J'ai lu dans le man qu'il fallait les doubler (&&) et (%%) afin de les considérer comme des caractères.

Mon problème est donc, dans mon script, de ne changer que les & et % dans les titres affichés mais pas dans les chemins (nécessaires pour lancer les programmes)

En fait, je n'ai remarqué ce problème que dans mes titres de menus (pas dans chaque item), j'ai donc utilisé un sed de la forme (en attendant de trouver mieux) :

```
sed -e '/audacious -p -e \*/s/&/&&/g'
```

car le titre est le seul contenant la commande audacious -p -e *, étant donné (voir mes posts plus haut) que ma variable $audio_pgm contient "audacious -p -e".

Mon problème est que la commande 'g' de sed effectue toutes les transformations sur la ligne alors que j'aimerais que cela ne se fasse que dans le titre qui est affiché. Le problème est donc de trouver un modèle s'appliquant à un nombre quelconque de caractères spéciaux présents dans l'arborescence !!!

Heu, comment dire... Des idées ??? (Enfin si vous avez compris ce que je veux dire !!!)

----------

## Darkael

Je vois ce que tu veux dire, c'est une question assez difficile, mais c'est apparement possible:

http://doc.novsu.ac.ru/oreilly/unix/sedawk/ch06_03.htm

Regarde la partie 6.3.1, il y a un exemple qui touche à ce que tu veux faire (faire un replace sur une partie seulement d'une ligne) et qui utilise les hold buffers. J'ai pas accès à ma box (et donc fvwm) là tout de suite donc je peux pas te proposer une adaptation à ton cas... mais ça doit être faisable.

Ou sinon au pire tu peux utiliser perl ou autre...

----------

## DidgeriDude

Merci KarnEvil, ce lien est absolument terrible !

Je vais voir ce que je peux faire avec, étant donné que j'utilise sed avec un pipe ! Mais, à vue de nez, c'est très utilisable avec la partie comprise entre le + I et le "Exec".

Par contre, je ne peux pas utiliser d'autre language là tout de suite maintenant car, à par le bash que je commence à maîtriser, le pascal que je maîtrise assez bien et mes notions de C, tout autre language m'est inconnu ! Bon, c'est vrai que je me suis un peu penché sur le perl dont la syntaxe me semble assez simple mais de là à pondre un script pour FVWM, faut pas pousser mémé quand même !!

[EDIT] Ça marche, voici mon bout de script, à mettre au propre bien sûr, et à adapter à d'autres caractères spéciaux... (et à commenter, car c'est opaque !!!)

```
fvwm-menu-directory --icon-title "${icone_titre}" \

                  --title '%d' \

                  --icon-file ${icone_fichier} \

                  --icon-dir ${icone_dossier} \

                  --dir "$1" \

                  --links \

                  --exec-t="^${programme} *" \

                  --exec-file "^${programme}" \

                  | sed -e "/audacious -p -e \*/{

                            h

                            s/^\(.*\) *Exec.*\$/\1/

                            s/&/&&/g

                            G

                            s/\(.*\)\n.*\( *Exec.*\)/\1\2/}" \

                        -e "s/%[0-9][0-9][0-9][0-9] - /%/" \

                        -e "s/ item.*\$//g";;
```

Merci encore KarnEvil !

----------

## DidgeriDude

Bon je continue mes pérégrinations sur mon script de navigation dans mes dossiers...

En gros, voici le test : Afficher correctement (et n'avoir aucun problème à lancer les programmes attachés sur les fichiers des sous-dossiers, ici audacious) le dossier dont le nom est (une fois les caractères barbares rajoutés) :

"1994 - ^In# $&My% ~&[African]% ^[Dream]#*truc!!|<>"

Dans un premier temps, j'ai renommé mes fichiers avec les mêmes caractères et aucun problème à l'affichage ! En effet, fvwm-menu-directory change lui-même les &, $, * et % en &&, $$, ** et %%.

Par contre, rien concernant les titres des menus !

Comme vous avez pu le voir plus haut, je me suis bien pris la tête avec sed pour effectuer les modifications adéquates sur la sortie de fvwm-menu-directory. C'est alors que je me suis dit :

Pourquoi ne pas utiliser l'option --title de fvwm-menu-directory, vu que je ne lui demande pas de les formater de manière spéciale ?

Et voici donc le résultat (pour le dossier Musique) :

```
nom_dossier=$(echo ${1##*/} | sed -e "s/&/&&/g" -e "s/%/%%/g" -e "s/\*/**/g")

case "$1" in

    "$audio_dir"*)

        programme="$audio_pgm"

        icone_fichier="$icons_dir/musique.png"

        icone_dossier="$icons_dir/dossier_musiques.png"

        test -f "$1/.jaquette.png" && icone_titre="$1/.jaquette.png" || icone_titre="$icons_dir/dossier_musiques.png"

        fvwm-menu-directory --icon-title "${icone_titre}" \

                  --title "${nom_dossier}" \

                  --icon-file ${icone_fichier} \

                  --icon-dir ${icone_dossier} \

                  --dir "$1" \

                  --links \

                  --exec-t="^${programme} *" \

                  --exec-file "^${programme}" \

                      | sed -e "s/%[0-9][0-9][0-9][0-9] - /%/" \

                        -e "s/ item.*\$//g";;
```

C'est donc un code plus léger.

La première ligne effectue simplement les remplacements nécessaires (les '$' s'affichent correctement sans être doublés !) sur le nom du dossier en cours (récupéré à partir du chemin complet).

Il ne me reste donc plus qu'à filtrer les bons fichiers à afficher, et faire en sorte que ceux-ci soient les seuls à être affectés par l'action globale du titre !

Et puis aussi, mon histoire de programme de resize basé sur imlib2.

J'avance... lentement mais sûrement ! (C'est nul d'être perfectionniste !!)

[EDIT (06-01-2007)] Une version plus complète iciLast edited by DidgeriDude on Sat Jan 06, 2007 10:02 pm; edited 1 time in total

----------

## DidgeriDude

Je déterre ce post du fin fond des limbes de ce forum simplement pour vous (re)parler de Metisse pour lequel j'ai refais un tutoriel afin de pouvoir l'installer à partir des sources CVS.

Voilà c'est tout !

++

----------

## geekounet

Ça a l'air sympa metisse, ptêt que j'essair un jour  :Smile: 

Et merci pour le lien vers mon ebuild CVS dans ton Howto  :Wink: 

Ça me fait penser qu'il faut que je termine ma 2e config de Fvwm et que je la poste  :Smile: 

----------

## Dominique_71

Salut,

Après des années sur d'autres wm, je suis en train de me remettre à ffwm. Beaucoup de choses ont changé et de plus j'ai tout oublié. J'ai vu beaucoup de choses sur les styles mais presque rien sur les menus. Or je suis justement en train de rajouter des programmes dans le menu. Le seul problème que j'ai est que je n'arrive pas à lancer des programmes sous le compte root depuis le menu. J'ai essayé pas mal de choses, mais rien n'y a fait. Par exemple:

```
exec FvwmCommand 'su -c "porthole"'
```

et rien ne se passe. J'ai essayé aussi avec sudo. Je préferrerais su que sudo car cela marche sans que j'aie à rajouter les commandes dans la config de sudo.

Une autre question qui elle est une question de style: Est-il possible d'avoit non seulement les titres de fenètre transparents, mais aussi les décorations des programmes. Par décorations j'entend les barres de menu barres de défilements et ce genre de choses comme la barre de navigation de firefox. Idéalement, je ne voudrais que le fond de ces barres en transparent, mais ni le texte ni les bouttons ou autres icones.

----------

## UB|K

 *Dominique_71 wrote:*   

> Le seul problème que j'ai est que je n'arrive pas à lancer des programmes sous le compte root depuis le menu. J'ai essayé pas mal de choses, mais rien n'y a fait. Par exemple:
> 
> ```
> exec FvwmCommand 'su -c "porthole"'
> ```
> ...

 

Salut,

bon, je connais rien à fvwm mais pour la question su/sudo, il me semble évident que ça ne peut pas marcher car il n'y a rien pour te permettre de saisir un mot de passe. Bilan, c'est complétement impossible avec su, ça peu marcher avec sudo si tu configures les commandes à lancer avec l'otion "sans mot de passe" de sudo, une autre solution serait d'utiliser un programme style "gksu" (ou autre) comme ça tu pourra entrer le mot de passe root dans une zolie p'tite fenêtre et ainsi lancer n'importe quelle commande avec des droits root (ou n'importe quel autre utilisateur).

Pour l'autre question sur la transparence, je doute que ça soit possble avec fvwm (ni avec un autre wn d'ailleurs) car c'est du ressort du tool-kit graphique (soit gtk+ pour firefox) plus que du WM et c'est simplement pas possible de faire ça.

----------

## ryo-san

lut

J'ajouterais que pour executer une commande en root :

```
Exec sudo porthole
```

suffit.

Pour , la transparence , idem , je ne crois pas avoir deja vu ca , si ce n'est la "full transparence" avec

les options 

```

Option "RenderAccel" "true"

Option "AllowGLXWithComposite" "true"

```

+ xmodmap/xbindkeys + transset

----------

## Dominique_71

 *UB|K wrote:*   

>  il me semble évident que ça ne peut pas marcher car il n'y a rien pour te permettre de saisir un mot de passe.

 Je pensais lancer une console avec su et rentrer le mot de passe là. Mais aparemment, ça ne marche pas.

 *Quote:*   

> Pour l'autre question sur la transparence, je doute que ça soit possble avec fvwm (ni avec un autre wn d'ailleurs) car c'est du ressort du tool-kit graphique (soit gtk+ pour firefox) plus que du WM et c'est simplement pas possible de faire ça.

 

 *ryo-san wrote:*   

> lut
> 
> J'ajouterais que pour executer une commande en root :
> 
> ```
> ...

 

Merci, je vais essayer. Autrement, il y a toujours la possibilité de faire un script d'une ligne, mais je vais d'abord essayer avec sudo, cela fera une fenêtre de moins à l'écran.

 *Quote:*   

> Pour , la transparence , idem , je ne crois pas avoir deja vu ca , si ce n'est la "full transparence" avec
> 
> les options 
> 
> ```
> ...

 

Je me méfias d'un truc du genre. Je vais quand même essayer quand j'aurais le temps, mais pour le moment le menu est prioritaire.

----------

## nonas

Bonjour, bonsoir.

Depuis le temps que j'ai envie de me faire une config de fvwm j'ai décidé de m'y mettre un peu.

J'aimerai savoir si à votre connaissance il est possible d'avoir des fenêtres pas carrées ?

En fait j'aimerai un truc un peu comme ça :

```
                      ______________

____________/ Titre [-][+][X]|

|                                            |
```

Avec la partie en haut à gauche transparente.

Je pensais mettre un png avec un bout transparent pour faire ça (à moins qu'on puisse dessiner les fenêtres avec des coordonnées).

Faudra voir aussi si je peux enrouler ou pas la fenêtre depuis cette zone.

M'enfin bon j'ai pas encore vraiment commencer à lire les mans.   :Embarassed: 

----------

## ryo-san

lut

alors ,oui c'est possible

1/ pour le titre , faut utiliser "TitleStyle" il me semble... ben tiens deux sec ...

"+ TitleStyle RightJustified ..."

2/ pour les fenetres rondes , le mieux c'est d'utiliser l'ebuild de pierreg qui te donne un fvwm-cvs avec un certain nombre de patchs , notamment celui des fenetres rondes.

3/ pour la transparence pas de soucis , utilise un colorset transparent.

----------

## Dominique_71

Je suis toujours dans mon menu. J'ai rajouté un menu pour avoir les pages de man dans le menu de Fvwm. J'en ai fait un tips and trick: FVWM Man Pages Menu.

----------

## Dominique_71

J'ai deux questions supplémentaires:

1) Je n'ai pas gnome installé. Est-ce que quelqu'un sait dans quel package se trouve gnome-settings-daemon?

2) Je suis en train de faire un recipe qui est un mix de nebulae et de quelques autres recipes plus quelques ajouts. J'aimerais que le panel en bas de l'écran (le même que nebulea) disparraisse quand je n'ai pas la souris dessus et réapparaisse quand la souris est en bas de l'écran. Est-ce possible?

----------

## nonas

Pour le 2) ça doit être possible, taviso avait fait un term qui descendait du haut de l'écran quand la souris était en haut et se cachait quand la souris n'y était plus.

Tu peux regarder de ce côté là. ( http://dev.gentoo.org/~taviso/ )

----------

## geekounet

 *Dominique_71 wrote:*   

> 1) Je n'ai pas gnome installé. Est-ce que quelqu'un sait dans quel package se trouve gnome-settings-daemon?

 

```
# qfile /usr/libexec/gnome-settings-daemon

gnome-base/control-center (/usr/libexec/gnome-settings-daemon)
```

 :Wink: 

----------

## Dominique_71

Merci pierreg et nonas pour les réponses.

La config de taviso est d'autant plus intéressante qu'il y a beaucoup de commentaires. Entre temps, j'ai eu une autre idée, je ne veux plus que mon panel disparaisse, mais qu'il se réduise en une petie horloge, et uniquement avec un click. Et peut-être un autre click pour avoir les boutons multimédias et le mixage, mais il faut que je fasse une chose à la fois.

Autrement, j'ai fait une page sur fvwm et gensplah avec les deux configs. C'est ici. Il n'y a pas encore grand chose, mais cela va évoluer en fonction de mes envies et de mon temps libre.

----------

## Dominique_71

Je suis en train d'éplucher ma config pour voir ce qui s'y passe.

Au début, il y a Include components/apps/FvwmMiniConsole. Qu'est-ce que c'est que ce truc? Je connais la console (Alt-F1, etc) et les terminaux (xterm, etc) J'ai beau essayer de lire le fichier dans components/apps, cela ne me dit pas plus.

Et juste en dessous, il y a: Include components/apps/QuakeConsole. J'ai aussi vu que dans le menu, je peux choisir le terminal et le couac terminal par défaut, je suppose qu'il s'agit des fonctions qui permettent de les appeler, mais je n'ai acune idée de la différence entre les deux. J'ai les même terminaux qui apparaissent dans les deux sous-menus.

Une autre question: Qu'est-ce que l'option terminal protégé dans les préférences?

Tout autre chose. J'ai essayé de rajouter alsaplayer dans lea préférences, mais tout ce que j'obtient est une petite tête de mort en guise de curseur de la souris quand je recharge la recette. Et quand je clique sur le bouton du player dans le dock, le curseur de la souris se met à tourner sans fin jusqu'à ce que je tue l'alsaplayer avec htop. Et je n'ai ni mixer ni speed controle dans le menu son. 

components/functions/Mixer-alsaplayer

```
DestroyFunc Mixer-Volume

AddToFunc Mixer-Volume

+ I Exec exec alsaplayer --volume "$0"

DestroyFunc Speed

AddToFunc Speed

+ I Exec exec alsaplayer --speed "$0"

#DestroyFunc Mixer-Volume-Down

#AddToFunc Mixer-Volume-Down

#+ I Exec exec xmms-shell -e "downvolume $0"

DestroyFunc Mixer-GUI

AddToFunc Mixer-GUI

+ I Nop

DestroyMenu /Mixer

AddToMenu /Mixer

+ "1.0" Mixer-Volume 100

+ "0.9" Mixer-Volume 90

+ "0.8" Mixer-Volume 80

+ "0.5" Mixer-Volume 50

+ "0.3" Mixer-Volume 30

+ "0.0" Mixer-Volume 0

Destroy Menu /Speed

AddToMenu /Speed

+ "10.0" Speed x10

+ "7.0" Speed x7

+ "5.0" Speed x5

+ "3.0" Speed x3

+ "2.0" Speed x2

+ "1.7" Speed x1.7

+ "1.5" Speed x1.5

+ "1.3" Speed x1.3

+ "1.2" Speed x1.2

+ "1.1" Speed x1.1

+ "1.0" Normal speed

+ "0.9" Speed x0.9

+ "0.8" Speed x0.8

+ "0.7" Speed x0.7

+ "0.5" Speed x0.5

+ "0.3" Speed x0.3

+ "0.0" Speed 0

+ "-0.3" Speed -0.3

+ "-0.5" Speed -0.5

+ "-0.7" Speed -0.7

+ "-0.8" Speed -0.8

+ "-0.9" Speed -0.9

+ "-1.0" Normal speed backwards

+ "-1.1" Speed -1.1

+ "-1.2" Speed -1.2

+ "-1.3" Speed -1.3

+ "-1.5" Speed -1.5

+ "-1.7" Speed -1.7

+ "-2.0" Speed -2

+ "-3.0" Speed -3

+ "-5.0" Speed -5

+ "-7.0" Speed -7

+ "-10.0" Speed -10

# vim:ft=fvwm

```

components/functions/Music-alsaplayer

```
# Where are stored Alsaplayer playlists

SetEnv Alsaplayer-Playlists "$[HOME]/.fvwm/Alsaplayer-playlists"

# Styles for XMMS windows

Style alsaplayer                StaysOnTop

Style alsaplayer_Player StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip

Style alsaplayer_Playlist       StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip

Style alsaplayer_Equalizer      StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip

# If there is no selected mixer, load the default

CheckPreferences DefaultMixer "Include components/functions/Mixer-alsaplayer"

# Main functions and menus

DestroyMenu /Music

AddToMenu /Music

+ DynamicPopupAction Function /Music-generator

DestroyFunc /Music-generator

AddToFunc /Music-generator

+ I DestroyMenu recreate /Music

+ I AddToMenu /Music '$[gt.Load playlist]'              Popup /Music/LoadPlaylist

+ I AddToMenu /Music '$[gt.Save playlist...]'   Music-SavePlaylist

+ I AddToMenu /Music '$[gt.Clear playlist]'     Music-ClearPlaylist

+ I AddToMenu /Music '$[gt.Remove current song]'        Music-RemoveSong

+ I AddToMenu /Music '$[gt.Remove playlist]'    Popup /Music/RemovePlaylist

+ I AddToMenu /Music "" Nop

#+ I PipeRead 'alsaplayer -e "volume" | head -1 | sed -e "s/Left channel volume:\ //" | sed -e "s:[ \t]::g" | sed -e "s:^.\\+$:AddToMenu\ /Music \'$[gt.Volume] \(&%%\)\' Popup /Mixer:"'

+ I PipeRead 'alsaplayer' Popup /Mixer:"'

+ I AddToMenu /Music '$[gt.Toggle random]'      Music-ToggleRandom

#+ I AddToMenu /Music '$[gt.Toggle repeat]'     Exec exec alsaplayer -e "repeat toggle"

+ I AddToMenu /Music "" Nop

+ I AddToMenu /Music '$[gt.Stop playback]'      Music-Stop

+ I AddToMenu /Music '$[gt.Show/hide player]'   Music-GUI

+ I AddToMenu /Music '$[gt.Play/Pause]'         Music-PlayPause

# ---------------------------------------------------------------------------

# Basic control functions

DestroyFunc Music-Play

AddToFunc Music-Play

+ I Exec exec alsaplayer --start

DestroyFunc Music-Pause

AddToFunc Music-Pause

+ I Exec exec alsaplayer --pause

DestroyFunc Music-Stop

AddToFunc Music-Stop

+ I Exec exec alsaplayer --stop

#DestroyFunc Music-PlayPause

#AddToFunc Music-PlayPause

#+ I Exec exec alsaplayer --play-pause

DestroyFunc Music-Next

AddToFunc Music-Next

+ I Exec exec alsaplayer --next

DestroyFunc Music-Prev

AddToFunc Music-Prev

+ I Exec exec alsaplayer --prev

#DestroyFunc Music-Forward

#AddToFunc Music-Forward

#+ I Exec exec xmms-shell -e "forward"

#DestroyFunc Music-Backward

#AddToFunc Music-Backward

#+ I Exec exec xmms-shell -e "backward"

#DestroyFunc Music-ToggleRandom

#AddToFunc Music-ToggleRandom

#+ I Exec exec xmms-shell -e "shuffle toggle"

#DestroyFunc Music-RemoveSong

#AddToFunc Music-RemoveSong

#+ I Exec exec xmms-shell -e "remove `xmms-shell -e currenttrack | sed -e 's/Current song: //' -e 's/\..*//'`"

DestroyFunc Music-GUI

AddToFunc Music-GUI

+ I All (Alsaplayer_Player) Iconify toggle

DestroyFunc Music-Find

AddToFunc Music-Find

+ I Style AlsaplayerFind* NoTitle

+ I Style AlsaplayerFind* StaysOnTop

+ I Style AlsaplayerFind* Sticky

+ I Style AlsaplayerFind* StartNormal

+ I Exec pidof alsaplayer

+ I TestRc (Match) Wait AlsaplayerFind*

+ I All (AlsaplayerFind*, CurrentPage) Focus

# ---------------------------------------------------------------------------

# Playlist functions

DestroyMenu /Music/LoadPlaylist

AddToMenu /Music/LoadPlaylist

+ DynamicPopupAction Function /Music/LoadPlaylist-generator

DestroyFunc /Music/LoadPlaylist-generator

AddToFunc /Music/LoadPlaylist-generator

+ I DestroyMenu recreate /Music/LoadPlaylist

+ I AddToMenu /Music/LoadPlaylist

+ I PipeRead 'for i in $[Alsaplayer-Playlists]/*.m3u $[Alsaplayer-Playlists]/*.pls; do \

  name=$(basename "$i"); \

  sname=${name%%.m3u}; \

  sname=${sname%%.pls}; \

  echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec alsaplayer -e \'$i\'\"; done'

DestroyFunc Music-SavePlaylist

AddToFunc Music-SavePlaylist

+ I Exec exec mkdir -p $[Alsaplayer-Playlists]

+ I Module FvwmForm Music-SavePlaylist-Dialog

All (Music-SavePlaylist-Dialog) Close

DestroyModuleConfig Music-SavePlaylist-Dialog: *

*Music-SavePlaylist-Dialog: Title "$[gt.Save playlist]"

*Music-SavePlaylist-Dialog: Text "$[gt.Name of the playlist]"

*Music-SavePlaylist-Dialog: Line center

*Music-SavePlaylist-Dialog: Input PlaylistName 40 ""

*Music-SavePlaylist-Dialog: Line center

*Music-SavePlaylist-Dialog: Line center

*Music-SavePlaylist-Dialog: Button quit " $[gt.Cancel] " ^[

*Music-SavePlaylist-Dialog: Command Nop

*Music-SavePlaylist-Dialog: Button quit " $[gt.Save] " ^M

*Music-SavePlaylist-Dialog: Command Exec exec alsaplayer -e "save '$[Alsaplayer-Playlists]/$(PlaylistName).m3u'"

*Music-SavePlaylist-Dialog: Line center

DestroyFunc Music-ClearPlaylist

AddToFunc Music-ClearPlaylist

+ I Exec exec alsaplayer --clear

DestroyMenu /Music/RemovePlaylist

AddToMenu /Music/RemovePlaylist

+ DynamicPopupAction Function /Music/RemovePlaylist-generator

DestroyFunc /Music/RemovePlaylist-generator

AddToFunc /Music/RemovePlaylist-generator

+ I DestroyMenu recreate /Music/RemovePlaylist

+ I AddToMenu /Music/RemovePlaylist

+ I PipeRead 'for i in $[Alsaplayer-Playlists]/*.m3u $[Alsaplayer-Playlists]/*.pls; do \

  name=$(basename "$i"); \

  sname=${name%%.m3u}; \

  sname=${sname%%.pls}; \

  echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done'

# vim:ft=fvwm

```

components/functions/Preferences-Menu, extrais:

```
#

# Music player

#

DestroyMenu /Preferences/MusicPlayer

AddToMenu /Preferences/MusicPlayer

Test (x alsaplayer)     + '%22x22/apps/alsaplayer.png%Alsaplayer'               SelectMusicPlayer alsaplayer

Test (x mpc)            + '%22x22/apps/gmpc.png%MPD'            SelectMusicPlayer mpd

Test (x quodlibet)      + '%22x22/apps/quodlibet.png%Quod Libet'        SelectMusicPlayer quodlibet

Test (x xmms-shell)     + '%22x22/apps/xmms.png%XMMS'   SelectMusicPlayer xmms

Test (x xmms2)          + '%22x22/apps/xmms2.png%XMMS2' SelectMusicPlayer xmms2

Test (x cmus-remote)    + '%22x22/apps/cmus.png%C Music Player' SelectMusicPlayer cmus

Test (x cdcd)           + '%22x22/apps/goobox.png%cdcd' SelectMusicPlayer cdcd

DestroyFunc SelectMusicPlayer

AddToFunc SelectMusicPlayer

+ I FindCommand MusicPlayer $0 alsaplayer mpd quodlibet xmms xmm2 cmus cdcd

+ I Include components/functions/Music-$[MusicPlayer]

+ I SavePreferences DefaultMusicPlayer "Include components/functions/Music-$[MusicPlayer]"

#

# Audio mixer

#

DestroyMenu /Preferences/Mixer

AddToMenu /Preferences/Mixer

Test (x aumix)          + '%22x22/apps/aumix.png%Aumix' SelectMixer aumix

                        + "" Nop

Test (x alsaplayer)     + '%22x22/apps/alsaplayer.png%Alsaplayer'               SelectMixer alsaplayer

Test (x mpc)            + '%22x22/apps/gmpc.png%MPD'            SelectMixer mpd

Test (x quodlibet)      + '%22x22/apps/quodlibet.png%Quod Libet'        SelectMixer quodlibet

Test (x xmms-shell)     + '%22x22/apps/xmms.png%XMMS'   SelectMixer xmms

Test (x xmms2)          + '%22x22/apps/xmms2.png%XMMS2' SelectMixer xmms2

Test (x cmus-remote)    + '%22x22/apps/cmus.png%C Music Player' SelectMixer cmus

Test (x cdcd)           + '%22x22/apps/goobox.png%cdcd' SelectMixer cdcd

DestroyFunc SelectMixer

AddToFunc SelectMixer

+ I FindCommand DefaultMixer $0 aumix alsaplayer mpd quodlibet xmms xmms2 cmus cdcd

+ I Include components/functions/Mixer-$[DefaultMixer]

+ I SavePreferences DefaultMixer "Include components/functions/Mixer-$[DefaultMixer]"

```

Dans la recipe:

```
+ '%22x22/fvwm-crystal/preferences-desktop.png%$[gt.Preferences]' Popup /Preferences

...

# Music panel {{{1

All (FvwmButtons-Music) Close

DestroyModuleConfig FvwmButtons-Music: *

*FvwmButtons-Music: Geometry +77--1

*FvwmButtons-Music: BoxSize smart

*FvwmButtons-Music: ActiveColorset $[cs-panel-active]

*FvwmButtons-Music: Colorset $[cs-panel-inactive]

*FvwmButtons-Music: Rows 1

*FvwmButtons-Music: Padding 1 1

*FvwmButtons-Music: Frame 0

# Main music button, with some menus {{{2

*FvwmButtons-Music: (1x1, Size 22 22, Icon "22x22/fvwm-crystal/media-playback-start.png", \

Action (Mouse 1) Menu /Music $[MenuPosition-NE], \

Action (Mouse 2) Music-GUI, \

Action (Mouse 3) Music-PlayPause, \

Action (Mouse 4) Mixer-Volume-Up 10, \

Action (Mouse 5) Mixer-Volume-Down 10)

# music controls button {{{2

*FvwmButtons-Music: (1x1, Size 22 22, Icon "22x22/fvwm-crystal/media-skip-forward.png", \

        Action (Mouse 1) Music-Next, \

        Action (Mouse 2) Nop, \

        Action (Mouse 3) Music-Prev, \

        Action (Mouse 4) Music-Forward, \

        Action (Mouse 5) Music-Backward)

# }}}2

Module FvwmButtons FvwmButtons-Music

```

J'ignore si cela ne marche pas car alsaplayer n'a pas de fonction pour incrémenter ou décrémenter le volume. La seule option est --volume qui prend une valeur entre 0.0 et 1.0. Il a aussi une fonction de controle de vitesse (qui marche même sur les stream internet si le serveur suit) --speed qui elle aussi ne prend que des valeurs absolues entre 10.0 et -10.0.

Ce script est au départ conçu pour xmms et d'autre player, et je ne sais pas si cela plante car crystal ne comprend pas les fonctions manquantes, les fonctions supplémentaires, et / ou parce que je me suis gourré.

----------

## truc

 *Dominique_71 wrote:*   

> 1) Je n'ai pas gnome installé. Est-ce que quelqu'un sait dans quel package se trouve gnome-settings-daemon?

 

Je sais que tu cherches gnome-settings-daemon, mais j'ai découvert qu'en fait pour changer le thème des fenètres, il n'y en a pas besoin, il te suffit d'avoir par exemple

```
x11-themes/gtk-theme-switch
```

et si le sthème par défaut ne te conviennent pas tu peux en rajouter, par exemple

```
x11-themes/gtk-engines-xfce
```

et hope, tu peux enfin profiter du thème xfce-dusk par exemple!

voilivoilou//

----------

## Dominique_71

Un truc rigolo que j'ai vu sur le pc de ma mère, ce n'est pas relatif à la configuration de fvwm mais c'est très fun. Je m'emmerdait avec kde sous Suse, j'ai installé fvwm2, pas la version de suse qui est antique et qui ne doit pas être supprimée car c'est une dépendance de yast, mais la dernière dans /usr/local. Après ça j'ouvre une console et tape "/usr/local/bin/fvwm2". Un message d'erreur apparait qui me dit d'essayer avec -replace.

```
/usr/local/bin/fvwm2 -replace
```

Et là, miracle, fvwm2 a remplacé kde sans tuer aucune des apllis qui tournaient. La barre en bas de kde avec le menu et le dock s'est même retrouvée dans une fenètre Fvwm. Du coup, j'avais un thème presque complêt sans tapez une seule ligne. :Very Happy: 

----------

## geekounet

Ça ça marche avec tous les WM ICCCM-compliant. C'est la même commande avec kwin, metacity, xfwm, compiz, ...  :Smile: 

----------

## nemo13

 *pierreg wrote:*   

> Ça ça marche avec tous les WM ICCCM-compliant. C'est la même commande avec kwin, metacity, xfwm, compiz, ... 

 

 :Wink: 

Je propose d'ouvrir une pétition interdisant à Pierreg de lire!

Cet homme commence à trop en savoir   :Twisted Evil:   :Twisted Evil:   :Twisted Evil: 

bon je   :Arrow:   sous la pluie.

----------

## geekounet

 *nemo13 wrote:*   

>  *pierreg wrote:*   Ça ça marche avec tous les WM ICCCM-compliant. C'est la même commande avec kwin, metacity, xfwm, compiz, ...  
> 
> Je propose d'ouvrir une pétition interdisant à Pierreg de lire!
> 
> Cet homme commence à trop en savoir    
> ...

 

Han ! Pour si peu ...  :Razz: 

----------

## Dominique_71

Un autre problème avec ma config, j'ai un menu pour afficher les pages de man de fvwm qui fonctionne bien. Mais j'ai essyé de changer la taille des fonts, cela se passe bien quand je lance la commande depuis un terminal, mais la même commande depuis le menu ne change pas les fontes:

```
$ cat FvwmManPagesMenu

# Add menu Fvwm man pages

DestroyFunc FvwmViewManPage

AddToFunc FvwmViewManPage

+ I Exec exec xterm -fg White -bg DarkBlue -g 80x50 -fn 10x20 -fb 10x20bold \

-n "Manual Page - $0" -T "Manual Page - $0" -e man "$0"

#####

# FVWM Help Menu

###########

DestroyMenu FvwmManPagesMenu

AddToMenu FvwmManPagesMenu "FVWM Man Pages" Title

+ "%22x22/categories/help.png%fvwm" FvwmViewManPage fvwm

+ "%22x22/categories/help.png%xpmroot" FvwmViewManPage xpmroot

+ etc....

$ cat "Thin Dock"

...

# ManPagesMenu

Include components/functions/FvwmManPagesMenu

...

# Main "diamond" menu {{{2

DestroyMenu /FVWM-Crystal

AddToMenu /FVWM-Crystal

+ '%22x22/fvwm-crystal/fvwm-crystal.png%$[gt.Help]' Popup FvwmManPagesMenu

...

```

Les fontes sont obstinément en 7x14, ce qui en 1280x1024 est plutôt petit. J'ai parcouru les autres fichiers à la recherche d'un style pour xterm, mais le seul que j'ai trouvé est pour les bords. J'ai essayé de le commenter pour voir, mais cela n'a rien changé non plus. Donc je nage. 

Une autre question: Si je comprend bien la dernière commande ci-dessus, '%22x22/fvwm-crystal/fvwm-crystal.png%$[gt.Help]', ne fait rien d'autre que m'afficher une icone suivie du texte Help.

J'ai ce qui suit dans mon fichier locale:

```
msgid "Help"

msgstr "Aide"
```

mais fvwm ne comprend pas et j'ai toujours le texte anglais. Y a t'il un moyen de changer la commande pour qu'il comprenne qu'il doit aller chercher le texte dans les locales?

EDIT: Il semble que ce problème de locales est un problème général car j'ai même les menu des applications dont les catégories sont en anglais alors qu'elles étaient en français avant. Car j'ai modifié mes locales pour avoir l'anglais pour root car c'est trop chiant pour traduire les sorties d'emerge pour les forums ou les rapports de bug.

J'ai mis LC_ALL et LANG = fr_CH.UTF-8 dans ~/.bashrc. Les terminaux le comprennet bien, par contre fvwm utilise l'anglais.

EDIT 2: J'ai remis mes locales système sous fr_CH.UTF-8, tout en mettant un .bashrc dans /root avec les locales anglaises. ça marche pour emerge mais pas pour fvwm. J'ai toujours mes menus en anglais. Je vais commencer par croire que Linus Thorwald a bien raison quand il dit d'utiliser kde...

EDIT 3: ça marche, je n'avait pas fait de env-update. Mais le problème pour alsaplayer demeure.

EDIT 4: Même la taille des fontes fonctionnent. C'est bizarre, car j'ai le même menu dans un autre fichier pour appeler d'autres pages de man et le fait de mettre la même taille de fontes dans cet autre fichier à fait que cela fonctionne aussi dans celui-là. A croire que mon pc a fumé la moquette.Last edited by Dominique_71 on Mon Sep 25, 2006 5:36 pm; edited 1 time in total

----------

## Dominique_71

Mon menu alsamixer commence à fonctionner. Par contre il y a des trucs qui m'échappent totalement. Dabord l'état actuel des fichiers:

Music-alsaplayer

```
# Where are stored Alsaplayer playlists

SetEnv Alsaplayer-Playlists "$[HOME]/.fvwm/Alsaplayer-playlists"

# Styles for XMMS windows

Style alsaplayer                StaysOnTop

Style alsaplayer_Player StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip

Style alsaplayer_Playlist       StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip

Style alsaplayer_Equalizer      StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip

# If there is no selected mixer, load the default

CheckPreferences DefaultMixer "Include components/functions/Mixer-alsaplayer"

# Main functions and menus

DestroyMenu /Music

AddToMenu /Music

+ DynamicPopupAction Function /Music-generator

DestroyFunc /Music-generator

AddToFunc /Music-generator

+ I DestroyMenu recreate /Music

+ I AddToMenu /Music '$[gt.Load playlist]'              Popup /Music/LoadPlaylist

+ I AddToMenu /Music '$[gt.Save playlist...]'   Music-SavePlaylist

+ I AddToMenu /Music '$[gt.Clear playlist]'     Music-ClearPlaylist

+ I AddToMenu /Music '$[gt.Remove playlist]'    Popup /Music/RemovePlaylist

+ I AddToMenu /Music "" Nop

+ I AddToMenu /Music '$[gt.Volume]' Popup /Mixer

+ I AddToMenu /Music "" Nop

+ I AddToMenu /Music '$[gt.Stop playback]'      Music-Stop

+ I AddToMenu /Music '$[gt.Show/hide player]'   Music-GUI

+ I AddToMenu /Music '$[gt.Play]                Music-Play

+ I AddToMenu /Music '$[gt.Pause]               Music-Pause

+ I AddToMenu /Music '$[gt.Next]                Music-Next

+ I AddToMenu /Music '$[gt.Prev]'               Music-Prev

# ---------------------------------------------------------------------------

# Basic control functions

DestroyFunc Music-Play

AddToFunc Music-Play

+ I Exec exec alsaplayer --start

DestroyFunc Music-Pause

AddToFunc Music-Pause

+ I Exec exec alsaplayer --pause

DestroyFunc Music-Stop

AddToFunc Music-Stop

+ I Exec exec alsaplayer --stop

DestroyFunc Music-Next

AddToFunc Music-Next

+ I Exec exec alsaplayer --next

DestroyFunc Music-Prev

AddToFunc Music-Prev

+ I Exec exec alsaplayer --prev

DestroyFunc Music-GUI

AddToFunc Music-GUI

+ I All (Alsaplayer_Player) Iconify toggle

DestroyFunc Music-Find

AddToFunc Music-Find

+ I Style AlsaplayerFind* NoTitle

+ I Style AlsaplayerFind* StaysOnTop

+ I Style AlsaplayerFind* Sticky

+ I Style AlsaplayerFind* StartNormal

+ I Exec pidof alsaplayer

+ I TestRc (Match) Wait AlsaplayerFind*

+ I All (AlsaplayerFind*, CurrentPage) Focus

...
```

Le menu s'affiche. Par contre, seul les boutons stop et prev fonctionnent. start et pause n'ont aucun effet. Pour next, je ne sais pas car je suis sur une radio internet et je n'ai pas envie de changer pour le moment. Radioblagon pour ne pas la nommer (southcast). Ce que je ne comprend pas et que cela fonctionne quand je lance "alsaplayer --play" ou "alsaplayer --pause" dans une console.

Le mixer, j'ai supprimé le speed control pour le moment, du coup je n'ai plus de tête de mort au chargement de la recette:

Mixer-alsamixer

```
DestroyFunc Mixer-Volume

AddToFunc Mixer-Volume

+ I Exec exec alsaplayer --volume $0

DestroyFunc Mixer-GUI

AddToFunc Mixer-GUI

+ I Nop

DestroyMenu /Mixer

AddToMenu /Mixer

+ "100%%" Mixer-Volume 1.0

+ "90%%" Mixer-Volume 0.9

+ "80%%" Mixer-Volume 0.8

+ "50%%" Mixer-Volume 0.5

+ "30%%" Mixer-Volume 0.3

+ "0" Mixer-Volume 0.0
```

Et là, seulement 100% de volume fonctionne correctement, les autres cases me flanquent le volume à 0. C'est comme s'ils ne comprennaient que le 0 du 0.n final. Alsaplayer veut un nombre entre 0 et 1. Et là aussi cela marche bien si je lance "alsaplayer --volume 0.n" dans une console. J'ai essayé avec des " et des ', mais sans succés. Est-ce que quelcun à une idée comment je peux passer un nombre décimal dans cette function?

Une question en prime. J'ai vu des scripts dans ces mixers qui utilisent "Exec exec commande", d'autres qui utilisent Exec commande". Quelle différence entre les deux?

----------

## truc

tu as essayé de mettre des guillemets autour de 0.n ?  --> "0.n" 

Sinon, c'est conseillé de faire Exec exec machin, pour une raison un peu obscure pour moi, mais je crois que çe détache simplement le processus de fvwm, ce qui est normalement un bon point.

sinon moi, pour xbindkeyx j'ai untrucs comme ça: "amixer sset Master 1-" piour baisser de 1 cran le volume principal, tu peux probablement t'en inspirer?

----------

## Dominique_71

J'ai essayé "0.n" et '0.n'

ça donne le même résultat qu'avec 0.n

J'aimerais bien arriver à le faire marcher car le controle de vitesse utilise aussi des nombres décimaux. Et si je n'arrive pas à le s faire marcher avec le controle de volume, cela ne sert à rien que j'essaie de faire un controle de vitesse dans le menu, ce qui serait très pratique.

----------

## truc

peut-être que les locales fr_FR ont une influence, tu as testé avec "0,n"  :Question: 

(dans la série on sait jamais..)

----------

## Dominique_71

 *truc wrote:*   

> peut-être que les locales fr_FR ont une influence, tu as testé avec "0,n" 
> 
> (dans la série on sait jamais..)

 

Ben c'est bien ça. Merci. Il me reste plus qu'à mettre des db maintenant. J'ai essayé aussi à la console, alsaplayer marche avec les deux, mais sa page de man n'en parle pas.

EDIT: J'ai trouvé pourquoi pause, etc ne fonctionnaient pas. Ma faute, j'avais oublier des ' 

Et le controle de vitesse commence à fonctionner.

Par ailleurs, j'ai trouvé un bug dans alsaplayer. Quand je fait pause pause, il s'arrête et repart, mais à une vitesse plus lente. Par contre si je le relance avec speed, la vitesse est correcte.

EDIT 2: Voici le code s'il y en a que cela intéresse, j'utilise speed pour la pause, cela fait une case de plus Play/Pause:

Mixer-alsaplayer

```
# Support for Alsaplayer music player - mixer and speed control

DestroyFunc Mixer-Driver

AddToFunc Mixer-Driver

+ I SetEnv A_Player $0

+ I Exec exec killall alsaplayer

+ I Exec exec $[A_Player]

DestroyFunc Mixer-VolumeFr

AddToFunc Mixer-VolumeFr

+ I Exec exec $[A_Player] --volume $0

DestroyFunc Mixer-VolumeEn

AddToFunc Mixer-VolumeEn

+ I Exec exec $[A_Player] --volume $0

DestroyFunc Mixer-GUI

AddToFunc Mixer-GUI

+ I Nop

DestroyFunc Mixer-SpeedFr

AddToFunc Mixer-SpeedFr

+ I Exec exec $[A_Player] --speed $0

DestroyFunc Mixer-SpeedEn

AddToFunc Mixer-SpeedEn

+ I Exec exec $[A_Player] --speed $0

DestroyFunc Mixer-Jump

AddToFunc Mixer-Jump

+ I Exec exec $[A_Player] --jump $0

DestroyFunc Mixer-Seek

AddToFunc Mixer-Seek

+ I Exec exec $[A_Player] --seek $0

DestroyFunc Mixer-Rel

AddToFunc Mixer-Rel

+ I Exec exec $[A_Player] --relative $0

DestroyMenu /Driver

AddToMenu /Driver

+ "Alsa%" Mixer-Driver "alsaplayer -o alsa"

+ "Jack%" Mixer-Driver "alsaplayer -o jack -F48000"

DestroyMenu /VolumeFr

AddToMenu /VolumeFr

+ " 0 db%" Mixer-VolumeFr '1,0'

+ "-3 db%" Mixer-VolumeFr '0,707'

+ "-6 db%" Mixer-VolumeFr '0,5'

+ "-12 dB%" Mixer-VolumeFr '0,25'

+ "-18 db%" Mixer-VolumeFr '0,125'

+ "-24 db%" Mixer-VolumeFr '0,0625'

+ "-30 db%" Mixer-VolumeFr '0,03125'

+ "-36 db%" Mixer-VolumeFr '0,015625'

+ " 0" Mixer-VolumeFr '0,0'

DestroyMenu /VolumeEn

AddToMenu /VolumeEn

+ " 0 db%" Mixer-VolumeEn '1.0'

+ "-3 db%" Mixer-VolumeEn '0.707'

+ "-6 db%" Mixer-VolumeEn '0.5'

+ "-12 dB%" Mixer-VolumeEn '0.25'

+ "-18 db%" Mixer-VolumeEn '0.125'

+ "-24 db%" Mixer-VolumeEn '0.0625'

+ "-30 db%" Mixer-VolumeEn '0.03125'

+ "-36 db%" Mixer-VolumeEn '0.015625'

+ " 0" Mixer-VolumeEn '0.0'

DestroyMenu /SpeedFr

AddToMenu /SpeedFr

+ "Max%" Mixer-SpeedFr '10'

+ "+ 3 octaves%" Mixer-SpeedFr '8'

+ "+ 2 octaves%" Mixer-SpeedFr '4'

+ "+ 1 octave 1/2%" Mixer-SpeedFr '2,9966'

+ "+ 1 octave%" Mixer-SpeedFr '2'

+ "+ 1 septieme%" Mixer-SpeedFr '1,8877'

+ "+ 5 tons%" Mixer-SpeedFr '1,7818'

+ "+ 1 sixte%" Mixer-SpeedFr '1,6818'

+ "+ 4 tons%" Mixer-SpeedFr '1,5874'

+ "+ 1 quinte%" Mixer-SpeedFr '1,4983'

+ "+ 3 tons%" Mixer-SpeedFr '1,4142'

+ "+ 1 quarte%" Mixer-SpeedFr '1,3348'

+ "+ 1 tierce%" Mixer-SpeedFr '1,2599'

+ "+ 1 ton 1/2%" Mixer-SpeedFr '1,1892'

+ "+ 1 seconde%" Mixer-SpeedFr '1,1225'

+ "+ 1/2 ton%" Mixer-SpeedFr '1,0595'

+ "+ 3 commas%" Mixer-SpeedFr '1,0414'

+ "+ 2 commas%" Mixer-SpeedFr '1,0275'

+ "+ 1 comma%" Mixer-SpeedFr '1,0136'

+ "Normal%" Mixer-SpeedFr '1,0'

+ "-1 comma%" Mixer-SpeedFr '0,9865'

+ "-2 commas%" Mixer-SpeedFr '0,9733'

+ "-3 commas%" Mixer-SpeedFr '0,9602'

+ "-1 1/2 ton%" Mixer-SpeedFr '0,9439'

+ "-1 seconde%" Mixer-SpeedFr '0,8909'

+ "-1 ton 1/2%" Mixer-SpeedFr '0,8409'

+ "-1 tierce%" Mixer-SpeedFr '0,7937'

+ "-1 quarte%" Mixer-SpeedFr '0,7492'

+ "-3 tons %" Mixer-SpeedFr '0,7071'

+ "-1 quinte%" Mixer-SpeedFr '0,6674'

+ "-4 tons%" Mixer-SpeedFr '0,623'

+ "-1 sixte%" Mixer-SpeedFr '0,5946'

+ "-5 tons%" Mixer-SpeedFr '0,561'

+ "-1 septieme%" Mixer-SpeedFr '0,5297'

+ "-1 octave%" Mixer-SpeedFr '0,5'

+ "-1 octave 1/2%" Mixer-SpeedFr '0,3337'

+ "-2 octaves%" Mixer-SpeedFr '0,25'

+ "-3 octaves%" Mixer-SpeedFr '0,125'

+ "-4 octaves%" Mixer-SpeedFr '0,0625'

+ "Pause%" Mixer-SpeedFr '0'

+ "-4 octaves back%" Mixer-SpeedFr '-0,0625'

+ "-3 octave back%" Mixer-SpeedFr '-0,125'

+ "-2 octaves back%" Mixer-SpeedFr '-0,25'

+ "-1 octave 1/2 back%" Mixer-SpeedFr '-0,3337'

+ "-1 octave back%" Mixer-SpeedFr '-0,5'

+ "-1 quinte back%" Mixer-SpeedFr '-0,6674'

+ "-1 tierce back%" Mixer-SpeedFr '-0,7937'

+ "-1 seconde back%" Mixer-SpeedFr '-0,8909'

+ "-1 1/2 ton% back" Mixer-SpeedFr '-0,9439'

+ "Normal backward speed%" Mixer-SpeedFr '-1,0'

+ "+ 1/2 ton back%" Mixer-SpeedFr '-1,0595'

+ "+ 1 seconde back%" Mixer-SpeedFr '-1,1225'

+ "+ 1 tierce back%" Mixer-SpeedFr '-1,2599'

+ "+ 1 quinte back%" Mixer-SpeedFr '-1,4983'

+ "+ 1 octave back%" Mixer-SpeedFr '-2'

+ "+ 1 octave 1/2 back%" Mixer-SpeedFr '-2,9966'

+ "+ 2 octavesback%" Mixer-SpeedFr '-4'

+ "+ 3 octaves back%" Mixer-SpeedFr '-8'

+ "Max back%" Mixer-SpeedFr '-10'

DestroyMenu /SpeedEn

AddToMenu /SpeedEn

+ "Max%" Mixer-SpeedEn '10'

+ "+ 3 octaves%" Mixer-SpeedEn '8'

+ "+ 2 octaves%" Mixer-SpeedEn '4'

+ "+ 1 octave 1/2%" Mixer-SpeedEn '2.9966'

+ "+ 1 octave%" Mixer-SpeedEn '2'

+ "+ 1 septieme%" Mixer-SpeedEn '1.8877'

+ "+ 5 tons%" Mixer-SpeedEn '1.7818'

+ "+ 1 sixte%" Mixer-SpeedEn '1.6818'

+ "+ 4 tons%" Mixer-SpeedEn '1.5874'

+ "+ 1 quinte%" Mixer-SpeedEn '1.4983'

+ "+ 3 tons%" Mixer-SpeedEn '1.4142'

+ "+ 1 quarte%" Mixer-SpeedEn '1.3348'

+ "+ 1 tierce%" Mixer-SpeedEn '1.2599'

+ "+ 1 ton 1/2%" Mixer-SpeedEn '1.1892'

+ "+ 1 seconde%" Mixer-SpeedEn '1.1225'

+ "+ 1/2 ton%" Mixer-SpeedEn '1.0595'

+ "+ 3 commas%" Mixer-SpeedEn '1.0414'

+ "+ 2 commas%" Mixer-SpeedEn '1.0275'

+ "+ 1 comma%" Mixer-SpeedEn '1.0136'

+ "Normal%" Mixer-SpeedEn '1.0'

+ "-1 comma%" Mixer-SpeedEn '0.9865'

+ "-2 commas%" Mixer-SpeedEn '0.9733'

+ "-3 commas%" Mixer-SpeedEn '0.9602'

+ "-1 1/2 ton%" Mixer-SpeedEn '0.9439'

+ "-1 seconde%" Mixer-SpeedEn '0.8909'

+ "-1 ton 1/2%" Mixer-SpeedEn '0.8409'

+ "-1 tierce%" Mixer-SpeedEn '0.7937'

+ "-1 quarte%" Mixer-SpeedEn '0.7492'

+ "-3 tons %" Mixer-SpeedEn '0.7071'

+ "-1 quinte%" Mixer-SpeedEn '0.6674'

+ "-4 tons%" Mixer-SpeedEn '0.623'

+ "-1 sixte%" Mixer-SpeedEn '0.5946'

+ "-5 tons%" Mixer-SpeedEn '0.561'

+ "-1 septieme%" Mixer-SpeedEn '0.5297'

+ "-1 octave%" Mixer-SpeedEn '0.5'

+ "-1 octave 1/2%" Mixer-SpeedEn '0.3337'

+ "-2 octaves%" Mixer-SpeedEn '0.25'

+ "-3 octaves%" Mixer-SpeedEn '0.125'

+ "-4 octaves%" Mixer-SpeedEn '0.0625'

+ "Pause%" Mixer-SpeedEn '0'

+ "-4 octaves back%" Mixer-SpeedEn '-0.0625'

+ "-3 octave back%" Mixer-SpeedEn '-0.125'

+ "-2 octaves back%" Mixer-SpeedEn '-0.25'

+ "-1 octave 1/2 back%" Mixer-SpeedEn '-0.3337'

+ "-1 octave back%" Mixer-SpeedEn '-0.5'

+ "-1 quinte back%" Mixer-SpeedEn '-0.6674'

+ "-1 tierce back%" Mixer-SpeedEn '-0.7937'

+ "-1 seconde back%" Mixer-SpeedEn '-0.8909'

+ "-1 1/2 ton% back" Mixer-SpeedEn '-0.9439'

+ "Normal backward speed%" Mixer-SpeedEn '-1.0'

+ "+ 1/2 ton back%" Mixer-SpeedEn '-1.0595'

+ "+ 1 seconde back%" Mixer-SpeedEn '-1.1225'

+ "+ 1 tierce back%" Mixer-SpeedEn '-1.2599'

+ "+ 1 quinte back%" Mixer-SpeedEn '-1.4983'

+ "+ 1 octave back%" Mixer-SpeedEn '-2'

+ "+ 1 octave 1/2 back%" Mixer-SpeedEn '-2.9966'

+ "+ 2 octavesback%" Mixer-SpeedEn '-4'

+ "+ 3 octaves back%" Mixer-SpeedEn '-8'

+ "Max back%" Mixer-SpeedEn '-10'

DestroyMenu /Jump

AddToMenu /Jump

+ " 1%" Mixer-Jump '1'

+ " 2%" Mixer-Jump '2'

+ " 3%" Mixer-Jump '3'

+ " 5%" Mixer-Jump '5'

+ " 6%" Mixer-Jump '6'

+ " 7%" Mixer-Jump '7'

+ " 8%" Mixer-Jump '8'

+ " 9%" Mixer-Jump '9'

+ "10%" Mixer-Jump '10'

+ "11%" Mixer-Jump '11'

+ "12%" Mixer-Jump '12'

+ "13%" Mixer-Jump '13'

+ "14%" Mixer-Jump '14'

+ "15%" Mixer-Jump '15'

+ "16%" Mixer-Jump '16'

+ "17%" Mixer-Jump '17'

+ "18%" Mixer-Jump '18'

+ "19%" Mixer-Jump '19'

+ "20%" Mixer-Jump '20'

DestroyMenu /Seek

AddToMenu /Seek

+ " 15 min" Mixer-Seek '900'

+ " 10 min" Mixer-Seek '600'

+ "  5 min" Mixer-Seek '300'

+ "  3 min" Mixer-Seek '180'

+ "  2 min" Mixer-Seek '120'

+ "1 min 30" Mixer-Seek '90'

+ "  1 min" Mixer-Seek '60'

+ " 30 sec" Mixer-Seek '30'

DestroyMenu /Rel

AddToMenu /Rel

+ " 10 min" Mixer-Rel '600'

+ "  5 min" Mixer-Rel '300'

+ "  3 min" Mixer-Rel '180'

+ "  2 min" Mixer-Rel '120'

+ "1 min 30" Mixer-Rel '90'

+ "  1 min" Mixer-Rel '60'

+ " 45 sec" Mixer-Rel '45'

+ " 30 sec" Mixer-Rel '30'

+ " 20 sec" Mixer-Rel '20'

+ " 10 sec" Mixer-Rel '10'

+ "-10 sec" Mixer-Rel '-10'

+ "-20 sec" Mixer-Rel '-20'

+ "-30 sec" Mixer-Rel '-30'

+ "-45 sec" Mixer-Rel '-45'

+ " -1 min" Mixer-Rel '-60'

+ "-1 min 30" Mixer-Rel '-90'

+ " -2 min" Mixer-Rel '-120'

+ " -3 min" Mixer-Rel '-180'

+ " -5 min" Mixer-Rel '-300'

+ "-10 min" Mixer-Rel '-600'

```

Music-alsaplayer

```
# Support for Alsaplayer music player

# Where are stored Alsaplayer playlists

SetEnv Alsaplayer-Playlists "$[HOME]/Alsaplayer-playlists"

# If there is no selected mixer, load the default

CheckPreferences DefaultMixer "Include components/functions/Mixer-alsaplayer"

# Main functions and menus

DestroyMenu /Music

AddToMenu /Music

+ DynamicPopupAction Function /Music-generator

DestroyFunc /Music-generator

AddToFunc /Music-generator

+ I DestroyMenu recreate /Music

+ I AddToMenu /Music '$[gt.Output driver]'      Popup /Driver

+ I AddToMenu /Music "" Nop

+ I AddToMenu /Music '$[gt.Load playlist]'      Popup /Music/LoadPlaylist

+ I AddToMenu /Music '$[gt.Clear playlist]'     Music-ClearPlaylist

+ I AddToMenu /Music '$[gt.Remove playlist]'    Popup /Music/RemovePlaylist

+ I AddToMenu /Music "" Nop

Test (EnvMatch LANG fr_*.*) + I AddToMenu /Music '$[gt.Volume]' Popup /VolumeFr

Test (!EnvMatch LANG fr_*.*) + I AddToMenu /Music '$[gt.Volume]' Popup /VolumeEn

Test (EnvMatch LANG fr_*.*) + I AddToMenu /Music '$[gt.Speed]'  Popup /SpeedFr

Test (!EnvMatch LANG fr_*.*) + I AddToMenu /Music '$[gt.Speed]' Popup /SpeedEn

+ I AddToMenu /Music "" Nop

+ I AddToMenu /Music '$[gt.Show/hide player]'   Music-GUI

+ I AddToMenu /Music '$[gt.Stop playback]'      Music-Stop

+ I AddToMenu /Music '$[gt.Play]'               Music-Play

+ I AddToMenu /Music '$[gt.Pause]'              Music-Pause

+ I AddToMenu /Music '$[gt.Play/Pause]'         Music-PlayPause

+ I AddToMenu /Music "" Nop

+ I AddToMenu /Music '$[gt.Next]'               Music-Next

+ I AddToMenu /Music '$[gt.Prev]'               Music-Prev

+ I AddToMenu /Music '$[gt.Jump]'               Popup /Jump

+ I AddToMenu /Music '$[gt.Seek]'               Popup /Seek

+ I AddToMenu /Music '$[gt.Seek relative]'      Popup /Rel

# ---------------------------------------------------------------------------

# Basic control functions

DestroyFunc Music-Stop

AddToFunc Music-Stop

+ I Exec exec $[A_Player] --stop

DestroyFunc Music-GUI

AddToFunc Music-GUI

+ I All (alsaplayer) Iconify toggle

DestroyFunc Music-Play

AddToFunc Music-Play

+ I Exec exec $[A_Player] --start

DestroyFunc Music-Pause

AddToFunc Music-Pause

+ I Exec exec $[A_Player] --speed 0

DestroyFunc Music-PlayPause

AddToFunc Music-PlayPause

+ I Exec exec $[A_Player] --speed 1

DestroyFunc Music-Next

AddToFunc Music-Next

+ I Exec exec $[A_Player] --next

DestroyFunc Music-Prev

AddToFunc Music-Prev

+ I Exec exec $[A_Player] --prev

# ---------------------------------------------------------------------------

# Playlist functions

DestroyMenu /Music/LoadPlaylist

AddToMenu /Music/LoadPlaylist

+ DynamicPopupAction Function /Music/LoadPlaylist-generator

DestroyFunc /Music/LoadPlaylist-generator

AddToFunc /Music/LoadPlaylist-generator

+ I DestroyMenu recreate /Music/LoadPlaylist

+ I AddToMenu /Music/LoadPlaylist

+ I PipeRead 'for i in $[Alsaplayer-Playlists]/*.m3u $[Alsaplayer-Playlists]/*.pls; do \

  name=$(basename "$i"); \

  sname=${name%%.m3u}; \

  sname=${sname%%.pls}; \

  echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec alsaplayer -e \'$i\'\"; done'

DestroyFunc Music-ClearPlaylist

AddToFunc Music-ClearPlaylist

+ I Exec exec $[A_Player] --clear

DestroyMenu /Music/RemovePlaylist

AddToMenu /Music/RemovePlaylist

+ DynamicPopupAction Function /Music/RemovePlaylist-generator

DestroyFunc /Music/RemovePlaylist-generator

AddToFunc /Music/RemovePlaylist-generator

+ I DestroyMenu recreate /Music/RemovePlaylist

+ I AddToMenu /Music/RemovePlaylist

+ I PipeRead 'for i in $[Alsaplayer-Playlists]/*.m3u $[Alsaplayer-Playlists]/*.pls; do \

  name=$(basename "$i"); \

  sname=${name%%.m3u}; \

  sname=${sname%%.pls}; \

  echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done'

```

Je n'ai mit le code pour les playlists.

Edit 4: dans Preferences-Menu:

```
...

# Music player

...

Test (x alsaplayer)     + '%22x22/apps/alsaplayer.png%Alsaplayer'               SelectMusicPlayer alsaplayer

...

DestroyFunc SelectMusicPlayer

AddToFunc SelectMusicPlayer

+ I FindCommand MusicPlayer $0 alsaplayer mpd quodlibet xmms xmm2 cmus cdcd

...

# Audio mixer

...

Test (x alsaplayer)     + '%22x22/apps/alsaplayer.png%Alsaplayer'               SelectMixer alsaplayer

...

DestroyFunc SelectMixer

AddToFunc SelectMixer

+ I FindCommand DefaultMixer $0 aumix alsaplayer mpd quodlibet xmms xmms2 cmus cdcd

...
```

Edit 3: Pour ceux qui voudrait tester alsaplayer, il n'est plus dans portage, mais un ebuild avec des patchs Debian qui corrigent des bugs de sécurité est ici.

Edit 5: J'ai modifié ci-dessus le code du speed control pour le rendre musical. Je ne sais pas encore si je vais grarder toutes les valeurs. Pour les références des maths, voir Tempérament et Gamme tempéréeLast edited by Dominique_71 on Thu Sep 28, 2006 5:23 pm; edited 2 times in total

----------

## Dominique_71

J'ai une question. Comme j'utilise principalement jack comme serveur son, je veux modifier la commande "alsaplayer" en "alsaplayer -o jack -F48000". Plutôt que de modifier tout les appels, j'ai pensé utiliser une variable d'environnement: 

```
SetEnv A_Player "alsaplayer  -o jack -F48000"
```

Comme cela, la commande est facile à modifier. Qu'elle est la meilleure place pour la mettre? Dans la recipe, dans Mixer-alsaplayer qui est inclu dans Music-alsaplayer, ou dans Music-alsaplayer qui est inclu dans la recipe. Je demande car je ne sais pas si l'endroit où cette variable est définie joue un rôle avec ces fichiers inclus les uns dans les autres.

EDIT: Je viens de penser à quelque chose de mieux. Je peux rajouter un controle dans le mixer pour controller le driver de sortie d'alsaplayer et définir cette variable. Cela bien sur s'il est possible de la définir dans Mixer-alsaplayer.

Edit2: apparemment ça marche bien. Par contre, il y a un bug quelque part. Cela était déjà le cas avant. Quand je clique sur le bouton audio, le menu apparaît bien, mais certaines sous rubriques sont justes une fois sur deux, croisées une fois sur deux. Par exemple, le sous menu seek relative me montre les drivers et Output driver me montre le seek relative.

Edit3: J'ai mit le code à jour ci-dessus. Il y a même le support pour les playlists. J'ai repris le script de Taviso pour le navigateur de fichiers, et il marche bien avec ("alsaplayer -e" comme audio exec), mais c'est dans un autre fichier.

Edit 4: J'ai introduit un test de locale afin que les controles de volume et de vitesse fonctionne aussi bien avec LANG=fr_*.* qu'autrement. La raison est bizarre. Quand je lance l'alsaplayer depuis un terminal ayabt les même locales que fvwm, je peux le controler depuis un autre terminal aussi bien avec 0,5 qu'avec 0.5. Par contre, dés que je veux faire la même chose avec le menu, il n'accepte plus qu'un des deux en fonction de la localisation.

----------

## Dominique_71

Je viens de passer 2 jours à essayer de faire marcher l'ordre des sous menu dans mon menu pour l'alsaplayer. L'état actuel peut être vu ici: wrong submenu order in a menu

Ma conclusion personelle est que le système de génération de menu est buggé. C'est peut-être en fait simplement que la doc est totalement insiffisante, notament aux niveau des exemples: *Quote:*   

> The keyword MissingSubmenuFunction has a similar meaning. It is executed whenever you try to pop up a sub menu that does not exist. With this function you can define and destroy menus on the fly. You can use any command after the keyword, but the name of an item (that is a submenu) defined with AddToFunc follows it, fvwm executes this command:
> 
> Function <function-name> <submenu-name>
> 
> I.e. the name is passed to the function as its first argument and can be referred to with "$0". 

 Suit un exemple qui ne contient que Function <function-name>. Va y comprendre quelque chose. Et des exemples comme celui-ci, il y en a au moins 50 par pages de man.

En conclusion, si mon problème d'ordre des menus et dû à quelque chose que je ne comprend pas (ce qui n'est pas difficile...), qu'on me l'explique, autrement je vais persister dans mon attitude de dire que c'est buggé et je ne vais pas m'emmerder longtemps avec un wm dont même le système de menus est buggé.

Ce qui me conforte dans cette conviction est que Thomas Adam qui semble bien connaître fvwm finit par dire qu'il n'est pas sur d'où vient le problème.

----------

## geekounet

Ça m'est déjà arrivé ce problème de menu dans le mauvais ordre (et yen a un qui me sortait des erreurs de temps en temps). Je sais pas pourquoi, j'ai recopier les scripts bash de génération des menus à la main (cad sans c/c), et ça n'est plus arrivé. Je suspecte donc un problème d'espace insécable qui devait trainer (AltGR+espace sur le clavier latin9) et commettre quelques erreurs, ou un truc dans le genre ...

----------

## Dominique_71

Je n'ai aucun espace insécable dans mes fichiers. Ils apparaissent dans kate comme un espace avec un pixel lumineux au début et je n'en ai aucun. Mais merci pour la suggestion. J'ai précédemment essayé de supprimer tous les tabs et de les remplacer par des espaces.

J'ai même installé gvim ainsi que la syntaxe vim pour fvwm livrée avec crystal pour voir... Le seul truc anormal que j'ai constaté est une erreur en chargeant le fichier de syntaxe. gvim se plaint: 

```
Erreur détectée en traitant /home/dom/.vim/plugin/fvwm.vim : 

ligne   81 : 

E789: ']' manquant : 
```

Et la ligne 81 est la suivante:

```
syn keyword fvwmParentheses     contained ( ) [ ] { }
```

EDIT: Je viens de faire le même test avec vim Cream, et là pas de messages d'erreur et le rendu des couleurs est différents. Mais autrement, RAS.

----------

## geekounet

Le plugin de syntaxe pour fvwm est inclus de base dans (g)vim  :Smile: 

----------

## Dominique_71

Ah Ok. Merci je vais enlever celui que j'ai rajouté.

Une autre perle que j'ai trouvé sur ffvwm, c'est peut-être clair pour un programmeur, mais pour moi pas vraiment, fvwmrc:

```
# Unfortunately, order does matter in this file

# The correct order for inserting configurations is:

# 1. Colors

# 2. Assorted configuration paramters such as ClickToFocus, or MWMBorders

# 3. Path setup (ModulePath, PixmapPath, IconPath)

# 4. Style settings, including the default style Style "*" ...

# 5. InitFunction and ResetFunction definitions.

# 6. Other Functions. Functions cannot be forward referenced from

#   other functions, but they can be backward referenced.

# 7. Menus definitions. Same caveats about forward referencing

# 8. Key and Mouse Bindings.

# 9. Module options.

# The order of steps 5, 6, and 7 is not critical, as long as there are

# no forward references to functions or menus.

# If you get it wrong, the most common problem is that color or font settings

# are ignored
```

C'est peut-être la raison de mes problèmes.

Si je comprend bien #6, cela signifie que

```
DestroyMenu /Start

AddToMenu /Start

+ "Alsa%" Music-Start "alsaplayer -o alsa"

+ "Jack%" Music-Start "alsaplayer -o jack -F 48000"

DestroyFunc Music-Start

AddToFunc Music-Start

+ I Exec exec $0

```

ne va pas fonctionner car la fonction Music-Start est défini après son appel dans le menu /Start

Mais que si j'écrit:

```
DestroyFunc Music-Start

AddToFunc Music-Start

+ I Exec exec $0

DestroyMenu /Start

AddToMenu /Start

+ "Alsa%" Music-Start "alsaplayer -o alsa"

+ "Jack%" Music-Start "alsaplayer -o jack -F 48000"
```

cela va fonctionner.

Autrement dit, il n'y a que deux solutions viables pour faire une config fvwm.

1) Un ensemble de ficher comme dans fvwm-crystal, mais cela nécessite d'utiliser un mur pour avoir une feuille de papier sufisament grande pour pouvoir contrôler que toutes les fonctions sont définies avant leurs appels.

2) Tout regrouper dans un seul fichier, ce qui permet de regrouper les éléments par familles et facilite ainsi le controle.

----------

## Dominique_71

Mais d'un autre coté, je ne sais pas quoi penser, car le paramêtre $0 est défini dans le menu et non pas dans la fonction.

Nous avons donc un menu qui appelle une fonction dont le paramètre n'est pas encore défini dans le deuxième cas. Et dans le premier nous avons un menu qui appelle une fonction alors que celle-ci n'est pas encore définie.

----------

## geekounet

Non l'ordre des instructions n'a pas d'importance dans la config Fvwm. Tu peux sans problème déclarer une fonction après le menu (c'est le cas dans ma config).

----------

## Dominique_71

EDIT: J'ai tout effacé ce que j'avais écrit avant.

J'ai trouvé une solution, c'est de faire 4 menus au lieu d'un seul. Le binding sur le bouton change complétement, c'est moins joli, mais à l'avantage de ne pas bugger. J'ai aussi changé la barre du bas pour avoir le pager directement dans la barre.

EDIT 2: J'ai rajouté un bouton dans le bouton audio, cela me permet de mieux ventiler les bindings.

----------

## Dominique_71

EDIT 2: En fait, ce qui suit contient un tips: comment passer une variable numérique à un script bash et faire des calculs en virgule flottante dans le script avant de retourner la variable modifiée dans fvwm.

Je suis de nouveau après mon menu audio. J'ai réécrit la fonction pour la vitesse afin d'avoir moins de rubriques dans le sous menu. J'utilise un script shell et une variable d'envirronement. Il faut le programme bc pour les calculs.

~/.fvwm-crystal/scripts/speed_value

```
#!/bin/bash

# Read alsaplayer's current speed and output the wanted speed

# pause +- value will not work.

# No music + or - 1 octave is always no music.

speedcalc() {

   if [[ ${LANG} == fr_* ]] ; then

      speed=$(echo ${speed/,/.})

   fi

   speed=$(echo $speed*$1|bc -l)

   if [[ ${LANG} == fr_* ]] ; then

      speed=$(echo ${speed/./,})

   fi

        echo $speed

}

speedcase() {

case "$1" in

   max)

      echo 10

      ;;

   normal)

      echo 1

      ;;

   pause)

      echo 0

      ;;

   back)

      echo -1

      ;;

   min)

      echo -10

      ;;

   +1octave)

      speedcalc 2

      ;;

   +1quinte)

      speedcalc 1.49830707688

      ;;

   +1ton)

      speedcalc 1.12246204831

      ;;

   +1/2ton)

      speedcalc 1.05946309436

      ;;

   +1comma)

      speedcalc 531441/524288

      ;;

   -1comma)

      speedcalc 524288/531441

      ;;

   -1/2ton)

      speedcalc 0.943874312682

      ;;

   -1ton)

      speedcalc 0.89089871814

      ;;

   -1quinte)

      speedcalc 0.667419927085

      ;;

   -1octave)

      speedcalc 0.5

      ;;

esac

}

speedcase $1

```

```

# Alsaplayer normal speed

SetEnv speed "1"

DestroyFunc Music-Speed

AddToFunc Music-Speed

+ I PipeRead 'echo SetEnv speed `$HOME/.fvwm-crystal/scripts/speed_value $0`'

+ I Exec exec alsaplayer --speed $[speed]

DestroyMenu /Music/Speed

AddToMenu /Music/Speed

+ "Max%" Music-Speed 'max'

+ "+ 1 octave%" Music-Speed '+1octave'

+ "+ 1 quinte%" Music-Speed '+1quinte'

+ "+ 1 ton%" Music-Speed '+1ton'

+ "+ 1/2 ton%" Music-Speed '+1/2ton'

+ "+ 1 comma%" Music-Speed '+1comma'

+ "Normal%" Music-Speed 'normal'

+ "Pause%" Music-Speed 'pause'

+ "Normal backward%" Music-Speed 'back'

+ "-1 comma%" Music-Speed '-1comma'

+ "- 1/2 ton%" Music-Speed '-1/2ton'

+ "-1 ton%" Music-Speed '-1ton'

+ "-1 quinte%" Music-Speed '-1quinte'

+ "-1 octave%" Music-Speed '-1octave'

+ "Max back%" Music-Speed 'min'

DestroyFunc /Music-generator

AddToFunc /Music-generator

+ I DestroyMenu recreate /Music

+ I AddToMenu /Music '$[gt.Speed]' Popup /Music/Speed

```

EDIT: J'ai trouvé. Il faut remplacer les exports par des échos dans le script, et il y avait aussi une confusion entre ' et `dans le piperead ainsi qu'une autre faute dans celui-ci. J'ai corrigé ci-dessus. Maintenant, il ne me reste plus qu'à rajouter des mouses binding pour avoir speed up et down avec la mollette de la souris sur le bouton..

----------

## siDeb_31

J'ai quelques questions à vous soumettre, merci d'avance pour vos réponses:

 1- Je voudrais savoir si il est possible de faire un bind avec une combinaison de touches utilisant la touche Fn+..., si oui comment fait on ?

 2- J'ai quelques bugs avec ma config fvwm, j'ai un menu avec des MoveToPage x x mais ça ne fonctionne pas correctement, ça fonctionne que si je lance un fenetre sur une page differente de la premiere pour aller avec la premiere.

 3- J'ai également un probleme avec le maximize quand je ferme un fenetre maximizée (ex: firefox), et que je relance l aplication elle ne se lance pas en fenetrée mais deja en maximisée. 

 4- Je voudrais savoir si translucent permet de rendre autre chose de transparent hormis les menu ?

 3- Vous avez testé compiz avec fvwm et xorg 7.1 ? ça donne quoi ? (si vous avez des liens avec des documents,... je suis prenneur)Last edited by siDeb_31 on Mon Oct 16, 2006 7:11 pm; edited 1 time in total

----------

## geekounet

 *siDeb_31 wrote:*   

>  1- Je voudrais savoir si il est possible de faire un bind avec une combinaison de touches utilisant la touche Fn+..., si oui comment fait on ?

 

A ma connaissance, c'est pas possible.

 *siDeb_31 wrote:*   

>  2- J'ai quelques bugs avec ma config fvwm, j'ai un menu avec des MoveToPage x x mais ça ne fonctionne pas correctement, ça fonctionne que si je lance un fenetre sur une page differente de la premiere pour aller avec la premiere.

 

Fais voir ta config

 *siDeb_31 wrote:*   

>  3- J'ai également un probleme avec le maximize quand je ferme un fenetre maximizée (ex: firefox), et que je relance l aplication elle ne se lance pas en fenetrée mais deja en maximisée. 

 

Normal, la fenetre enregistre sa position et sa taile à la fermeture et la restaure ensuite, mais elle n'est pas en maximisé, juste aggrandie.

 *siDeb_31 wrote:*   

>  4- Je voudrais savoir si transet permet de rendre autre chose de transparent hormis les menu ?

 

Tu peux transset ce que tu veux, mais il te faut xcompmgr pour avoir la transparence ensuite.

 *siDeb_31 wrote:*   

>  3- Vous avez testé compiz avec fvwm et xorg 7.1 ? ça donne quoi ? (si vous avez des liens avec des documents,... je suis prenneur)

 

Compiz et Fvwm sont tous 2 des WM, donc ils ne peuvent pas tourner en même temps.  :Smile: 

----------

## truc

 *pierreg wrote:*   

>  *siDeb_31 wrote:*    1- Je voudrais savoir si il est possible de faire un bind avec une combinaison de touches utilisant la touche Fn+..., si oui comment fait on ? 
> 
> A ma connaissance, c'est pas possible.

 

tu veux parler d'un truc comme ça?

```
Key     F1                      A       M       Menu FvwmRootMenu

Key     F2                      A       M       Menu FvwmProgramsMenu

Key     F3                      A       M       Menu FvwmWindowOpsMenu

```

----------

## siDeb_31

 *truc wrote:*   

>  *pierreg wrote:*    *siDeb_31 wrote:*    1- Je voudrais savoir si il est possible de faire un bind avec une combinaison de touches utilisant la touche Fn+..., si oui comment fait on ? 
> 
> A ma connaissance, c'est pas possible. 
> 
> tu veux parler d'un truc comme ça?
> ...

 

Oui, mais en utilisant la touche Fn au lieu de ctrl par exemple.

Je corrige mon premier post j ai fait un erreur je voulais pas dire transset mais translucent.

----------

## DidgeriDude

Tu dois parler de la touche Fn sur un portable...

A mon avis, mais peut-être est-ce impossible, je ne vois que l'utilisation de Xmodmap qui je crois permet d'assigner une fonction à une touche (dont on récupère le Keycode avec xev). J'imagine tout de même qu'avec Xmodmap, on peut lancer une commande du style FvwmCommand 'une fonction qui va bien' et utiliser l'astuce des bindings "à la emacs" donnée dans la FAQ, section 3.27.

Ce qui donnerait non pas ta touche Fn comme modificateur, mais un truc du genre : tu appuies sur Fn, tu relâches et là tu as quelques secondes pour appuyer sur la touche que tu veux... Enfin, si c'est possible...

A moins que Fvwm ne lance lui-même la fonction associée à Fn (certains ont déjà configuré les touches multimédia) mais je crois qu'Xmodmap est nécessaire en fin de compte...

----------

## truc

dans xev, si un nom de touche s'affiche quand tu appuies sur Fn alors c'est sans doute possible directement depuis fvwm, sinon, il sera nécessaire d'utiliser xmodmap, pour attribuer un nom à cette touche. :Smile: 

 *exemple nom de touche avec xev wrote:*   

> KeyPress event, serial 29, synthetic NO, window 0x1a00001,
> 
>     root 0x107, subw 0x0, time 1386603312, (171,174), root:(199,324),
> 
>     state 0x0, keycode 191 (keysym 0x1008ff8b, XF86ZoomIn), same_screen YES,
> ...

 

----------

## DidgeriDude

Et voilà, truc dit tout comme il faut, en peu de mots !  :Wink: 

Mais je crois même qu'il est possible de définir soi-même des modificateurs en plus, à l'aide de Xmodmap, avec sûrement une limite de nombre mais bon... Et dans ce cas, hop, c'est utilisable comme modificateur directement dans Fvwm... Enfin, je pense... Bon je me documente tiens !

----------

## Dominique_71

Cet HOWTO Use Multimedia Keys est très intéressant. Il montre entre autre quoi faire si xev ne trouve pas les codes des touches et bien d'autres choses. Il y a aussi des sections spécifiques à différents WM. Ce serait cool si quelqu'un rajoutait un exemple pour FVWM ( je suppose qu'il suffit de rajouter un binding dans la config). Il semble aussi que Xorg a un ensemble de symboles pré-définis comme XF86AudioRaiseVolume. cat /usr/lib/X11/XKeysymDB pour les lister.

EDIT: man xmodmap est aussi intéresant. Il est possible d'assigner plusieurs symboles à une touche. Ils seront utilisés avec les modifieurs.

EDIT 2: J'ai ajouté deux exemples pour FVWM sur ce HOWTO.Last edited by Dominique_71 on Tue Oct 17, 2006 12:41 pm; edited 1 time in total

----------

## siDeb_31

J'avais deja testé mais xev ne reagit pas lorsque j'appuie sur la touche "Fn" de mon portable alors j'avais mis ça de coté en attendant, merci pour le lienn je vais le regarde de plus pret.  :Smile: 

Voila, la partie de mon fichier de configuration qui correspond au menu des fenetres, celui bug lorsque je souhaite deplacer un fenetre vers une page:

```

DestroyMenu FvwmTitleMenu

AddToMenu FvwmTitlemenu

+ "Déplacer sur la page &1" MoveToPage 0 1

+ "Déplacer sur la page &2" MoveToPage 0 2

+ "Déplacer sur la page &3" MoveToPage 0 3

+ "Déplacer sur la page &4" MoveToPage 0 4

+ "" Nop

+ "(De)Coller la fenetre" pick Stick

+ "" Nop

+ "Information" Pick Module FvwmIdent

```

J'ai trois  autres questions:

 - Quand je stick ma fenetre elle se voit applique un style que je n'ai pas defini (avec 3 trois lignes horizontaux dans bar de titre), je voudrais lui definir un style mais je ne suis pas arrivé à trouver le motclef correspondant.

 - J'utilise la commande "pick" avant certaine action, car j'ai vu que certaines personnes l'utilisée dans leur fichier de config, mais je ne vois pas bien à quoi cela correspond.

 - A l'ouverture de la session j'ai quelque chose de bizare, mon fond d'ecran ce charger bien puis il disparait pour laisser place au fond gris et revient ensuite c'est normal ? Actuellement j 'utilise xv afficher celui ci, mais avec d'autres  aplications ça fait la meme chose.

P.S: Merci de votre patience et pour vos réponses  :Wink: 

----------

## geekounet

 *siDeb_31 wrote:*   

> Voila, la partie de mon fichier de configuration qui correspond au menu des fenetres, celui bug lorsque je souhaite deplacer un fenetre vers une page:
> 
> ```
> 
> DestroyMenu FvwmTitleMenu
> ...

 

Ça m'a l'air correct  :Confused: , ya pas de message d'erreur qui s'affiche dans ton .xsession-errors ou la console où t'as lancé Fvwm ?

 *siDeb_31 wrote:*   

> J'ai trois  autres questions:
> 
>  - Quand je stick ma fenetre elle se voit applique un style que je n'ai pas defini (avec 3 trois lignes horizontaux dans bar de titre), je voudrais lui definir un style mais je ne suis pas arrivé à trouver le motclef correspondant.

 

Pour ça il te faut ce patch (le premier), tu peux aussi utiliser mon ebuild dans lequel le patch est inclus  :Wink: . Et ensuite :

```
Style * !StickyWindowStipples, !IconStickyStipples
```

 *siDeb_31 wrote:*   

>  - J'utilise la commande "pick" avant certaine action, car j'ai vu que certaines personnes l'utilisée dans leur fichier de config, mais je ne vois pas bien à quoi cela correspond.

 

Ça sert à sélectionner une fenêtre pour cette action si il n'y en a pas déjà une de selectionnée.

 *siDeb_31 wrote:*   

>  - A l'ouverture de la session j'ai quelque chose de bizare, mon fond d'ecran ce charger bien puis il disparait pour laisser place au fond gris et revient ensuite c'est normal ? Actuellement j 'utilise xv afficher celui ci, mais avec d'autres  aplications ça fait la meme chose.

 

Tente Esetroot de x11-terms/eterm, ça marche très bien  :Wink:  Et perso j'utilise fbsetbg de Fluxbox.

----------

## siDeb_31

Je n'ai pas de message d'erreur, dans mon fichier .Xsession.

Je vais tester le patch, je vous tient au courant.

Et encore merci pour le coups de main.  :Wink: 

----------

## siDeb_31

le patch marche correctement, sinon pour les touches Fn+... en regardant le log je me suis rendu compte quel etait reconnu comme evenements ACPI.

----------

## ryo-san

lut la cie,

J'ai remis au gout du jour XDirectFB , dont le dernier ebuild date un peu.

L'idée , c'etait de faire tourner un vieux pc (pavillon 3134 ) sur frame buffer car seulement 32 MO sont dispo.

Mais je vais etre un peu juste.malgré cela , j'ai testé le tout avec notre wm péféré , et c'est sympa donc au cas ou:

l'ebuild

Apres "l'emergeage"   :Embarassed:   , faudra faire un lien :

```

/usr/share/fonts

```

dans

```

/usr/X11R6/lib/X11

```

et si , j'ai bien cherché , j'ai meme passé l'option qui va bien au configure mais rien a faire donc ...

voila.. ah une derniere chose :

```

#!/bin/sh

# hi ! ;)

# the old script isn't up to date.

# This is the command i use :

#

xinit -- /usr/X11R6/bin/XDirectFB :0 -enableRoot -defaultOpacity 230 -fp 

/usr/X11R6/lib/X11/fonts/100dpi,

/usr/X11R6/lib/X11/fonts/75dpi,

/usr/X11R6/lib/X11/fonts/artwiz,

/usr/X11R6/lib/X11/fonts/misc,

/usr/X11R6/lib/X11/fonts/truetype,

/usr/X11R6/lib/X11/fonts/ttf-bitstream-vera,

/usr/X11R6/lib/X11/fonts/Type1,

/usr/X11R6/lib/X11/fonts/corefonts

# In addition to the standard options accepted by all X servers (see Xserver(1)), XDirectFB accepts  the  following

# options:

#

# -defaultOpacity value

#       set  the  default opacity for toplevel windows, value ranges from 1

#       (almost invisible) to 255 (fully opaque).

#

# -unfocusedOpacity value

#       set the opacity used for unfocused toplevel windows, value ranges from 1

#       (almost invisible)  to  255 (fully opaque).

#

# -enableUnfocused

#       enable usage of unfocused opacity value.

#

# -enableFadeIn

#       enable fade in of showing windows.

#

# -enableFadeOut

#       enable fade out of showing windows.

#

# -enableRoot

#       enable creation of a root window.

#

# In additon to your desktop wm ability to set a root image XDirectFB will set

# it's own root image in a file called .directfbrc for example:

# bg-image = /home/ryo/docs/walls/.current

```

l'ancien script startxdfb revisité.

le bbcode decale la ligne apres "-fp" , faut bien tout coller car j'ai eu des soucis meme avec les antislashs.

+

EDIT: je mets la partie apres "-fp" a la ligne parce que fais une fenetre de ouf.

Si vous tester l'engin , pensez bien a tout mettre a la queue leu leu .. a lA QUEUUE LEEU LEUUU... AHHHHHH...

 :Arrow:  []

----------

## siDeb_31

J'ai règle tous mes probèmes précédents sauf le déplacement des fenetres sur d'autres pages qui bug encore mais ce n'est pas bien grave.

Pour le bug du font d'écran au chargement ça venait  du Xsetup_0 de xdm qui chargeait par defaut un font avec xsetroot. 

 1- D'ailleur à ce sujet, Esetroot et fvwm-root sont-ils capables de redimensionner les images ? Parce que, actuellement, j'utilise xv pour afficher mon fond d'écran mais la transparence ne fonctionne pas avec celui-ci.

J'ai également quelques nouvelles questions à vous soumettre:

 2- Comment réalise-t-on des tests pour controler l'état d'une fenetre ou d'un autre element ? (ex: si la fenetre est maximize alors ...)

 3- Comment appliquer un thème gtk aux applications ? et éventuellement aux élements de l'interface de fvwm ? (à la main de préference)

 4- Peut-on avoir à la barre de titre à la gauche ou la droite d'une fenetre (ou d'une menu) et non pas au dessus ?

 5- Quels sont les patchs deja appliqués par le ebuild officiel ? (ref: Listes des patchs)

----------

## pititjo

 *Quote:*   

> 
> 
>  1- D'ailleur à ce sujet, Esetroot et fvwm-root sont-ils capables de redimensionner les images ? Parce que, actuellement, j'utilise xv pour afficher mon fond d'écran mais la transparence ne fonctionne pas avec celui-ci. 
> 
> 

 

J'utilise feh et ça marche au poil pour tous les formats gérés par Imlib. Pour le svg je convertit via ImageMagick. Et il gère la transparence.

 *Quote:*   

> 
> 
>  3- Comment appliquer un thème gtk aux applications ? et éventuellement aux élements de l'interface de fvwm ? (à la main de préference) 
> 
> 

 

```

emerge x11-themes/gtk-theme-switch 

```

Ça donne la commande switch2 qui est faite pour ça.

 *Quote:*   

> 
> 
>  3- Comment appliquer un thème gtk aux applications ? et éventuellement aux élements de l'interface de fvwm ? (à la main de préference) 
> 
> 

 

Je n'ai pas le temps de regarder comment faire tout de suite mais c'est utilisé dans cette config. Au demeurant, je te conseil de suivre ce forum, on y trouve énormément de choses.

 *Quote:*   

> 
> 
> 5- Quels sont les patchs deja appliqués par le ebuild officiel ?
> 
> 

 

Si tu ne trouve nul part, doit y avoir moyen de trouver l'info dans l'ebuild...

----------

## Dominique_71

 *siDeb_31 wrote:*   

> J 4- Peut-on avoir à la barre de titre à la gauche ou la droite d'une fenetre (ou d'une menu) et non pas au dessus ?

 

C'est expliqué dans man fvwm si je me rapelle bien. Dans le passage sur les styles.

```
Style * TitleAtLeft

TitleStyle RightJustified
```

donne des barres de titre à gauche avec le titre près du coin supèrier.

----------

## Dominique_71

J'ai eu un problème bizarre avec crystal. J'avais plusieurs applis ouvertes sur plusieurs bureaux virtuels, et j'ai appuyé sur ctrl-shift-F1 ou un truc du genre. Chaque fois que je bougeais la molette sur le bureau, au lieu de monter ou descendre d'un bureau, je me retrouvais sur le bureau 1. Une fois sur celui-ci, la molette ne faisait que produire un flash sur l'affichage et j'étais scotché sur ce bureau.

Changer avec le pager fonctionnait encore hereusement. J'ai essayé d'appuyé sur un tas de touches, mais même après un redémarrage de la machine, le comprotement était pareil. Après avoir changé de rectte et retour à la recette d'origine, tout est rentrer dans l'ordre et la molette fonctionne bien. Avant de changer de recette, j'ai été voir dans ~/.fvwm-crystal/preferences mais je n'ai rien remarqué d'anormal. Ma question est: où donc fvwm ou crystal sauvegardent ce genre de choses et y a t'il un moyen pour retrouver un comportement normal sans changer de recette?

Ma version de fvwm est le denier ebuild de pierreg avec les patches, crystal est aussi la dernière version.

----------

## Dominique_71

Autre chose, j'ai aussi Demudi dans mon pc, lequel n'est rien d'autre qu'un Debian trimé pour du multimédia (kernel temp réel et un tas d'applications audio jack). Debian a un système de menu remarquable qui intégre tous les softs installés dans tous les wm installés. Ce système inégre 3 parties: le package menu qui contient quelques éxécutables et des préférences générales, un ficher de méthode faisant partie des packages debian de wm qui définit la structure du menu pour ce wm et un fichier de menu pour chaque programme lequel est utilisé par menu pour générer les menus pour les wm installés. Avec fvwm-crystal, ils ont même fait un script pour générer les icônes crystal à partir des icônes des programmes.

J'ai essayé d'installer tout ça sous gentoo, menu compile et s'installe sans problème, mais il ne fonctionne pas car il recherche une base de donnée de dpkg pour savoir quels sont les programmes installés, et cette base n'existe évidament pas sous gentoo. Quoiqu'il en soit, j'ai rempli un bug pour demander cette fonctionnalité dans gentoo: https://bugs.gentoo.org/show_bug.cgi?id=154142

----------

## ryo-san

lut ,

ce  sont des scripts ou des programmmes compilés ?

on pourrait essayer de les transformer , on a aussi notre base de données de programmes  AKA /var/db  :Wink: 

----------

## Dominique_71

Le prgramme qui génerre les icônes est un script, les fichier de méthode des wm sont des fichiers textes ainsi que les fichiers menu de chaque programme. Par contre, les programmes qui génerrent les menus sont compilés.

Il devrait être possible de tout faire avec des scripts, cela sera peut-être lent, mais devrait fonctionner.

Les paquetages Debian peuvent être trouvé ici: search

Menu est ici: http://packages.debian.org/unstable/admin/menu

crystal est ici: http://packages.debian.org/unstable/x11/fvwm-crystal

Un fichier menu pour une application X ressemble à ceci:

```
?package(jackbeat): needs="X11" section="Apps/Sound" \

  title="Jackbeat" command="/usr/bin/jackbeat" \

  icon="/usr/share/pixmaps/jackbeat.xpm" \

  icon32x32="/usr/share/pixmaps/jackbeat.xpm" \

  icon16x16="/usr/share/pixmaps/jackbeat16.xpm"

```

ou à ceci pour une appli console:

```
?package(mc):\

   needs="text"\

   section="Apps/Tools"\

   title="mc"\

   longtitle="Midnight Commander"\

   hints="File managers"\

   command="/usr/bin/mc"\

   icon="/usr/share/pixmaps/mc.xpm"

```

Il y a une doc plus à jour dans le paquetage menu que celle sur le web indiquée dans mon rapport de bug, mais le principe reste le même. J'ai mis les liens correspondant à Debian unstable car crystal est dans unstable de même que la version corrspondante de menu.

Il semble qu'il y ait tout ce qu'il faut dans /var/db sauf le nom de l'exécutable (ou de la xommande) et la possibilité de savoir si c'est un prgramme X ou console.

Le nom du programme ne devrait pas souvent causer problème sauf dans les cas où il y a plusieurs programmes dans le même ebuild. Par contre les programmes consoles vont poser problèmes. Il faudrait rajouter une variable dans l'ebuild et /var/db. Et pendant qu'on y est une deuxième pour le nom de l'éxécutable. Cela permettrait d'éliminer les programmes consoles qui n'ont aucune raison d'être dans le menu. Pas de variable, pas de rubrique dans le menu.

----------

## Dominique_71

Autrement, j'ai toujours le même problème avec la molette de la souris. J'ai fermé les applis qui se lancent au démarrage et lä ça fonctionne bien. Mais dés que je lance une appli, je ne peux plus changer de bureau avec la molette. En fait, quand je descend avec la molette cela fonctione, mais si je veux monter, cela ne fonctionne que si je suis descendu avant, et dés que je suis sur un bureau où une appli est lancée, je ne peut plus monter. N'importe qu'elle piste serait appréciée.

----------

## ryo-san

lut

Tu parles de fvwm-crystal ?

Ma premiere idée etait un probleme de Grabfocus genre ta fonction s'execute dans la fenetre "root" et quand elle rencontre une fenetre elle lui donne le focus , donc root ne l 'a plus et la fonction ne peux donc pas continuer.

Ma deuxieme serait a propos de l'ordre des pages-bureaux, si tu les as modifié , peut etre que certains tests ne se font pas dans le bon ordre.Si vraiment ca foire a tout va , jette un coup d'oeil a la fonction de taviso pour changer de bureau, elle fonctionne dans tous les cas possible.

voila pour un premier jet   :Smile: 

----------

## Dominique_71

Merci,

Oui, c'est avec crystal. C'est une recette personelle où j'ai notament modifié le bouton audio. Il y a une discussion là-dessus 2 ou 3 pages plus haut. La recette peut-être téléchargée ici: fvwm et gensplash

Comme j'avais fait quelque modifs supplémentaires, j'ai changé le nom de ma version courante et j'ai réinstallé celle de la tarball, J'ai réinstallé crystal aussi . Mais j'ai le même problème. Ceci signifie que cela vient vraisemblablement de l'upgrade de fvwm avec le nouvel ebuild de pierreg (ou d'un des patches) et pas de crystal ni de ma recette.

A long terme, j'ai pensé faire une config fvwm à partir de cette recette crystal, mais je n'ai vraiment pas le temps de faire ça maintenant. Je veux faire ceci car en faisant cette recette crystal, j'ai remarqué que fvwm fait parfois des trucs vraiment bizarre. J'en ai parlé sur le forum fvwm et sur la liste d'emails de crystal, mais personne n'a été capable de me donner une réponse satisfaisante. Même pas moyen de savoir s'il s'agit d'un bug ou d'une erreur de ma part. Faire une config fvwm à partir de la recette crystal permettrait au moins de savoir si cela vient de crystal ou non. Quand au problème de molette, peut-être que crystal qui n'a pas été upgradé depuis longtemps (même en cvs, j'ai essayé les deux) ne s'intégre plus très bien avec l'fvwm de l'ebuild de pierreg.

Quoiqu'il en soit, je vais dabord investiger quand même ces trucs avec grabfocus et l'ordre des bureaux.

----------

## geekounet

Pour les patchs de mon ebuild, ils n'ont aucun effet tant qu'ils ne sont pas utilisés, à part 3 patchs dispos avec le use extras qui eux sont irréversibles et à effet immédiat. Après si tu en utilise, il se peut que l'un d'entre eux ai changé de comportement, vérifie sur la page de leur auteur.

Pour le CVS, le changelog est dispo ici  :Wink: 

----------

## Darkael

Dominique_71, pour ton problème de molette (ou les autres d'ailleurs), tu n'as rien d'anormal qui apparaît dans la console Fvwm, ou alors dans la sortie d'erreur de Fvwm?

----------

## Dominique_71

Merci pour les réponses pour mon problème de molette. C'est assez mistérieux car je n'ai pas trouvé de message d'erreur. La bonne nouvelle est que cela s'est arrangé tout seul après un "emerge --sync".

----------

## davidou2a

Salut a tous je fais un chtit up, voila j'ai deja utilisé fvwm autrefois y a 1 an ou 2 seulement j'aimerai cette fois monter mon environnement moi meme de A à Z (c'est le but je pense ^^) seulement le super tuto de station-linux semble ne plus etre de ce monde   :Crying or Very sad:  et etant donné que je suis legerment anglophobe je demande si personne aurait eu l'idée geniale de le sauvegarder, ou en aurait un autre aussi bien sous le coude  :Smile:  merçi :p

----------

## truc

honnètement, j'ai fait la mienne quasiment de Ahaha Z, et j'y suis simplement allez très progressivement, j'ai commencé par lire le manuel d'fvwm, (oui-oui je l'ai lu) les points obscure était laissé pour plus tard, et sinon je tentais dès qu'il y avait quelque chose qui  m'interessait.., je ne peux que te conseiller d'en faire autant, en plus le manuel est en anglais alors ça devrait te plaire  :Smile: 

Juste j'ia mis un peu de temps avant de me servir de FvwmCommand, alors qu'en fait c'est très pratique, je te conseille donc de l'utiliser dès le début. le mielleur moyen pour partir de zero est effectivement de partir de zéro, tu modifies ta config au fure et à mesure de tes besoins, personnellement, même si elle est maintenant arrivée à maturité, il m'arrive encore quelque fois de rajouter /modifier des trucs dans ma config:)

les besoins évoluent  :Smile: 

HF  :Smile: 

----------

## KageBunshinNoGentoo

Salut!

Je n'ai pas parcouru toutes le pages mais pourriez vous mettre des screenshots de ce que vous avez réaliser?

----------

## geekounet

http://akoya.homelinux.net/fvwm/fvwm-20060924.png

http://akoya.homelinux.net/fvwm/fvwm-20061027.png

http://akoya.homelinux.net/fvwm/fvwm-20061027-2.png

Et ça légèrement changé encore ces derniers jours, mais j'ai pas encore tout terminé : il me manque à refaire le panel d'en bas et à y déplacer le pager, mais j'ai un peu la flemme (ça fait 4 mois que ça traine), et je pense de tout façon à passer à e17 pendant les vacances  :Smile: 

----------

## davidou2a

 *geekounet wrote:*   

> http://akoya.homelinux.net/fvwm/fvwm-20060924.png
> 
> http://akoya.homelinux.net/fvwm/fvwm-20061027.png
> 
> http://akoya.homelinux.net/fvwm/fvwm-20061027-2.png

 

Jolies realisations  :Smile: 

@ Truc : lol bon je vais devoir prendre le taureau par les cornes  :Smile: 

/me saisis une corde, l'attache a la terrasse, puis se la passe autour du cou... et puis bah te regarde et dis...

"Eh non ceçi est une fiction, bien entendu  :Smile:  pour toi lecteur :p"

----------

## truc

ouais, bah voici quelques screenshots, mais bien que j'aime bien le résultat, ce qu'on ne voit pas sur les screenshots de chacuns sont tous ces petits plus qu'on rajoute dans sa config pour pouvoir faire ce qu'ON veut... rahh faut pas que je commence, sinon j'vais pas m'arreter..  :Smile: 

bref en général, je suis pour tout ce qui est sombre, du wallpaper à firefox, en passant par rox etc.. bref, j'aime pas trop quand ça me flash les yeux quoi:)

 clean

busy 

mais il m'arrive d'avoir des pulsions "natures"  voir même  "tressssnatures" (quitte à en oublier un peu l'obscurité...  :Razz:  )

voili-voilou

----------

## davidou2a

joli joli  :Smile:  je suis aussi assez couleurs foncées c'est triste mais elegant  :Smile:  j'y ajoute souvent une couleur chaude comme du jaune ou orangé  :Smile: 

----------

## DidgeriDude

Bonjour à tous.

J'ai une question concernant fvwm-menu-directory.

Est-il possible d'empêcher le comportement de base concernant les fichiers images, qui fait que l'image est mise directement comme icône dans le menu (qu'elle s'affiche ou non d'ailleurs) ? J'ai donc l'impression que l'option --icon-file est tout bonnement ignorée !!

Ce qui m'embête, c'est que les lignes contenant les informations pour ces fichiers ne sont pas formatées de la même manière que les autres, ce qui est tout le fond de mon problème !

Pourquoi cette question ? Ben j'en suis toujours à essayer de filtrer les fichiers à afficher suivant leur extension à l'aide d'une idée de KarnEvil dans ce post-ci. D'ailleurs l'idée était bonne, même excellente, mais comme je filtrais à la sortie de la commande, ben cela me tuait même les entrées de répertoires. Mais comme vous le voyez ci-après, j'ai contourné ce problème en utilisant les Hold buffers de sed :

```
audio_extensions="mp3 wav ogg flac wma"

programme="$audio_pgm"

icone_fichier="$icons_dir/musique.png"

icone_dossier="$icons_dir/dossier_musiques.png"

extensions_regex=$(echo $audio_extensions | sed 's/\s\+/\\\|/g')

test -f "$1/.jaquette.png" && icone_titre="$1/.jaquette.png" || icone_titre="$icons_dir/dossier_musiques.png"

fvwm-menu-directory \

        --icon-title "${icone_titre}" \

        --title "${nom_dossier}" \

        --icon-file ${icone_fichier} \

        --icon-dir ${icone_dossier} \

        --dir "$1" \

        --links \

        --exec-t="^${programme} *mp3" \

        --exec-file "^${programme}" \

        | sed -e '/'${icone_fichier##*/}'/{

                        h

                        s/.*\('$extensions_regex'\)"//

                        s/'${icone_fichier##*/}'/LIGNE_A_EFFACER/

                        G

                        /LIGNE_A_EFFACER/d

                        s/\n\(.*\)/\1/

                    }' \

                -e 's/%[0-9][0-9][0-9][0-9] - /%/' \

                -e 's/ item.*$//g'
```

Comme on le voit, j'efface les lignes contenant le fichier icône (c'est mon critère de sélection des lignes à traiter) mais ne contenant pas les extensions qui m'intéressent (d'ailleurs, si quelqu'un a plus simple...). Je cherche donc à ce que l'option --icon-file soit prise en compte pour tous les fichiers afin que mon tri soit efficace dans tous les cas de figure !

Si vous avez des idées...

----------

## DidgeriDude

Salut.

Je vois que mon post précédent n'a inspiré personne... et pourtant je ne suis pas étonné. Il ne m'inspire pas moi-même !!

J'ai pourtant résolu le problème en le contournant car je n'ai pas trouvé d'infos là-dessus !

A titre informatif, je vous fournis le code de ma fonction me permettant de naviguer dans ma musique à partir du menu. Elle a comme fonctionnalités de :

N'afficher que les fichiers dont l'extension fait partie d'une liste d'extensions autorisées, ici uniquement des fichiers audio.

Mon arborescence étant du type "Artiste/Année - Album/Chansons...", la fonction me supprime la partie "Année - " pour les noms de dossiers et l'extension des noms de fichiers, ne m'affiche que le répertoire courant dans le titre du menu, et vire le bout de commande " item +100 c" en fin de ligne qui ne me plaît pas en fait !!

Petit gadget : elle teste si un fichier .jaquette.png existe dans les sous-dossiers et si oui, elle remplace l'icône de base des dossiers par ce fichier (Cela fonctionnait déjà juste pour afficher cette image comme icône de titre, mais je voulais que cela marche pour les sous-dossiers...).

Il est vrai que sur le site http://www.zensites.net/fvwm/guide/, il est proposé une version modifiée de fvwm-menu-directory qui permet cette fonctionnalité. Mais je répugne à patcher mon fichier car je ne maîtrise pas le perl et j'aime bien savoir ce que je fais. C'est pourquoi j'ai opté pour awk qui est vraiment monstrueux !!

Trève de paroles, place au code !!

Dans mon fichier de config FVWM :

```
SetEnv current_thm $[FVWM_USERDIR]/current

SetEnv scripts_dir $[current_thm]/Scripts

SetEnv icons_dir $[current_thm]/Icons

SetEnv audio_dir "$[HOME]/Perso/Musique/A moi/Artistes"

SetEnv audio_extensions="mp3 wav ogg flac wma"

SetEnv audio_pgm="audacious -p -e"

DestroyMenu MenuMusique

AddToMenu MenuMusique

+ MissingSubmenuFunction FuncFvwmMenuDirectory

+ %$[icons_dir]/dossier_musiques.png%"Musiques"        Popup "$[audio_dir]"

DestroyFunc FuncFvwmMenuDirectory

AddToFunc FuncFvwmMenuDirectory

+ I PipeRead "$[scripts_dir]/navigateurs.sh \"$0\" $[desk.n]"
```

(l'option $[desk.n] m'est utile pour une fonction concernant le dossier des fonds d'écran, car tout passe par le même script bash)

La partie du script Bash concernant les dossiers de Musique :

```
programme="$audio_pgm"

icone_fichier="$icons_dir/musique.png"

icone_dossier="$icons_dir/dossier_musiques.png"

extensions_regex=$(echo $audio_extensions | sed -e 's/^/./' -e 's/\s\+/|./g')

extensions_totales="$(echo $audio_extensions | sed -e 's/^/*./' -e 's/\s\+/ *./g')"

extensions_totales_regex="$(echo $audio_extensions | sed -e 's/^/\\*\\./' -e 's/\s\+/ \\*\\./g')"

test -f "$1/.jaquette.png" && icone_titre="$1/.jaquette.png" || icone_titre="$icons_dir/$icone_dossier"

fvwm-menu-directory \

    --icon-title "$icone_titre" \

    --title "%d" \

    --icon-file "$icone_fichier" \

    --icon-dir "$icone_dossier" \

    --dir "$1" \

    --links \

    --exec-t="^$programme $extensions_totales" \

    --exec-file "^$programme" \

| awk -F'Popup "|"$' '\

    {

        gsub(/%[0-9][0-9][0-9][0-9] - /,"%")

        gsub(/ item.*$/,"")

    }

    /Popup "/ {

        if (!system("test -f \""$2"/.jaquette.png\""))

        {

            dir=$2

            gsub(/\&/,"\\\\&",dir)

            gsub("'$icone_dossier'",dir"/.jaquette.png")

        }

    }

    $0 !~ /'"$programme"' "/ || $0 ~ /'$extensions_regex'"/ {

        gsub(/('$extensions_regex')"/,"\"")

        print

    }' \

| awk -F'.png%|" Exec ' '\

    /'"$extensions_totales_regex"'/ {

        gsub(/\&/,"\\&\\&",$2)

        gsub(/\*/,"**",$2)

        gsub(/%/,"%%",$2)

        print $1 ".png%" $2 "\" Exec " $3

    }

    $0 !~ /'"$extensions_totales_regex"'/ {

        print

    }'
```

Voilà ! Si cela peut intéresser quelques uns...

----------

## Darkael

Désolé DidgeriDude, mais je me suis éloigné de FVWM depuis plusieurs mois (j'y reviendrais sûrement quand il supportera la 3D). En fait tu m'a cité mais j'ai aucune idée de quoi je parlais à cette époque  :Embarassed:  Heureusement que t'as réussi à résoudre le problème toi-même...

----------

## davidou2a

Bon j'ai une bonne nouvelle pour les mous de la cervelle comme moi qui arrivent a avoir des trous de memoire sur la config de FVWM ou pour les petits nouveaux qui veulent essayer ce magnifique WM  :Smile: 

ce lien en mort => http://www.stationlinux.org/fvwm

c'est en allemand et que ça a rien a voir avec FVWM, les tutos qu'il y avait avant par contre je les ai retrouvé sur mon ordi au boulot, je vais donc les publier sur mon ftp perso (que ça serve) bien sur je laisse le copyright d'origine j'ai essayé de trouver l'auteur en vain...

Bref je vous tiens au courant

----------

## geekounet

 *davidou2a wrote:*   

> Bon j'ai une bonne nouvelle pour les mous de la cervelle comme moi qui arrivent a avoir des trous de memoire sur la config de FVWM ou pour les petits nouveaux qui veulent essayer ce magnifique WM 
> 
> ce lien en mort => http://www.stationlinux.org/fvwm
> 
> c'est en allemand et que ça a rien a voir avec FVWM, les tutos qu'il y avait avant par contre je les ai retrouvé sur mon ordi au boulot, je vais donc les publier sur mon ftp perso (que ça serve) bien sur je laisse le copyright d'origine j'ai essayé de trouver l'auteur en vain...
> ...

 

Bosozoku j'ai eu de ces nouvelles ya un ptit moment : il est maintenant sous Ubuntu, avec Gnome, pour le traduire en breton. Et il ne s'occupe plus de son site, mais il est toujours visitable à cet adresse : http://stationlinux.apinc.org/

----------

## davidou2a

ahh parfait j'aurais meme pas a me fatiguer  :Smile: 

Merçi bien geekounet :p

----------

## idodesuke

Dans le thème nature de truc la barre de titre de la fenêtre est transparente c'est de la vrai transparence? (men rend pas compte la fenêtre est sur le bureau)

si oui il a utilisé un colorset de ce genre?

 *Quote:*   

> Colorset 2 fg White, bg Black, HGradient 200 lightblue darkblue, \
> 
>           Translucent Black 60

 

----------

## truc

bah, ce n'est pas de la vraie transparence, et le colorset c'est quelque chose du style:

```
Colorset 2 fg #bbbc46, bg #969806, RootTransparent Buffer, Tint #969806 30
```

( C'est peut-être les même couleur que sur le screenshot, hein.. j'en ai pris un au pif..  :Smile:  )

----------

## idodesuke

mouarf bah c'est pas interdit de rêver...

----------

## foguy_lucky

Bonjour à tous,

J'ai un petit soucis avec fvwm, et c'est un peu tordu...

Nous utilisions il y a encore quelques temps fvwm 2.2, mais en changeant d'OS (passage à une équivalente RHEL4) nous avons du passer à une version 2.4; malheureusement, la version 2.4 nous donne beaucoup de mal. En effet, nous utilisons une application multi-fenêtrée et il arrive souvent qu'il y ait pas loin de 10 fenêtres d'ouvertes relativement "chargée"; avec la version 2.4 dès que l'on clique sur la barre du haut d'une fenêtre ça raffraîchit toutes les autres fenêtres générant des clignotements vite insupportable voir même des ralentissements.

De mon côté je pense qu'il s'agit d'une configuration à faire, bien sûr j'ai essayer de refaire la config, sans succès.

J'ai aussi installé la version 2.4 sur notre ancien OS (équivalent redhat 7.2) où tournait la version 2.2, et là aussi les raffraîchissement sont constatés.

Merci d'avance,

Luc

ps: je poste ici, chez gentoo, car je n'ai pas trouvé beaucoup de fil de discution très fréquenté sur fvwm en français.

----------

## DidgeriDude

Je n'ai pas la solution mais à coup sûr, tu trouveras de l'aide sur le forum officiel. Malheureusement, il est en anglais.

Par contre, pourquoi n'utilises-tu pas la version 2.5 ??

----------

## foguy_lucky

 *DidgeriDude wrote:*   

> Je n'ai pas la solution mais à coup sûr, tu trouveras de l'aide sur le forum officiel. Malheureusement, il est en anglais.
> 
> Par contre, pourquoi n'utilises-tu pas la version 2.5 ??

 

Si je ne trouve pas de solution, je proposerais cette solution aux personnes concernées mais je pense qu'elles ne seront pas ravi de devoir passer leur fichier de conf dans la moulinette pour le convertir pour la version 2.5, car si j'ai bien compris le fichier de config d'une 2.4 doit passer par un outil de conversion, et en général ce genre d'outil à toujours quelques déchets...

----------

## Dominique_71

J'ai réussi à faire marcher fvwm-crystal et gnome avec gdm et gnome-session. Les détails sont ici. Pour les allergiques à l'anglais, je recopie ici les fichiers nécessaires:

/etc/X11/Sessions/fvwm-crystal va faire que gdm va lancer gnome-session avec la session Fvwm-Crystal (je crois en fait que gdm n'utilise pas ce fichier, peut-être sdm ou je ne sais quoi peuvent en avoir besoin. Les scripts de gdm-xdm sont infernaux...):

```
#!/bin/sh

/usr/bin/gnome-session --choose-session=Fvwm-Crystal
```

/usr/share/xsessions/fvwm-crystal.desktop Même chose mais absolument nécessaire pour gdm.

```
# /usr/share/xsessions/fvwm-crystal.desktop 

[Desktop Entry]

Encoding=UTF-8

Name=FVWM-Crystal

Comment=Umm... Nice desktop. Transparent, and all...

#Exec=fvwm-crystal

Exec=gnome-session --choose-session=Fvwm-Crystal

Terminal=False

TryExec=fvwm-crystal

Type=Application

[Window Manager]

SessionManaged=true 
```

~/.gnome2/session Pour être capable de lancer gnome et fvwm-crystal depuis gdn avec gnome-session sans avoir besoin de rien faire d'autre. Si vous avez déjà ~/.gnome2/session, il suffit de copier dedans la section manquante.

```
[Fvwm-Crystal]

0,id=default0

0,Priority=0

0,RestartCommand=fvwm2 -f /usr/bin/../share/fvwm-crystal/fvwm/config -s 0

num_clients=1

[Default]

0,id=default0

0,Priority=10

0,RestartCommand=gnome-panel --sm-client-id default0

1,id=default1

1,Priority=20

1,RestartCommand=nautilus --no-default-window --sm-client-id default1

num_clients=2 
```

Une fois dans gnome ou fvwm-crystal, il suffit de lancer ses applications préférées et de sauver la configuration comme d'habitude avec gnome-session-save ou gnome-sessions-properties.

J'utilise la fonction suivante dans crystal:

```
DestroyFunc SaveDesktop

AddToFunc SaveDesktop

+ I Exec exec gnome-session-save --gui
```

et un bouton:

```
# Session manager panel {{{1

All (FvwmButtons-SessionManager) Close

DestroyModuleConfig FvwmButtons-SessionManager: *

*FvwmButtons-SessionManager: Geometry +-1--1

*FvwmButtons-SessionManager: BoxSize smart

*FvwmButtons-SessionManager: ActiveColorset $[cs-panel-active]

*FvwmButtons-SessionManager: Colorset $[cs-panel-inactive]

*FvwmButtons-SessionManager: Rows 1

*FvwmButtons-SessionManager: Padding 1 1

*FvwmButtons-SessionManager: Frame 0

# SessionManager {{{2

*FvwmButtons-SessionManager: (1x1, Size 22 22, Icon "22x22/fvwm-crystal/gdm.png", \

Action (Mouse 1) SaveDesktop, \

Action (Mouse 2) Exec exec gnome-session-properties)

# 2}}}

Module FvwmButtons FvwmButtons-SessionManager 
```

Les changements à faire pour utiliser Fvwm à la place de Crystal devraient être vraiment triviaux.

Edit:Quand FVWM est lancé par un manager de session, il ne lit pas StartFunction comme d'habitude mais utilise SessionInitFunction. La conséquence dans Crystal est qu'il ne va pas lire les applications dans le fichier Startup. Les applications lancées par ce fichier devront donc être lancée à la main. Il suffit ensuite de sauver la session pour qu'elles soient redémarrées la prochaine fois.

----------

## davidou2a

en fait si je comprends (ou crois) grace a cette astuce on pourrait avoir la possibilité d'avoir la gestion des icones/dossiers et tout le bataclan sur le bureau via gnome-session ???

----------

## Dominique_71

 *davidou2a wrote:*   

> en fait si je comprends (ou crois) grace a cette astuce on pourrait avoir la possibilité d'avoir la gestion des icones/dossiers et tout le bataclan sur le bureau via gnome-session ???

 

Non, on peut mémoriser avec gnome-session quelles applications sont lancées à un moment donné et les relancer.

Le mécanisme est le suivant, gdm ou un autre gestionnaire de connexion lance gnome-session avec le paramètre fvwm ou fvwm-crystal. Le fichier ~/.gnome2/sessions contient les traces des applications. La version ci-dessus permet de lancer uniquement fvwm2 avec le paramètre correspondant à fvwm-crystal. Une fois la session lancée, on peut utilisé à tout moment gnome-session-save afin de stoker dans  ~/.gnome2/sessions les données des programmes. Ces données comprennent le nom du programme, sa géométrie, la commande utilisée pour le lancer, etc. Avec gnome-sessions-properties, il est possible de configurer gnome-session, par exemple de lui dire de sauver la session automatiquement à la déconnection. Au prochain login, elle sera alors automatiquement restaurée. Personnellement, je préfère les sauvegardes de sessions manuelles, mais bon, chacun ses gouts.

Tout cela ne marche pas avec les programmes lancé depuis une console. Cependant, avec gnome-sessions-properties, il est possible de rajouter les programmes que gnome-session ne sait pas gérer.

J'ai oublié un truc ci-dessus. Fvwm utilise la commande Quit quand il est lancé directement. Quand il est lancé depuis un gestionnaire de session, il faut utiliser la commande QuitSession à la place.

```
DestroyMenu /Exit

AddToMenu /Exit

Test (x xscreensaver) + '%22x22/fvwm-crystal/system-lock-screen.png%$[gt.Lock screen]' X xscreensaver-command -lock

+ '%22x22/fvwm-crystal/view-refresh.png%$[gt.Restart]' Restart

Test (EnvIsSet SESSION_MANAGER) + '%22x22/fvwm-crystal/system-log-out.png%$[gt.Logout]' QuitSession

Test (!EnvIsSet SESSION_MANAGER) + '%22x22/fvwm-crystal/system-log-out.png%$[gt.Logout]' Quit 
```

La variable SESSION_MANAGER est initialisée par gnome-session, donc il n'y a rien d'autre à faire que l'utiliser dans un test comme ci-dessus.

Thomas Adam avait fait il y a quelques années un article là-dessus: http://linuxgazette.net/100/adam.html, article qui a été le point de départ de ma démarche présente d'automatiser la configuration de départ de gnome-session.

Edit: Pour la gestion des icones et dossier sur le bureau, le plus simple est d'utiliser fvwm-crystal. Si Rox-filer est aussi installé, on trouve une option dans les préférences pour utiliser Rox-filer comme gestionnaire de fond de bureau. Ou implémenter la même fonction dans fvwm en s'inspirant de la config de fvwm-crystal. Crystal n'est qu'un thème pour fvwm qui propose un environnement de bureau sous fvwm. Il doit donc être possible d'adapter pas mal de chose à une config fvwm standard.

----------

## foguy_lucky

 *foguy_lucky wrote:*   

> Bonjour à tous,
> 
> J'ai un petit soucis avec fvwm, et c'est un peu tordu...
> 
> [...]
> ...

 

Sinon je soupçonne la manière dont est codé l'application, en effet avec plusieurs fenêtres de mozilla le problème n'existe pas...

Je ne suis pas un expert dans le codage X alors je vous montre le type de techno utilisé :

```
while (true)

   {

      XtAppNextEvent(contexte, &event);

      XtDispatchEvent(&event);

   }
```

Merci

----------

## scawf

Bonjour  :Smile: 

J'ai utilisé un FvwmButtons pour swallower un mplayer tv://, donc j'ai ma petite tv miniature sur le bureau.

J'ai ajouté un bouton pour couper/demarrer le son tv (entré son) et un pour maximizer/démaximizer le FvwmButtons.

Alors voici mes ptits problèmes:

Si j'aggrandi simplement avec Maximize, j'ai ma bordure d'1 pxiel qui se transforme en 4/6 pixel, et ma barre de bouton ui prend 50 pixel de hauteur... :/

* N'agrandir que la partie swallowée ? ou agrandir le tout mais en gardant une taile fixe par exemple, pour les bordure ou le texte... 

* Agrandir partiellement pour conserver les proportions (mais c'est moche, et pas centré)

Y'a moyen de faire le premier point ? ou au pire de centrer la fenetre quand on utilise:  Maximize 90 100

----------

## davidou2a

Salut tout le monde je suis en train petit a petit de me monter un FVWM comme je le veux, mais la j'ai un souçi avec le module TaskBar, en fait il ne prends pas 100% de la largeur de l'ecran et la je seche un peu, si quelqu un a ete confronté au meme probleme ça serai cool de me donner la petite astuce  :Smile: 

voiçi la capture du probleme en question, (ne pretez pas attention au theme je l ai debuté recement donc forcement pas beau  :Smile: 

Pour les decos de fenetres je me suis inspiré du theme metacity perfect gnome, j'ai mis des polices plus ou moins futuristes dans les entetes de fenetres et dans le menu mais je vais je pense mettre simplement du Comic sans MS ou fixed... bref a voir...)

http://membres.lycos.fr/mazzeri/FVWM/bug_taskbar.jpg

et voiçi le code dont il est question... 

```
Style "FvwmTaskBar" NoTitle, !Handles, !Borders, Sticky, WindowListSkip, \

CirculateSkip, StaysOnBottom, FixedPosition, FixedSize, !Iconifiable

DestroyModuleConfig FvwmTaskBar: *

*FvwmTaskBar: Geometry +0-0

*FvwmTaskBar: Rows 3

*FvwmTaskBar: Font "xft:Sans:Bold:pixelsize=12:minispace=True:antialias=True"

*FvwmTaskBar: SelFont "xft:Sans:Bold:pixelsize=12:minispace=True:antialias=True"

*FvwmTaskBar: StatusFont "xft:Sans:Bold:pixelsize=12:minispace=True:antialias=True"

*FvwmTaskBar: Colorset 9

*FvwmTaskBar: IconColorset 9

*FvwmTaskBar: FocusColorset 9

*FvwmTaskBar: TipsColorset 9

*FvwmTaskBar: UseSkipList

*FvwmTaskBar: UseIconNames

*FvwmTaskBar: ShowTips

*FvwmTaskBar: StartName FVWM

*FvwmTaskBar: StartMenu FvwmRootMenu

*FvwmTaskBar: Button Title ATerm, Icon mini/xterm.png, Action (Mouse 1) FvwmATerm

*FvwmTaskBar: Action Click3 Menu FvwmWindowOpsMenu

*FvwmTaskBar: StartIcon mini/fvwm.png
```

Merçi  :Smile: 

----------

## geekounet

Je n'ai plus trop le souvenir de tout ça, mais voici ma conf de l'époque si ça peut t'aider, j'avais bien une barre des taches sur toute la longueur : http://akoya.homeunix.org/fvwm/fvwm-config-070204.tbz2

----------

## davidou2a

Merçi je vais regarder ça  :Smile: 

----------

## DidgeriDude

N'aurais-tu pas une ligne dans ta config contenant la commande EwmhBaseStruts ?

----------

## davidou2a

 *DidgeriDude wrote:*   

> N'aurais-tu pas une ligne dans ta config contenant la commande EwmhBaseStruts ?

 

Non... je sais pas d'ou venait le probleme j ai juste fait copié collé du panel de geekounet et j ai pas ce probleme... je cherche justement d ou ça peu venir  :Smile: 

----------

## Dominique_71

Pour la largeur des boutons, il y a une variable d'environnement de fvwm qui retourne la largeur de l'écran en pixels:  vp.width. J'espère que je ne suis pas en train de dire une connerie, c'est le cas sous fvwm-crystal, donc je suppose que cela doit aussi l'être sous fvwm. Elle peut être utilisée dans un piperead:

```
PipeRead 'echo *FvwmButtons-BotPanel: Geometry $(($[vp.width]-$(($[trayer_width]+190+$[AppPanelGeom]))))x$[FvwmPager-Height]-$(($[trayer_width]+62))--1'
```

Ci-dessus est le piperead qui calcule la géométrie de la barre des taches d'une des recettes de Crystal (Thin sur le dépositaire darcs) en fonction de la largeur d'écran et des autres boutons du bas de l'écran.

----------

## davidou2a

c'est un peu le principe utilisé par le taskbar de geekounet  :Smile: 

----------

## davidou2a

Bon voila j'ai resolu mon problême d'icones... 

J'ai choisi au final de pas mettre de "TaskBar" histoire de pas faire trop desktop classique... j'ai pas non plus choisi d'utiliser le systeme de Thumbnails façon Taviso, j'ai mis une Iconebox tout simplement...

ça donne CECI

Et donc comme je trouve que les titres sous les icones en permanence c'est pas tres joli, y aurait il un moyen de les afficher qu'au survol ou bien de faire carrement une infobulle donnant le titre des fenetres (contenu des titres donc)

Voila Merçi  :Smile:  en attendant bah je lis le man voir si je trouve pas quand meme  :Confused: 

----------

## freezby

Bonjour tout le monde,

J'essaie de personnaliser fvwm à mon goût mais je bute sur un point : est-il possible d'utiliser des images pour les bordures de fenêtres ? En fait je voudrait arriver à un style de fenêtre de ce genre :

Screenshot

Est-ce qu'il y aurait un quelconque moyen d'y arriver ? 

Merci

----------

## davidou2a

Ouais c'es possible, j'ai fait ça en utilisant les images des themes de metacity... tiens au fait c est quoi le nom de ce theme là il a l air sympa  :Wink: 

pour les deco de fenetres je me suis basé sur ce qu a fait "pem" sur son theme artic, je regarde comment il s y est pris puis j essai de lire le man...

----------

## freezby

Salut,

Merci pour ta réponse. Je suis aussi entrain de me taper le manuel mais j'avais rien trouver concernant les bordures de fenêtre avec des images donc ca commencait à m'inquiéter. Je vais aller fouiller dans les pistes que tu m'as donné. Merciiii.

Pour le lien, ce n'est pas un thème mais juste un "mockup" que j'ai trouvé sur gnome-look. Mais apparemment il est pas totalement réalisable avec gnome dans l'état actuel des choses. Mais je le trouve également bien sympa donc j'essaie de m en inspirer pour me faire un joli thème fvwm2   :Razz: 

----------

## ttgeub

Salut a tous, un an sans postes ca fait bcp. 

Alors voici ma question: je voudrai faire une touche alt+tab a la mac-os, non pas au niveau du choix de l ordre des applications, mais bel et bien au niveau du rendu avec un joli menu horizontal avec des grosses icones. J'ai pas mal grate par moi, mais sans resultats tres probants. Alors je vous pose les questions suivantes:

1 - Est ce possible ?

2 - Z'auriez pas le code sous la main (on sait jamais) ?

3 - Je pensais utiliser FvwmWindowMenu ? Est ce la bonne solution ?

4 - Si j essaye d'utiliser FvwmWindowMenu  pour l instant, le module crash et rien ne s affiche (le module est bien lance au demarrage de fvwm (visible grace a ps) mais il disparait si je l invoque. Alors auriez vous une configuration minimaliste de FvwmWindowMenu  qui permette de le tester  pour savoir si le module crashe a cause de moi ?

Merci de votre aide  :Smile: 

----------

## Dominique_71

Dans Fvwm-Crystal, il y a un script python "fvwm-crystal.apps qui permet de faire ça. Il est lancé depuis certaines recipes, par exemple dans celle-ci, le dernier'appel de ce script fait exactement ce que tu veux. 

Je n'ai jamais essayé, mais pour utiliser ce script dans fvwm sans crystal, il doit suffire de placer fvwm-crystal.apps dans ton PATH et de l'appeler comme dans la recipe, ou même plus simplement si tu ne veux pas que le bouton soit masquable.

EDIT: Je me suis un peu trop précipité pour te répondre. Pour que le script fonctionne, il faut encore lui fournir, comme dans crystal, une hiérarchie de fichiers avec les appels de applications à lancer, un fichier par appli. Le plus simple est peut-être d'installer crystal et de voir comment tu peux incorporer les fonctions qui t'intéresse dans ta config.

----------

