Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 04/09/2020, à 12:07

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Voilà, suite aux précieuses indications de MicP ci-dessus (post #8), je reposte comme promis pour montrer mes premiers essais de personnalisation de xfce4-notify-4.0
J’ai réussi à mettre en place un fond multicolore fixe ainsi qu’un fond multicolore animé.
Ca fonctionne mais ça doit être encore amélioré car ce n’est pas très esthétique pour l’instant.

Comme expliqué par MicP dans le post #8, je suis parti du thème Greybird de base (celui situé /usr/share/themes/Greybird) dont j’ai placé 2 copies du fichier xfce-notify-4.0/gtk.css  :
- une dans un dossier ~/.local/share/themes/essai_fond_fixe/ nouvellement créé pour l’occasion ;
- une autre dans un dossier ~/.local/share/themes/essai_fond_animé/ également créé pour l’occasion.

Et ensuite, je n’ai fait que modifier à la marge le fichier gtk.css qui se trouve à l’intérieur des dossiers essai_fond_fixe et essai_fond_animé.

Il y a cependant une chose que je n'ai pas réussi à faire : ajouter un background-image à #XfceNotifyWindow qui se situe au tout début des fichiers gtk.css
Je pense que les développeurs ont fait en sorte d’interdire ce genre de manip’ à cet endroit précis. Ils ont sûrement une bonne raison à cela mais c’est rageant !

Les premiers résultats donc :

1°) avec un fond multicolore fixe :
Voici le message de notification qui s’affiche pour la mise en place du compositeur compton :

1599218319.png

Et ci-dessous le fichier ~/.local/share/themes/essai_fond_fixe/xfce-notify-4.0/gtk.css que j’ai modifié pour parvenir à mes fins :

#XfceNotifyWindow {
    background-color: #EED1E2;
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow .osd {
    background-color: #111111;
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow:hover {
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow .osd:hover {
    border: 0px solid #4084D6;
    border-radius: 0px;
}


#XfceNotifyWindow image {
    background-image: none;
    color: #eeeeee;
}


#XfceNotifyWindow label#summary,
#XfceNotifyWindow label#body {
background-image: linear-gradient( to right, #d0d2ff, #ffd0d2,  #fffdd0, #d0fffd );
box-shadow: 10px 10px  5px rgba(0,0,0,0.6);

    color: #000000;
    font-weight: Bold;
}


#XfceNotifyWindow button {
    border-style: none;
  background-image: linear-gradient(90deg, #e91e63 0%, #e91e63 20%, #03a9f4 20%, #03a9f4 40%, #8bc34a 40%, #8bc34a 60%, #ffeb3b 60%, #ffeb3b 80%, #ff5722 80%, #ff5722 100%);
    background-color: #EED1E2;
    color: #000000;
  background-repeat: repeat-x;
  animation: movebar 0.8s linear infinite;
}
@keyframes movebar {
  from { background-position: 0 0; }
  to { background-position: 100px 0; } 
}

#XfceNotifyWindow button:hover {
    border-style: none;
    background-image: none;
    background-color: #444444;
    color: #ffffff;
}

#XfceNotifyWindow progressbar {
    border-radius: 1px;
}

#XfceNotifyWindow progressbar progress {
    min-height: 8px;
    background-image: none;
    background-color: shade(#4084D6, 1.2);
}

#XfceNotifyWindow progressbar trough {
    min-height: 10px;
    background-image: none;
    background-color: #000000;
    border: 1px solid shade(#000000, 0.6);
    border-radius: 1px;
}

NB: dans le code ci-dessus, #XfceNotifyWindow button est également modifié de façon à animer le bouton lorsqu'il est inactif (barre multicolore qui défile sans fin). Par contre, le survol du bouton par le curseur de la souris arrête l'animation et remet immédiatement le bouton traditionnel.
Ce bouton animé n'est pas visible lorsque c'est notify-send qui émet le message de notification. Par contre, il l'est lorsque c'est le daemon xfce-notify-4.0 qui s'en charge.


2°) avec un fond multicolore animé :
Voici le message de notification qui s’affiche pour la mise en place du compositeur compton. Pour ce post, je ne mets que la copie d’écran fixe mais vous pouvez voir l’animation en cliquant ici.

1599218445.png

Et ci-dessous le fichier ~/.local/share/themes/essai_fond_animé/xfce-notify-4.0/gtk.css que j’ai modifié pour parvenir à mes fins :

