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.

#76 Le 16/10/2020, à 00:06

beuguissime

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

cd n'est pas fautive, un peu de respect pour les commandes vétérans de l'informatique big_smile big_smile wink

La syntaxe file:// est appelé schéma d'URI “file”. Voir ici si tu lis un peu l'anglais (ou si tu acceptes d'utiliser un traducteur auto comme deepl, dans le cas contraire). La page wiki francophone existe mais est assez vide. La spécification a l'air de dater du milieu des années 90. Je croyais ça plus récent car j'ai l'impression de ne pas l'avoir trop rencontrée jusqu'à il y a cinq/six ans.

Hors ligne

#77 Le 16/10/2020, à 00:18

jlfh0816

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

Super, merci beaucoup pour ce lien.  cool
J'ai beaucoup appris ce soir et cette référence Wikipedia va m'occuper une partie du week-end !


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#78 Le 16/10/2020, à 00:23

beuguissime

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

wink
Par contre, la page du wiki francophone sur les schémas d'URI (en général, donc) a l'air bien plus remplie.

Hors ligne

#79 Le 29/10/2020, à 23:22

jlfh0816

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

Bonjour,

Pour essayer de couper court à l’ambiance et la morosité de l’actualité du moment ( … ), je me suis remis sur la personnalisation du message de notification émis par notify-send lorsque j’active le switch xfwm4-compton.
Pour cette fois, j’ai réussi à :
- faire varier la transparence des couleurs du fond et/ou de la police de caractères en recourant à certains tags du PangoMarkupLanguage utilisé par notify-send (source 1 et source 2);
- faire clignoter le texte affiché dans la notification, que ce soit le summary et/ou le body de notify-send (source).

Voici ce que ça donne sur une vue fixe :

nh8l.png     et     dmzg.png

et, en animation, sur une capture vidéo.


1) pour faire varier la transparence de la couleur de la police, j’ai eu recours au tag fgalpha (abrégeable en alpha). On peut lui attribuer une valeur comprise entre 0 et 100 %. Je lui ai donné la valeur :

fgalpha="100%"

2) pour faire varier la transparence de la couleur du fond, j’ai eu recours au tag background_alpha (abrégeable en bgalpha). On peut lui attribuer une valeur comprise entre 0 et 100 %. Je lui ai fixé la valeur :

bgalpha="100%"

J’ai apporté ces deux premières modifications aux lignes 8 et 15 du script switch_xfwm4_compton.sh qui devient donc :

#!/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 "compositeur kompetone activé"
notify-send -i file:///home/jlfh0816/.scripts/clef_vide.png  "$(echo -e "    compositeur")"  '<span font="21px" color="red" fgalpha="100%" bgcolor="#000000"><b><i>Compton</i></b></span>'
 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 "compositeur X    F    W    M    4 activé"
   notify-send 'compositeur' '<span font="21px" color="#0F0" fgalpha="100%"><b><i>xfwm4</i></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

3) pour faire clignoter une partie du texte envoyé par notify-send (dans mon cas je voulais juste faire clignoter le nom du compositeur, donc seulement xfwm4 / Compton), j’ai modifié la partie ci-dessous du  fichier gtk.css du dossier xfce-notify-4.0 de mon thème "Perso" de la façon suivante :

#XfceNotifyWindow label#summary {
    font-weight: bold;
    border-bottom: 2px solid #00DFFF;
}

#XfceNotifyWindow label#body {
    font-weight: bold;
    animation: blink 1s steps(115, start) infinite;
}

@keyframes blink {
  50% {
       opacity: 0.0; 
       color: #00DFFF;
}
}

Ce qui donne au final le nouveau fichier gtk.css suivant :

#XfceNotifyWindow {
    background-color: #111111;
    border: 2px solid #00DFFF;
    border-radius: 0px;
}

#XfceNotifyWindow .osd {
    background-color: #111111;
    border: 2px solid #00DFFF;
    border-radius: 0px;
}

#XfceNotifyWindow:hover {
    background-color: #111111;
    border: 2px solid #00DFFF;
    border-radius: 0px;
}

#XfceNotifyWindow .osd:hover {
    background-color: #111111;
    border: 2px solid #00DFFF;
    border-radius: 0px;
}


