logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:tawal:scripts:switch-on-off-dans-le-systray [11/05/2023 00:26]
Tawal [Images icônes]
utilisateurs:tawal:scripts:switch-on-off-dans-le-systray [15/05/2023 18:53] (Version actuelle)
Tawal [Switch On/Off dans le systray]
Ligne 1: Ligne 1:
 ====== Switch On/Off dans le systray ====== ====== Switch On/Off dans le systray ======
- +<​note>​\\ 
-  * Nécessite //​yad// ​''​apt install yad''​ +Mise à jour le 15/05/2023</note>
-  * Nécessite ​//inotifywait// : ''​apt install intofy-tools+
   * Une icône dans le systray   * Une icône dans le systray
   * Un clic gauche bascule l'​état de l'​icône   * Un clic gauche bascule l'​état de l'​icône
   * Un clic droit montre un menu : Switcher ou Quitter   * Un clic droit montre un menu : Switcher ou Quitter
-  * Un fichier contenant l'​état actuel de l'​icône +  * Un fichier contenant l'​état actuel de l'​icône ​(selon la version) 
-  * Possibilité de coder les actions (on et off) dans le script ou d'​utiliser le fichier pour gérer les actions.+  * Possibilité de coder les actions (on et off) dans le script ​(ou d'​utiliser le fichier ​d'​état ​pour gérer les actions ​selon la version) 
 +  * La version avec fichier d'​état permet le pilotage du script par ce fichier en y écrivant ON ou OFF. 
 +  * Scripts à adapter (variables et/ou code pour les actions On et Off). 
 +<note warning>​\\ Débutant s'​abstenir</​note>​\\ 
 +<note important>​\\ Nécessite //yad// :\\ \\ <code root>apt install yad</​code>​ 
 +La version avec fichier d'​état nécessite //​inotifywait//​ :<code root >apt install intofy-tools</​code></​note>​
  
-===== Le script ​=====+===== Les scripts (2 versions) ​=====
  
-Il s'appuie ​sur le mode notification de //yad//.+Ils s'appuient ​sur le mode notification de //yad//.\\
 Dans le chapitre "​Images icônes",​ vous trouverez des fichiers images pour les icônes ON et OFF. Dans le chapitre "​Images icônes",​ vous trouverez des fichiers images pour les icônes ON et OFF.
-<file bash systray_switch>+\\ 
 +== Version avec fichier d'​état. == 
 +//​(Possibilité de mettre les instructions dans le script ou de faire un script extérieur qui viendra lire le fichier d'​état)//​\\ 
 +<file bash systray_switch_with_file>
 #!/bin/bash #!/bin/bash
  
  
 ### Variables Customisables. ### Variables Customisables.
-Icon_Off="/​chemin/​de/​l'​image/​ON" ​    # À adapter+Icon_Off="/​chemin/​de/​l'​image/​ON" ​    # À adapter.
 Icon_On="/​chemin/​de/​l'​image/​OFF" ​    # " ​ " Icon_On="/​chemin/​de/​l'​image/​OFF" ​    # " ​ "
-Switch="​$HOME/​systray_switch_state" ​ # " ​ "+Switch="​$HOME/​systray_switch_state" ​ # " ​ " ​   ​Fichier d'​état (contient soit ON soit OFF).
  
  
Ligne 27: Ligne 34:
 { {
    local s="​inotifywait -qme close_write ${Switch//​\//​\\\\/​}"​    local s="​inotifywait -qme close_write ${Switch//​\//​\\\\/​}"​
-   kill -15 "$(ps -ef | awk -vs="​$s"​ '$0 ~ s && !/grep/{print $2}'​)"​+   kill -15 "$(ps -ef | awk -vs="​$s"​ '$0 ~ s && !/awk/{print $2}'​)"​
 } }
  
Ligne 37: Ligne 44:
       echo "​OFF"​ >"​$Switch"​       echo "​OFF"​ >"​$Switch"​
       #       #
-      # Actions ​pour OFF+      # Code ICI pour les actions ​OFF (optionnel)
       #       #
    else    else
       echo "​ON"​ >"​$Switch"​       echo "​ON"​ >"​$Switch"​
       #       #
-      # Actions ​pour ON+      # Code ICI pour les actions ​ON (optionnel)
       #       #
    fi    fi