#XfceNotifyWindow {
    background-color: #111111;
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow .osd {
    background-color: #111111;
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow:hover {
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow .osd:hover {
    border: 0px solid #4084D6;
    border-radius: 0px;
}


#XfceNotifyWindow label#body {
  background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #7DC8E8, #5856d6, #ff2d55);
    color: #eeeeee;
  animation: colorAnimation 1s infinite;
}

@keyframes colorAnimation {
  0% { 
    background-image: 
    linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #7DC8E8, #5856d6, #ff2d55);
  }
  20% { 
    background-image: 
    linear-gradient(to right, #5ac8fa, #007aff, #7DC8E8, #5856d6, #ff2d55, #4cd964);
  }
  40% { 
    background-image: 
    linear-gradient(to right, #007aff, #7DC8E8, #5856d6, #ff2d55, #4cd964, #5ac8fa);
  }
  60% { 
    background-image: 
    linear-gradient(to right, #7DC8E8, #5856d6, #ff2d55, #4cd964, #5ac8fa, #007aff);
  }
  100% { 
    background-image: 
    linear-gradient(to right, #5856d6, #ff2d55, #4cd964, #5ac8fa, #007aff, #7DC8E8);
  }
}


#XfceNotifyWindow image {
    background-image: none;
    color: #eeeeee;
}

#XfceNotifyWindow label#summary {
  background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #7DC8E8, #5856d6, #ff2d55);
    color: #eeeeee;
    font-weight: Bold;
  animation: colorAnimation 1s infinite;
}

@keyframes colorAnimation {
  0% { 
    background-image: 
    linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #7DC8E8, #5856d6, #ff2d55);
  }
  20% { 
    background-image: 
    linear-gradient(to right, #5ac8fa, #007aff, #7DC8E8, #5856d6, #ff2d55, #4cd964);
  }
  40% { 
    background-image: 
    linear-gradient(to right, #007aff, #7DC8E8, #5856d6, #ff2d55, #4cd964, #5ac8fa);
  }
  60% { 
    background-image: 
    linear-gradient(to right, #7DC8E8, #5856d6, #ff2d55, #4cd964, #5ac8fa, #007aff);
  }
  100% { 
    background-image: 
    linear-gradient(to right, #5856d6, #ff2d55, #4cd964, #5ac8fa, #007aff, #7DC8E8);
  }
}


#XfceNotifyWindow button {
    border-style: none;
  background-image: linear-gradient(90deg, #e91e63 0%, #e91e63 20%, #03a9f4 20%, #03a9f4 40%, #8bc34a 40%, #8bc34a 60%, #ffeb3b 60%, #ffeb3b 80%, #ff5722 80%, #ff5722 100%);
    background-color: #000000;
    color: #ffffff;
  background-repeat: repeat-x;
  animation: movebar 0.8s linear infinite;
}
@keyframes movebar {
  from { background-position: 0 0; }
  to { background-position: 100px 0; } 
}

#XfceNotifyWindow button:hover {
    border-style: none;
    background-image: none;
    background-color: #444444;
    color: #ffffff;
}

#XfceNotifyWindow progressbar {
    border-radius: 1px;
}

#XfceNotifyWindow progressbar progress {
    min-height: 8px;
    background-image: none;
    background-color: shade(#4084D6, 1.2);
}

#XfceNotifyWindow progressbar trough {
    min-height: 10px;
    background-image: none;
    background-color: #000000;
    border: 1px solid shade(#000000, 0.6);
    border-radius: 1px;
}

NB: dans le code ci-dessus, #XfceNotifyWindow button est également modifié de façon à animer le bouton lorsqu'il est inactif (barre multicolore qui défile sans fin). Par contre, le survol du bouton par le curseur de la souris arrête l'animation et remet immédiatement le bouton traditionnel.
Ce bouton animé n'est pas visible lorsque c'est notify-send qui émet le message de notification. Par contre, il l'est lorsque c'est le daemon xfce-notify-4.0 qui s'en charge.


Merci encore MicP, sans ton aide je n’aurai jamais eu l’idée de tenter de personnaliser les messages de notification gérés par notify-send et le daemon xfce-notify-4.0 !


PS : je m’absente pour 3 semaines. Merci de votre compréhension si je ne réponds pas à un éventuel message ...

Dernière modification par jlfh0816 (Le 04/09/2020, à 17:28)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#27 Le 05/09/2020, à 02:05

MicP

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bravo pour ces modifications du thème des notifications,
j'aime beaucoup le look que ça donne. smile

Hors ligne

#28 Le 02/10/2020, à 14:40

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

@MicP

Bonjour,
Dans le prolongement des posts #19 et 20 et après bien des déboires, je suis enfin parvenu à placer une icône animée dans le message de notification. Je sais que ça n’est pas vraiment utile, c'est juste une coquetterie, mais je voulais savoir si c’était possible. Voici ce que ça donne :

                                                                      1601647027.png           et           1601647189.png


et pour voir les animations correspondantes, il faut cliquer ici et .

Dernière modification par jlfh0816 (Le 02/10/2020, à 14:51)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#29 Le 02/10/2020, à 22:52

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bravo… Ah tu nous fais baver là. wink
Sauf erreur, tu n'as pas posté ta solution dans ce fil. Pourrais-tu nous en dire plus ? J'imagine que tu utilises la “fonction” update de libnotify qui permet de modifier une notification déjà émise. Je suis curieux de voir comment tu t'y es pris. Comme évoqué, j'avais écrit un script (que je n'ai eu le temps de chercher) en python car via bash et notify-send je n'arrivais pas à agir une notification déjà émise.

Dernière modification par beuguissime (Le 02/10/2020, à 23:12)

Hors ligne

#30 Le 02/10/2020, à 23:08

metalux

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Salut jlfh0816,

C'est cool ça! C'est vraiment sympa ce que tu as fais, félicitation pour ce travail de personnalisation. C'est vrai que tu nous laisses un peu sur notre faim de nous montrer le gâteau sans nous donner la recette. Tu nous fais goûter le Kouign-amann? wink

Hors ligne

#31 Le 03/10/2020, à 10:55

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bonjour,

Non, aucun problème pour montrer comment j’ai fait . C’est simplement que je ne suis pas très fier de ma «méthode». C’est en effet de la pure bidouille. Pas très glorieux... mais je fais avec les moyens du bord car je n’ai hélas aucune formation informatique. Ceci dit, si quelqu’un peut l’améliorer, je lui en serai vraiment très reconnaissant.

Voici :
1°) je me suis procuré un gif animé (ici) qui me plaisait et qui ressorte bien sur un fond noir

2°) j’ai décomposé ce gif en ses 21 frames constitutives (sur ce site mais il y en a sûrement d'autres)

3°) grâce à Gimp, j’ai ramené la dimension de chacune des frames à 45x45 pixels. Je les ai également ensuite converties au format png (pour avoir la transparence du fond).
Chaque frame est renommée de frame1.png jusqu’à frame21.png
L’ensemble des frames est ensuite regroupé dans un dossier que j'ai appelé frames

4°) j’ai créé un dossier Perso dans ~/.local/share/themes/

5°) dans ce nouveau dossier Perso, je crée un dossier xfce-notify-4.0 dans lequel je crée un fichier gtk.css
Je me retrouve donc avec un fichier gtk.css contenu dans  /home/jlfh0816/.local/share/themes/Perso/xfce-notify-4.0/gtk.css

6°) j’ouvre ensuite gtk.css et j’y copie-colle les lignes ci-dessous. L'important pour l'animation est dans le paragraphe #XfceNotifyWindow image  :

#XfceNotifyWindow {
    background-color: #111111;
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow .osd {
    background-color: #111111;
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow:hover {
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow .osd:hover {
    border: 0px solid #4084D6;
    border-radius: 0px;
}

#XfceNotifyWindow label#summary {
    font-weight: bold;
}

#XfceNotifyWindow image {
    color: #eeeeee;
  animation: bg 0.8s linear infinite;
}

@keyframes bg {
  0% {
      background-image: url("frames/frame1.png");
  }
  5% {
      background-image: url("frames/frame2.png");
  }
  10% {
      background-image: url("frames/frame3.png");
  }
  15% {
      background-image: url("frames/frame4.png");
  }
  20% {
      background-image: url("frames/frame5.png");
  }
  25% {
      background-image: url("frames/frame6.png");
  }
  30% {
      background-image: url("frames/frame7.png");
  }
  35% {
      background-image: url("frames/frame8.png");
  }
  40% {
      background-image: url("frames/frame9.png");
  }
  45% {
      background-image: url("frames/frame10.png");
  }
  50% {
      background-image: url("frames/frame11.png");
  }
  55% {
      background-image: url("frames/frame12.png");
  }
  60% {
      background-image: url("frames/frame13.png");
  }
  65% {
      background-image: url("frames/frame14.png");
  }
  70% {
      background-image: url("frames/frame15.png");
  }
  75% {
      background-image: url("frames/frame16.png");
  }
  80% {
      background-image: url("frames/frame17.png");
  }
  85% {
      background-image: url("frames/frame18.png");
  }
  90% {
      background-image: url("frames/frame19.png");
  }
  95% {
      background-image: url("frames/frame20.png");
  }
  100% {
      background-image: url("frames/frame21.png");
  }
}

#XfceNotifyWindow button {
    background-image: none;
    background-color: shade(#686868, 0.5);
    color: #fcfcfc;
    border-color: shade(#fcfcfc, 0.35);
    border-radius: 3px;
}

#XfceNotifyWindow progressbar {
    border-radius: 1px;
}

#XfceNotifyWindow progressbar progress {
    min-height: 8px;
    background-image: none;
    background-color: shade(#4084D6, 1.2);
}

#XfceNotifyWindow progressbar trough {
    min-height: 10px;
    background-image: none;
    background-color: #000000;
    border: 1px solid shade(#000000, 0.6);
    border-radius: 1px;
}

7°) ensuite, dans /home/jlfh0816/.local/share/themes/Perso/xfce-notify-4.0/ je copie-colle le dossier frames du 3°)