#XfceNotifyWindow label#summary {
    font-weight: bold;
    border-bottom: 2px solid #00DFFF;
}

#XfceNotifyWindow label#body {
    font-weight: bold;
    animation: blink 1s steps(115, start) infinite;
}

@keyframes blink {
  50% {
       opacity: 0.0; 
       color: #00DFFF;
}
}


#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;
} 

Au titre des limites de cette bidouille de clignotement, il m’a fallu renoncer à :
- l’animation slide-out des messages de notification car elle devient saccadée ;
- à l’inclusion des hyperliens en bas du message affiché pour Compton car sinon ils clignotent en même temps que le nom Compton...

Bon courage à tout le monde pour le confinement !

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


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#80 Le 30/10/2020, à 02:47

beuguissime

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

Salut,

Ah tiens, je repensais à toi ces jours-ci et me demandais si tu avais de nouvelles découvertes du côté de notify-send et je me disais qu'un message de ta part pourrait à coup sûr nous distraire des mauvaises nouvelles. Ça n'a pas loupé. wink Merci de continuer à partager tes idées et trouvailles.

En effet, bon courage pour le nouveau confinement. Même si les observateurs/rices attentives pouvaient s'y préparer psychologiquement depuis (au moins) début septembre (ça n'était plus tellement une question de 'si' mais une question de 'quand'), ça fiche un coup au moral. D'autant que quatre semaines ne suffiront probablement pas. Avec beaucoup de chance, rdv vers le 15 décembre pour un début de “libération”.

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

Hors ligne

#81 Le 02/11/2020, à 12:12

jlfh0816

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

@beuguissime
Merci pour tes encouragements, ça fait toujours plaisir !


Sinon, comme je n’étais pas satisfait de l’esthétique du dernier modèle de message de notification (trop kitsch, trop chargé), j’ai essayé de simplifier au maximum et je suis parvenu à ne faire apparaître que le nom du compositeur sur un petit rectangle gris plus ou moins translucide.
Je trouve que ça donne un aspect plus moderne et moins clinquant au message. Mais bon, nous sommes d'accord, des goûts et des couleurs ...
Pour cette nouvelle version, je ne fais plus apparaître que le body de notify-send (pas d’icone ni de summary).
Et pour que le nom du compositeur s’affiche bien au centre du rectangle, j’ai recours au flag rise dans le script switch_xfwm4_compton.sh.
Voici ce que ça donne sur des captures fixes :

1604311213.png      et      1604311280.png

et sur une capture vidéo.


Le fichier gtk.css du dossier xfce-notify-4.0 de mon thème Perso est très simplifié et devient :

#XfceNotifyWindow {
    background-color: #4d4d4d;
    border: none;
    border-radius: 10px;
}

#XfceNotifyWindow label#body {
    font-weight: bold;
  animation: blink 1s linear infinite;
}
@keyframes blink {
  50% {
    opacity: 0.0;
  }
}

Pour avoir un affichage non clignotant, il suffit de supprimer les lignes relatives à  animation ainsi qu'à  @keyframes blink
Et pour obtenir une couleur de fond du rectangle mieux adaptée à un fond d'écran clair (le mien est foncé), il suffit de changer en conséquence la couleur désignée à la ligne background-color: #4d4d4d;


Quant au script switch_xfwm4_compton.sh, il est modifié comme ci-dessous :

#!/bin/bash
STATUS=$(xfconf-query -c xfwm4 -p /general/use_compositing)
if [ "$STATUS" = "true" ]; then
   xfconf-query -c xfce4-notifyd -p /do-slideout -s true;
   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 "compositeur kompetone activé"
notify-send " "  '<span font="22" color="red" fgalpha="100%" rise="30480"><b><i>Compton</i></b></span>'
 xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
   xfconf-query -c xfce4-notifyd -p /do-slideout -s false
else
   killall compton
   xfconf-query -c xfce4-notifyd -p /do-slideout -s true;
   xfconf-query -c xfwm4 -p /general/use_compositing -s true
   paplay /usr/share/sounds/sound-icons/glass-water-1.wav
   spd-say "compositeur X    F    W    M    4 activé"
   notify-send ' ' '<span font="22" color="#0F0" fgalpha="100%" rise="30480"><b><i>xfwm4</i></b></span>';