Ligne 72: Ligne 79:
 # command = switch direct sur clic gauche de la souris # command = switch direct sur clic gauche de la souris
 yad --notification ​                                                   \ yad --notification ​                                                   \
-    --text "Musique écran éteint" ​                                    \+    --text "Texte de la bulle au survol de la souris" ​                                    \
     --icon-size 64                                                    \     --icon-size 64                                                    \
     --no-middle ​                                                      \     --no-middle ​                                                      \
Ligne 80: Ligne 87:
 </​file>​ </​file>​
  
 +== Version sans fichier d'​état ==
 +//(oblige de mettre les instructions On/Off dans ce script).//​\\
 +<file bash systray_switch_without_file>​
 +#!/bin/bash
 +
 +### Variables Customisables.
 +Icon_Off="/​chemin/​de/​l'​image/​ON" ​    # À adapter.
 +Icon_On="/​chemin/​de/​l'​image/​OFF" ​    # " ​ "
 +
 +### Créations des canaux de communication
 +mkfifo fifo fifo2
 +exec 8<>​fifo 4>fifo 5<fifo 8>&-
 +exec 9<>​fifo2 6>fifo2 7<fifo2 9>&-
 +rm fifo fifo2
 +
 +fd4="/​proc/​$$/​fd/​4"​
 +fd5="/​proc/​$$/​fd/​5"​
 +fd6="/​proc/​$$/​fd/​6"​
 +
 +### Initialisation de l'​état de l'​icône.
 +# Partie à adapter selon les actions pour ON et OFF.
 +# Mais quel que soit l'​état de départ, il faut envoyer les bonnes informations aux bons canaux.
 +echo "​OFF"​ >&4
 +echo "​icon:​$Icon_Off"​ >&6
 +
 +### Fonctions.
 +_quit ()
 +{
 +   exec 6>"​$1"​
 +   echo "​EOF"​ >&6
 +}
 +
 +_switch ()
 +{
 +   local etat
 +   exec 4>"​$1"​ 5<"​$2"​ 6>"​$3"​
 +   read -r etat <&5
 +
 +   if [ "​$etat"​ = "​ON"​ ]
 +   then
 +      echo "​OFF"​ >&4
 +      echo "​icon:​$Icon_Off"​ >&6
 +      #
 +      # Code ICI pour les actions OFF
 +      #
 +   else
 +      echo "​ON"​ >&4
 +      echo "​icon:​$Icon_On"​ >&6
 +      #
 +      # Code ICI pour les actions ON
 +      #
 +   fi
 +}
 +
 +### Export des Fonctions et Variables.
 +export -f  _quit  _switch
 +export Icon_On Icon_Off
 +
 +### Notification YAD (icône systray).
 +yad --notification ​                                                                 \
 +    --text "Texte au survol de la souris." ​                                         \
 +    --icon-size 64                                                                  \
 +    --no-middle ​                                                                    \
 +    --menu "​Switcher!bash -c '​_switch $fd4 $fd5 $fd6'​|Quitter!bash -c '_quit $fd6'"​ \
 +    --command "bash -c '​_switch $fd4 $fd5 $fd6'" ​                                   \
 +    --listen < <(while read -r <&7; do [ "​$REPLY"​ = "​EOF"​ ] && break; echo "​$REPLY";​ done)
 +</​file>​
 ===== Images icônes ===== ===== Images icônes =====
-OFF [[https://​debian-facile.org/​images/​file-R9815d946627cdf57a09164453a56c84e]] + 
-ON  [[https://​debian-facile.org/​images/​file-R477709fd6aaa5940ba2be7b06e643632]]+{{https://​debian-facile.org/​images/​file-R477709fd6aaa5940ba2be7b06e643632|Icône ​ON}}\\ 
 +{{https://​debian-facile.org/​images/​file-R9815d946627cdf57a09164453a56c84e|Icône OFF}} 
 ===== Utilisation ===== ===== Utilisation =====
  
-Bah, il ne reste plus qu'à le lancer en début de session ^_^+Bah, il ne reste plus qu'à le lancer en début de session ^_^\\ 
 +Après adaptation évidemment ... :-P
utilisateurs/tawal/scripts/switch-on-off-dans-le-systray.1683757593.txt.gz · Dernière modification: 11/05/2023 00:26 par Tawal

Pied de page des forums

Propulsé par FluxBB