8°) ensuite, avec Gimp, je crée un carré de 120x120 pixels entièrement transparent et sans aucun motif. Je l’ai appelé vide.png et je l'ai placé dans ~/.scripts

9°) ensuite, dans le script switch_xfwm4_compton.sh que MicP m'a permis de finaliser (celui du post#9 et que personnellement j’ai placé dans ~/.scripts), j’indique le chemin de vide.png dans les 2 appels que le script fait à notify-send ce qui me donne le script ci-dessous :

#!/bin/bash

STATUS=$(xfconf-query -c xfwm4 -p /general/use_compositing)
if [ "$STATUS" = "true" ]; then
   notify-send -t 5000 'compositeur' '<span bgcolor="#db0200" color="#f8f8f8"><b>compton</b></span>' --icon=$HOME/.scripts/vide.png
   xfconf-query -c xfwm4 -p /general/use_compositing -s false
   compton -b --config $HOME/.config/compton.conf
else
   killall compton 
   notify-send -t 5000 'compositeur' '<span color="#0F0"><b>xfwm4</b></span>' --icon=$HOME/.scripts/vide.png
   xfconf-query -c xfwm4 -p /general/use_compositing -s true
fi

Je précise que je déclenche ce script grâce à un lanceur on/off placé dans le tableau de bord, tout en haut de l’écran du moniteur. Ca me simplifie énormément la vie pour passer de xfwm4 à compton et vice-versa