xfconf-query -c xfce4-notifyd -p /theme -s Perso; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke
   xfconf-query -c xfce4-notifyd -p /do-slideout -s false
fi

Par contre, j'ai été incapable de donner un fond totalement transparent au rectangle dans lequel s'affiche le nom du compositeur...
A priori, ça doit être impossible mais je vais continuer de chercher.
La piste de l'argument CSS "opacity" ne fonctionne pas en-dessous d'une valeur minimale 0.1

Dernière modification par jlfh0816 (Le 02/11/2020, à 19:13)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#82 Le 09/11/2020, à 20:50

jlfh0816

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

Bonjour,

Dans le prolongement du post #81, j’ai tenté d’obtenir quelque chose de plus esthétique.
J’ai testé 2 voies :
- utiliser uniquement l’emplacement de l’icone (pas d’affichage du body et du summary de notify-send) pour lui faire jouer une animation 3D basée sur le nom du compositeur. Ca fonctionne bien mais c’est vraiment petit puisqu’il faut se limiter à une surface d’affichage d’environ 50 x 50 pixels. J’ai préféré laisser tomber (liens directs xfwm4 et compton);

1o4c.gif  et   3qct.gif

- utiliser uniquement l’emplacement du body (pas d’affichage du summary ni de l’icone) pour lui faire jouer lui aussi afficher une animation 3D basée sur le nom du compositeur. Ca fonctionne également mais, cette fois, il y a assez de place pour que le résultat soit bien visible. C’est la solution que j’ai retenue :
1604944445.png   et    1604944507.png

Je précise que j’ai vainement tenté de détourner l’utilisation de l’emplacement du summary de son rôle normal… rien à faire de ce côté.

Voici ce que ça donne sur une capture vidéo.

Pour obtenir l’animation 3D du nom du compositeur, j’ai consulté plusieurs sites spécialisés et mon choix s’est arrêté sur celui-ci (mais il y en a bien d’autres sur la toile).

Les animations sont téléchargées sur un fond opaque noir et au format gif. Elles utilisent la police de caractères CarterOne et l’animation Blink.
Une fois rapatriées sur le disque dur, j’ai eu recours à un autre site spécialisé (celui-ci mais, bien entendu, il y en a plein d’autres) pour redimensionner les gifs et obtenir les frames (au format png) qui les constituent. Chaque frame finale mesure :
- 96x57 px pour l’animation xfwm4 (6 frames au total) ;
- 92x56 px pour l’animation compton (7 frames au total).

J’ai abouti à ces valeurs par approximations successives car sinon les animations débordent de leur emplacement ou sont présentes en plusieurs exemplaires en même temps…

Pour l’animation xfwm4, j’ai créé le nouveau thème Perso_10 qui comprend un dossier xfce-notify-4.0 avec, au sein de celui-ci, un fichier gtk.css ainsi que le sous-dossier contenant toutes les frames du thème xfwm4
Idem pour l'animation compton avec la création d’un nouveau thème Perso_11.


Le fichier gtk.css du thème Perso_10 est celui-ci :

#XfceNotifyWindow {
    background-color: #000000;
    border: none;
    border-radius: 10px;
}

#XfceNotifyWindow label#body {
    border-color: #000000;
    animation: bg 0.8s linear infinite;
}
@keyframes bg {
  0% {
      background-image: url("frames/frame1.png");
  }
  20% {
      background-image: url("frames/frame2.png");
  }
  40% {
      background-image: url("frames/frame3.png");
  }
  60% {
      background-image: url("frames/frame4.png");
  }
  80% {
      background-image: url("frames/frame5.png");
  }
  100% {
      background-image: url("frames/frame6.png");
  }
}

Le fichier gtk.css du thème Perso_11 est celui-ci :

#XfceNotifyWindow {
    background-color: #000000;
    border: none;
    border-radius: 10px;
}