10°) à partir de là, on peut vérifier que l’icone animée fonctionne après avoir effectué ces deux manip :
- choisir le thème Perso dans Whisker > Tous les paramètres > Notifications > Général > apparence > thème Perso
- cliquer sur mon lanceur on/off dans le tableau de bord


Le problème avec ma bidouille, c’est que le choix du thème Perso affecte tous les messages de notification, qu’ils proviennent de notify-send, de mon indicateur de météo ou encore de mon gestionnaire de téléchargement … et là, il peut y avoir des superpositions d'icones (l'icone animée et l'icone fixe de l'application qui émet la notification). J'avoue que je n’ai pas encore compris comment contourner ce problème mais je cherche activement ….
Peut-être qu'il faudrait empêcher le daemon xfce-notify-4.0 d'afficher son icône générique ? Ou remplacer celle-ci par un carré totalement transparent ? Mais comme je n'ai toujours pas trouvé où diable sont stockées les icones génériques qu'utilise xfce-notify-4.0, je suis un peu coincé ...

Dernière modification par jlfh0816 (Le 03/10/2020, à 11:49)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#32 Le 03/10/2020, à 19:31

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Ah oui ! Je ne savais pas qu'on pouvait faire tout ça avec le fichier thème !
Mais le défaut est que ça s'applique à toutes les notifications, c'est bien ça ? Toutes tes notifications ont un soleil animé (éventuellement en surcharge de l'icône attendue normalement), c'est ça ?

Au tout début de cette conversation, j'avais cherché de mon côté si ce fichier thème ne pouvait être appliqué qu'au cas par cas via par exemple une variable d'environnement. Je n'ai pas trouvé et la doc GTK est pas toujours très claire/à jour/le-qualificatif-de-ton-choix. D'ailleurs, où as-tu trouvé le coup des keyframes ?

Hors ligne

#33 Le 04/10/2020, à 09:00

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bonjour beuguissime,
Oui, tu as bien saisi le problème de modifier le fichier-thème : ça s'applique ensuite à toutes les notifications ...
L'avantage des messages de notification envoyés par notify-send, c'est qu'on peut agir sur son flag --icon (le carré transparent vide.png géré par --icon sert juste à pouvoir voir le soleil animé "en-dessous", c'est à dire celui géré par xfce-notify-4.0).
Dans l'absolu, il faudrait pouvoir faire pareil avec chaque logiciel qui émet des notifications ou, ce serait l'idéal, pouvoir décider que tel logiciel utilisera tel thème de notification... J'ai ouvert un fil sur ce sujet mais sans succès jusqu'à présent. C'est que ça ne doit probablement pas pouvoir être possible, dommage.

Sinon, as-tu une idée du dossier où sont archivées les icones génériques utilisées par xfce-notify-4.0 ? Je n'ai pas trouvé, et ce n'est pas faute d'avoir cherché.

Et quant à bidouiller les variables d'environnement pour décider quel fichier-thème va être appliqué pour tel ou tel message de notification ... je n'ai pas le bagage informatique pour ça...

Et sinon, pour le coup de l'animation gérée par des keyframes, j'avais testé cela "au cas où" et j'ai été le premier surpris que ça fonctionne !
J'avais déjà posté sur ce type d'animations sur ce forum et ça fonctionne bien pour gérer le fond de mon gestionnaire de fichiers (c'est ici).
En fait, tous ces fichiers css sont bien pratiques pour les personnalisations !

Merci à toi de t'être penché sur mon problème !

Dernière modification par jlfh0816 (Le 05/10/2020, à 09:49)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#34 Le 05/10/2020, à 23:14

MicP

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bonjour

Pour les icônes,
voir : specifications.freedesktop.org : Standard Icon Names
et les fichiers contenus dans les sous-répertoires du répertoire /usr/share/icons/

Hors ligne

#35 Le 06/10/2020, à 10:57

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Merci MicP pour ces infos relatives aux icones.
Pour les noms, j'avais trouvé et je me suis rendu compte qu'ils correspondent le plus souvent à des icones au format svg qui archivées dans /usr/share/icons/Humanity/

Sinon, grâce à la suggestion de beuguissime, j'ai commencé à me pencher sur les variables d'environnement et, en furetant sur la toile, j'ai vu que certains suggèrent d'utiliser les commandes

GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc nom_du_programme

ou celle-ci pour du GTK3 :

GTK_THEME=/usr/share/themes/Greybird/gtk-3.0/gtk.css nom_du_programme

afin de lancer une application donnée avec un thème xfce-notify-4.0 spécifique.

Je pense que je suis plutôt dans le cas des applications gtk3 puisque xfce-notify-4.0 de mon thème personnel utilise seulement un fichier gtk.css. Cependant, j'ai un doute car j'ai constaté que le xfce-notify-4.0 du thème Greybird de base utilise également un fichier gtkrc en plus du fichier gtk.css
Je vais voir ce que je peux tirer de tout cela ...


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#36 Le 06/10/2020, à 18:30

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Ah mon avis, la piste des variables d'environnement est une voie sans issue. Du moins, sous xfce.

Une solution moche pourrait être celle-ci

xfconf-query -c xfce4-notifyd -p /theme -s Retro; sleep 1; notify-send "Hello en retro"; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Greybird

le premier sleep est pour être sur que les fichiers thème ont eu le temps d'être relus par le démon notify et le deuxième sleep est pour changer le thème après la disparition de la notification.

Si le deuxième sleep est trop court, l'aspect de la notification toujours affichée change en accord avec le nouveau thème en temps réel. Ce qui est surprenant. Exploitant ce fait, on peut optimiser un peu la commande en affichant d'abord la notification (avec le thème courant) puis en changeant immédiatement le thème avec xfconf-query pour basculer sur le thème temporaire (cela se fait en un battement de cil et on ne se rend compte de rien). Puis au bout de 10 s, on retourne au thème courant.

notify-send "Hello en retro"; xfconf-query -c xfce4-notifyd -p /theme -s Retro; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Greybird

Il faudrait extraire d'abord le thème courant pour automatiser la tâche et la rendre plus universelle. Ici, le thème courant est Greybird.

Le risque est qu'un autre programme émette une notification alors que le thème temporaire est actif.

Hors ligne

#37 Le 06/10/2020, à 20:46

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

@beuguissime
Ah oui, ta suggestion fonctionne très bien. Le thème temporaire (que j'ai appelé Perso) est utilisé pendant 10 secondes par notify-send puis, à l'issue de cette période, retour automatique au thème général de départ Smoke.
Voici le script du switch xfwm4-compton modifié que j'ai utilisé pour mettre en oeuvre ta proposition :

#!/bin/bash
STATUS=$(xfconf-query -c xfwm4 -p /general/use_compositing)
if [ "$STATUS" = "true" ]; then
   notify-send 'compositeur' '<span bgcolor="#db0200" color="#f8f8f8"><b>compton</b></span>' --icon=$HOME/.scripts/clef_vide.png; xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
   xfconf-query -c xfwm4 -p /general/use_compositing -s false
   compton -b --config $HOME/.config/compton.conf
else
   killall compton 
   notify-send 'compositeur' '<span color="#0F0"><b>xfwm4</b></span>' --icon=$HOME/.scripts/clef_vide.png; xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
   xfconf-query -c xfwm4 -p /general/use_compositing -s true
fi

Un grand merci à toi beuguissime  smile , je n'avais pas du tout pensé à cette façon de faire.

Dernière modification par jlfh0816 (Le 06/10/2020, à 21:12)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#38 Le 06/10/2020, à 21:24

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

J'ai modifié l'ordre des commandes dans le script car dans la version du post #37, le switch effectif du compositeur ne se faisait qu'à l'issue de la période de 10 secondes.
Avec la nouvelle version ci-dessous, il se fait tout de suite avant cette période, ce qui est plus logique :

#!/bin/bash
STATUS=$(xfconf-query -c xfwm4 -p /general/use_compositing)
if [ "$STATUS" = "true" ]; then
   xfconf-query -c xfwm4 -p /general/use_compositing -s false
   compton -b --config $HOME/.config/compton.conf
   notify-send 'compositeur' '<span bgcolor="#db0200" color="#f8f8f8"><b>compton</b></span>' --icon=$HOME/.scripts/clef_vide.png; xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
else
   killall compton
   xfconf-query -c xfwm4 -p /general/use_compositing -s true 
   notify-send 'compositeur' '<span color="#0F0"><b>xfwm4</b></span>' --icon=$HOME/.scripts/clef_vide.png; xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
fi

Dernière modification par jlfh0816 (Le 06/10/2020, à 21:25)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#39 Le 06/10/2020, à 21:49

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

De rien. Tant mieux si ça te convient. J'hésitais à proposer cette solution ne la trouvant pas très jolie mais comme mes nouvelles recherches cette après-midi sur les variables d'environnement n'ont rien donné…

Hors ligne

#40 Le 06/10/2020, à 21:57

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Elle n'est peut-être pas "jolie" comme tu dis mais elle a le mérite de fonctionner !
C'est vraiment tout ce que je souhaitais, encore merci à toi !

Dernière modification par jlfh0816 (Le 06/10/2020, à 21:57)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#41 Le 08/10/2020, à 15:17

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bonjour,

Une coquetterie de plus pour mon script de switch entre compton et xfwm4... Cette fois, je me suis amusé à ajouter :
- du son : juste un petit tintement de cloche ;
- de la parole : une voix synthétique (française et féminine) qui annonce que le compositeur est désormais, selon le cas, compton ou xfwm4.

Voici le lien pour voir et écouter ce que ça donne.


Sinon, le script que j’ai modifié pour ajouter cela est devenu le suivant :

#!/bin/bash
STATUS=$(xfconf-query -c xfwm4 -p /general/use_compositing)
if [ "$STATUS" = "true" ]; then
   xfconf-query -c xfwm4 -p /general/use_compositing -s false
   compton -b --config $HOME/.config/compton.conf
   paplay /usr/share/sounds/sound-icons/glass-water-1.wav
   spd-say "le compositeur kompetone est maintenant activé"
   notify-send 'compositeur' '<span bgcolor="#db0200" color="#f8f8f8"><b>compton</b></span>' --icon=$HOME/.scripts/clef_vide.png; xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
else
   killall compton
   xfconf-query -c xfwm4 -p /general/use_compositing -s true
   paplay /usr/share/sounds/sound-icons/glass-water-1.wav
   spd-say "le compositeur X F W M 4 est maintenant activé"
   notify-send 'compositeur' '<span color="#0F0"><b>xfwm4</b></span>' --icon=$HOME/.scripts/clef_vide.png; xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
fi

Pour le petit jingle, il s’agit simplement du son « glass-water-1.wav » qui est inclus de base dans ma Xubuntu-Voyager et c’est PulseAudio (paplay) qui le joue.
Je l’ai placé juste avant la prise de parole de la voix synthétique mais on peut le mettre après si on préfère voire le dupliquer pour le mettre avant et après la voix. On peut aussi le supprimer s'il est trop énervant.

Quant à la voix synthétique, je l’ai découverte par hasard sur le site du « Tigre Rayé » de Jean-Philippe Guérard (lien).
J’ai trouvé que le rendu est plutôt très bon pour une voix francophone. J’ai simplement un peu modifié le texte pour forcer la voix à bien prononcer certains mots (par exemple, le mot « compton » est orthographié phonétiquement "kompetone").
Le logiciel qui lance la voix est spd-say (il est normalement présent dans la Xubuntu de base). Par contre, pour avoir une voix française correcte, il faut utiliser et installer le module pico TTS et Speech-dispatcher.
Pour toutes les questions relatives à l'installation et à la configuration, plutôt que de ré-écrire ce que quelqu’un de plus compétent que moi a déjà fait, je vous invite à visiter le site de Jean-Philippe Guérard (lien) lequel est très didactique et fort bien fait. Il décrit notamment (et en français !) étape par étape toute la marche à suivre pour paramétrer la voix française. C'est très facile et il n'y a pas grand'chose à faire.


edit:
si la phrase à prononcer par la voix de synthèse est un peu trop longue, on peut tenter d'ajouter l'argument --wait juste après la commande spd-say ( ce qui donne donc la ligne de commande  spd-say --wait "phrase longue à prononcer" )
(source)

Dernière modification par jlfh0816 (Le 17/08/2022, à 12:10)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#42 Le 08/10/2020, à 17:50

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Ah ah pas mal.
Et merci pour spd-say et les liens afférents , je ne connaissais pas. J'utilise espeak de temps en temps mais on dirait que ça rend un peu moins bien sans jouer avec les options. Compare chez toi avec ça par exemple

espeak -a 125 -p 60 -s 160 -g 2 -v fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."

en utilisant les voix FR de base de spd-say,

spd-say -t male1 -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."
spd-say -t female2 -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."

Hors ligne

#43 Le 08/10/2020, à 18:01

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

@beuguissime
Ah oui, la voix n'est vraiment pas terrible avec espeak .... un brin artificiel et métallique !  tongue
Par contre, avec spd-say, le rendu est nettement meilleur. Du moins, sur ma machine (mais c'est vrai que j'ai paramétré la voix française après avoir installé picoTTS et Speed-dispatcher, ça aide beaucoup ! ).

Ceci dit, 2 petites remarques :
- pour faire lire complètement la phrase que tu as écrite, il m'a fallu ajouter --wait sinon ça s'arrête juste après la deuxième occurence du mot "compositeur"
- autre chose qui me chiffonne un peu, c'est toujours la même voix féminine qui s'exprime, même lorsque tu précises "male1" dans la ligne de commande. Bizarre. Je vais essayer de creuser pour voir ce qui cloche...

En tout cas, merci beaucoup d'avoir pris le temps de me donner ton avis !

Dernière modification par jlfh0816 (Le 08/10/2020, à 18:24)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#44 Le 08/10/2020, à 19:06

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

La discussion est enrichissante grâce à toi, surtout, puisque tu relances avec de nouvelles idées. wink

Je pense que ta configuration spéciale de spd-say prend le pas sur les options de la ligne de commande. Avec les trois commandes que je donne, j'obtiens la même chose, tout le texte étant lu à chaque fois. La voix est masculine pour espeak, masculine puis féminine avec spd-say. Le rendu est un peu meilleur avec spd-say qu'avec espeak (alors qu'espeak est arrangé avec les options que j'impose).

Hors ligne

#45 Le 08/10/2020, à 19:30

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

beuguissime a écrit :

Je pense que ta configuration spéciale de spd-say prend le pas sur les options de la ligne de commande.

Oui, je crois bien que tu as raison car je viens de vérifier mon fichier /etc/speech-dispatcher/modules/pico-generic.conf et celui-ci ne mentionne effectivement par défaut qu'une seule voix française : FEMALE1 (voir ci-dessous) :

# AddVoice specifies which $VOICE string should be assigned to
# each language and symbolic voice name. All the voices you want
# to use must be specified here. This list will likely not be
# up-to-date, please check pico documentation and add the voices
# you want to use.

AddVoice        "en"    "FEMALE1"	"en-US"
AddVoice        "en"    "FEMALE2"	"en-GB"
AddVoice        "de"    "FEMALE1"	"de-DE"
AddVoice        "es"    "FEMALE1"	"es-ES"
AddVoice        "fr"    "FEMALE1"	"fr-FR"
AddVoice        "it"    "FEMALE1"	"it-IT"

# Yes, it's wrong, but this way you at least get something even when configured
# (by default) to use a male voice
AddVoice        "en"    "MALE1"		"en-US"
AddVoice        "en"    "MALE2"		"en-GB"
AddVoice        "de"    "MALE1"		"de-DE"
AddVoice        "es"    "MALE1"		"es-ES"
AddVoice        "fr"    "MALE1"		"fr-FR"
AddVoice        "it"    "MALE1"		"it-IT"

Bon, ça n'est pas bien grave car j'aime plutôt bien cette voix française. Ca tombe bien !  big_smile
Sinon, je pense que la solution la plus sage est d'attendre gentiment une mise à jour de ce fichier... car je ne me vois pas utiliser la ligne de commande pour forcer la voix française MALE1 (ça voudrait dire suspendre les paramétrages par défaut du fichier de configration .conf)

Dernière modification par jlfh0816 (Le 08/10/2020, à 22:10)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#46 Le 08/10/2020, à 20:48

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

Bah si j'en crois le lien que tu donnes, tu as modifié ce fichier de configuration, non ?

Mais en creusant, j'ai compris un peu mieux ce que faisait speech-dispatcher, le truc derrière spd-say.

Alors, tu peux choisir des modules de sortie différents. La liste des modules de sorti dispos est obtenue avec

spd-say -O

J'obtiens sur ma machine ceci :

OUTPUT MODULES
espeak
espeak-ng
mary-generic
espeak-generic
pico-generic

pico-generic n'est apparu qu'après avoir installé libttspico-utils comme indiqué dans ton lien.

Par défaut, spd-say utilise espeak. C'est pourquoi je trouvais que les deux résultats (celui obtenu avec espeak et celui obtenu avec spd-say) se ressemblaient fortement chez moi, bien qu'avec spd-say le résultat était un peu plus agréable sans toucher aux réglages en comparaison avec espeak. Pour autant, la sortie sonore était loin de ressembler à ton exemple. C'est parce que je n'utilisais pas le module pico, n'ayant pas touché au fichier de configuration.

On peut forcer à la volée le module de sortie avec l'option -o.

Donc ceci pour forcer l'usage de espeak

spd-say --wait -o espeak -t male2 -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."
spd-say --wait -o espeak -t female2 -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."

et ceci pour forcer l'usage de pico-generic

spd-say --wait -o pico-generic -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur x f w m 4."

et j'obtiens la même chose que dans ton exemple.

Ma machine étant réglée en anglais, je force le français avec l'option

-l fr

(sinon, le choix est basé sur la locale). Et comme pico-generic semble faire les liaisons, il faut espacer les lettres de l'acronyme xfmw4 sinon c'est incompréhensible.

Il semble qu'une version locale de speechd.conf peut être utilisée en le plaçant ici

~/.config/speech-dispatcher/speechd.conf

Ça évite de toucher à /etc (et d'imposer le réglage à tous les utilisateurs).

En effet, de façon un peu aléatoire et selon les modules de sortie, la synthèse vocale peut prendre fin un peu avant la fin du texte donné en exemple. Le plus sûr est donc comme tu le dis de passer l'option --wait.

Hors ligne

#47 Le 08/10/2020, à 21:38

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

@beuguissime

Super, merci pour toutes ces infos !

Alors, j’ai demandé à spd-say de m’afficher la liste des modules de sorti disponibles et voici le résultat :

jlfh0816 @ Voyager1804  ~
└─ $ ▶ spd-say -O
OUTPUT MODULES
pico-generic
generic
espeak-ng
dummy

Comme tu le vois, j’ai moins de modules disponibles que toi et je suis notamment surpris de ne pas y trouver espeak


Ensuite, j’ai testé les commandes que tu m’as communiquées et voici le résultat :

spd-say --wait -o espeak -t male2 -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."

me donne la voix féminine française FEMALE1


spd-say --wait -o espeak -t female2 -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur xfwm4."

me donne également la voix féminine française FEMALE1


spd-say --wait -o pico-generic -l fr "le compositeur competone est maintenant activé. Ah non, en fait, c'est le compositeur x f w m 4."

me donne toujours la voix féminine française FEMALE1


Et sinon, de mon côté, j’ai tenté la lecture d’une phrase en français par chacune de mes sorties disponibles et ça me donne :
- pour pico-generic : voix FEMALE1 française
- pour generic : aucun son
- pour espeak-ng : une voix masculine robotisée difficilement compréhensible mais c’est du français !
- pour dummy : une voix masculine américaine (si j’en juge par l’accent et le débit vocal...) mais le texte déclamé n’a rien à voir avec celui de la phrase en français que je lui demandais de lire

Mais bon, je ne m’inquiète pas trop. Je vais tranquillement faire comme tu me le suggères, c'est-à-dire créer un dossier local dans ~/.config contenant  ~/.config/speech-dispatcher/speechd.conf ainsi que ~/.config/speech-dispatcher/modules/pico-generic.conf et je vais voir comment je peux y modifier les voix. A force de tâtonner, je devrai finir par y arriver.
Je n’ai plus trop le temps de faire cela ce soir mais je m'en occupe dès demain et je reposte dès que j’arrive à quelque chose.

Encore merci beuguissime pour tous tes efforts et ta bienveillante patience !

Dernière modification par jlfh0816 (Le 08/10/2020, à 21:40)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#48 Le 08/10/2020, à 22:02

metalux

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

jlfh0816 a écrit :

C’est simplement que je ne suis pas très fier de ma «méthode». C’est en effet de la pure bidouille.

Toi, tu n'a pas fouillé dans les scripts que j'ai écris pour Voyager pour dire ça!  tongue
L'essentiel dans un premier temps c'est que ça rempli sa fonction. Une fois écris un script fonctionnel, ce n'est qu'après que tu peux chercher à l'améliorer et tout ce que tu apprendras entre temps te servira pour les prochains. Mais l'essentiel c'est d'abord de réussir à faire ce que tu souhaites.....et tu as souvent de très bonnes idées de personnalisation, rien ne remplacera celles-ci. Je te lis généralement silencieusement sans intervenir, à chaque fois tu apportes de bonnes astuces.
D'ailleurs à quoi ça sert de bien écrire un script si au final c'est pour tout oublier comme moi et ne plus arriver à comprendre ses propres scripts? lol
Ta bidouille est innovante et fonctionnelle, soit en fier!

Pour info, tout comme toi, j'ai aussi la voix féminine à chaque fois.

Hors ligne

#49 Le 08/10/2020, à 22:08

beuguissime

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

J'ai tout ça semblant se rapporter à espeak (sur une 20.04) :

$ dpkg -l | grep -i espeak
ii  espeak                                                      1.48.04+dfsg-8build1                       amd64        Multi-lingual software speech synthesizer
ii  espeak-data:amd64                                           1.48.04+dfsg-8build1                       amd64        Multi-lingual software speech synthesizer: speech data files
ii  espeak-ng-data:amd64                                        1.50+dfsg-6                                amd64        Multi-lingual software speech synthesizer: speech data files
ii  gstreamer1.0-espeak:amd64                                   0.5.0-1                                    amd64        GStreamer plugin for eSpeak speech synthesis
ii  libespeak-ng1:amd64                                         1.50+dfsg-6                                amd64        Multi-lingual software speech synthesizer: shared library
ii  libespeak1:amd64                                            1.48.04+dfsg-8build1                       amd64        Multi-lingual software speech synthesizer: shared library
ii  python3-espeak                                              0.5-2build1                                amd64        Python bindings for eSpeak
ii  speech-dispatcher-espeak                                    0.9.1-4                                    amd64        Speech Dispatcher: Espeak output module
ii  speech-dispatcher-espeak-ng                                 0.9.1-4                                    amd64        Speech Dispatcher: Espeak-ng output module

Je n'ai installé speech-dispatcher-espeak qu'après mes premiers essais du début d'après-midi et je pense que ça a rajouté le module espeak. Je pense que j'avais déjà les module espeak-ng et espeak-generic sans ce paquet.

Je ne sais pas si le fichier

~/.config/speech-dispatcher/modules/pico-generic.conf 

sera pris en compte. As-tu déjà vérifié ou n'est-ce qu'une supputation ? Je n'ai pas trop creusé la piste des fichiers de configuration locaux. J'ai simplement vu en surfant la possibilité pour

~/.config/speech-dispatcher/speechd.conf

même si dans un des posts, il était aussi mentionné speechd.config. Tout ça pour dire que je te laisse t'assurer des chemins exacts.

Au plaisir de lire la suite quand tu pourras… wink

Hors ligne

#50 Le 09/10/2020, à 10:27

jlfh0816

Re : bash script switch compton/xfwm4 et personnalisation de notify-send

@metalux
Merci à toi metalux … Venant de toi, ces encouragements me font rougir… ! tongue


Xubuntu - Voyager 18.04 et 22.04

Hors ligne