#XfceNotifyWindow label#body {
    border-color: #000000;
    animation: bg 0.8s linear infinite;
}
@keyframes bg {
  0% {
      background-image: url("frames/frame1.png");
  }
  18% {
      background-image: url("frames/frame2.png");
  }
  36% {
      background-image: url("frames/frame3.png");
  }
  54% {
      background-image: url("frames/frame4.png");
  }
  72% {
      background-image: url("frames/frame5.png");
  }
  80% {
      background-image: url("frames/frame6.png");
  }
  100% {
      background-image: url("frames/frame7.png");
  }
}

Et enfin, le script switch_xfwm4_compton.sh qui me permet de lancer ces deux thèmes est celui-ci :

#!/bin/bash
STATUS=$(xfconf-query -c xfwm4 -p /general/use_compositing)
if [ "$STATUS" = "true" ]; then
   xfconf-query -c xfce4-notifyd -p /do-slideout -s true;
   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 "compositeur kompetone activé";
   notify-send '                               ' '\n \n \n'
 xfconf-query -c xfce4-notifyd -p /theme -s Perso_11; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke;
   xfconf-query -c xfce4-notifyd -p /do-slideout -s false
else
   killall compton;
   xfconf-query -c xfce4-notifyd -p /do-slideout -s true;
   xfconf-query -c xfwm4 -p /general/use_compositing -s true;
   paplay /usr/share/sounds/sound-icons/glass-water-1.wav;
   spd-say "compositeur X    F    W    M    4 activé";
   notify-send '                                ' '\n \n \n'
xfconf-query -c xfce4-notifyd -p /theme -s Perso_10; sleep 10; xfconf-query -c xfce4-notifyd -p /theme -s Smoke;
   xfconf-query -c xfce4-notifyd -p /do-slideout -s false
fi

Enfin, et pour terminer, je n'ai toujours pas trouvé comment obtenir un fond transparent dans les messages de notification ...

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


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#83 Le 13/11/2020, à 18:46

jlfh0816

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

Bonjour,

Pour revenir à des choses plus simples, j’ai essayé de faire en sorte que si on utilise une icone fixe (non animée), celle-ci soit différente à chaque lancement de mon script…. histoire de varier les plaisirs ...
Le choix s’effectue de façon aléatoire parmi une vingtaine d’icones que j’ai placées dans un dossier $HOME/Images/compositeur (lien direct) :

1605285531.png

Et pour faire ce choix, j’ai recours à la commande shuf (je ne la connaissais pas, j'ai appris son existence en lisant cette source). Je j’ai intégrée au script de lancement de la notification de la façon suivante (je ne mets ici que la ligne relative au lancement de notify-send pour le compositeur xfwm 4, le reste du script ne change pas, voir #9) :

notify-send -i "$HOME/Images/compositeur/$(ls $HOME/Images/compositeur | shuf -n 1)"  "compositeur"  "XFWM 4"

(je ne suis pas sûr que les guillemets soient indispensables pour encadrer l'icone car ça fonctionne aussi bien avec que sans... Par contre, ils sont indispensables pour encadrer le summary et le body.)


Voici par exemple ce que ça donne en lançant 6 fois de suite le script (lien direct) :

1605285385.png

Le thème de notification est Smoke.


PS: j'ai oublié de préciser que, a priori,  la taille des icones utilisées importe peu puisque, dans mon exemple, elle varie de 90x90 pixels jusqu'à 512x512 pixels.

Dernière modification par jlfh0816 (Le 13/11/2020, à 19:12)


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#84 Le 13/11/2020, à 22:56

beuguissime

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

Ah, c'est marrant et ça permet de découvrir shuf qui, d'expérience, ne fait pas partie des commandes les plus fréquemment citées dans les discussions du web.

Hors ligne

#85 Le 14/11/2020, à 14:29

jlfh0816

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

@beuguissime
Ah, je me doutais bien que cette commande shuf susciterait de la curiosité ...  !   wink
Très bon week-end à toi !


Xubuntu - Voyager 18.04 et 22.04

Hors ligne

#86 Le 14/11/2020, à 17:08

beuguissime

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

Ah mais je connaissais déjà l'existence de shuf… mais j'ai tendance à l'oublier car je m'en sers très rarement. Donc merci pour la piqure de rappel (on parle bcp de vaccins en ce moment tongue).
Bon weekend également !

Hors ligne