Le gestionnaire de fenêtres (ou Window Manager) Awesome est très léger, pratique et customizable grâce à son fichier de configuration. En plus il est possible de le gérer par programme avec la commande awesome-client
.
Attention : Pour que ça marche il faut ajouter le module remote
à Awesome, c'est à dire ajouter la ligne suivante à rc.lua : require(“awful.remote”)
Voici un exemple de script qui qui affiche successivement les différents onglets de l'écran No 2 :
#!/bin/bash # # Script qui fait défiler les onglets de l'écran 2 de Awesome. # Chaque écran contient un ou des graphiques differents et est affiché # pendant x secondes, selon les donnees du tableau parametre Liste. # # Cyril, le 14/11/2019. # Exemple de commande awesome-client pour recuperer le No de l'onglet actif de l'ecran 2 : # $ echo 'local awful = require("awful") ; return awful.tag.selected(2).name' | awesome-client # Exemple de commande awesome-client pour basculer vers l'onglet No 4 de l'écran 2 : # $ echo 'local awful = require("awful") ; return awful.tag.viewonly(tags[2][4])' | awesome-client # ####################################### # PARAMETRES : # Duree;Texte de designation ;Num_Onglet Liste="90;Ecran 2 : ETH, BCH, XRP, LTC;2 50;Ecran 4 : COINS360;4 90;Ecran 5 : BITCOIN / EUROS;5 70;Ecran 6 : LITECOIN / USD;6 70;Ecran 7 : RIPPLE / USD;7 70;Ecran 8 : BITCOINCASH / USD;8 70;Ecran 9 : ETHEREUM / USD;9 30;Ecran 3 : GLANCES;3 " # Attenation, le retour a la ligne de fin est indispensable sinon le dernier onglet sera ignore. # ####################################### # ################################################################################################ # DECLARATION DES FONCTIONS : function Attente { # Cette fonction affiche le message $2 puis attends pendant $1 secondes : DureeInitiale=$(($1-3)) echo " ---------------------------" echo "`date +%d-%m-%Y\ %k:%M:%S` ${2}" echo " ---------------------------" echo "`date +%d-%m-%Y\ %k:%M:%S` Attente $1 secondes..." while [[ $DureeInitiale != 0 ]] ; do # Pour afficher ...¦40|....o....|30|....o....|20|....o....|10|....o.321... if [[ $DureeInitiale == 7 ]] ; then echo -n "|10|" elif [[ $DureeInitiale == 17 ]] ; then echo -n "|20|" elif [[ $DureeInitiale == 27 ]] ; then echo -n "|30|" elif [[ $DureeInitiale == 37 ]] ; then echo -n "|40|" elif [[ $DureeInitiale == 47 ]] ; then echo -n "|50|" elif [[ $DureeInitiale == 57 ]] ; then echo -n "|60|" elif [[ $DureeInitiale == 67 ]] ; then echo -n "|70|" elif [[ $DureeInitiale == 77 ]] ; then echo -n "|80|" elif [[ $DureeInitiale == 87 ]] ; then echo -n "|90|" elif [[ $DureeInitiale == 97 ]] ; then echo -n "|100|" elif [[ $DureeInitiale == 2 ]] ; then echo -n "o" elif [[ $DureeInitiale == 12 ]] ; then echo -n "o" elif [[ $DureeInitiale == 22 ]] ; then echo -n "o" elif [[ $DureeInitiale == 32 ]] ; then echo -n "o" elif [[ $DureeInitiale == 42 ]] ; then echo -n "o" elif [[ $DureeInitiale == 52 ]] ; then echo -n "o" elif [[ $DureeInitiale == 62 ]] ; then echo -n "o" elif [[ $DureeInitiale == 72 ]] ; then echo -n "o" elif [[ $DureeInitiale == 82 ]] ; then echo -n "o" elif [[ $DureeInitiale == 92 ]] ; then echo -n "o" else echo -n "." fi DureeInitiale=$(($DureeInitiale-1)) read -s -t 1 -n 1 key if [[ $key = q ]] ; then echo "" echo "`date +%d-%m-%Y\ %k:%M:%S` Touche Q donc on quitte !" exit 0 fi if [[ $key = s ]] ; then echo "" echo "`date +%d-%m-%Y\ %k:%M:%S` Touche S donc Suivant..." break fi if [[ $key = n ]] ; then echo "" echo "`date +%d-%m-%Y\ %k:%M:%S` Touche N donc Next..." break fi done if [[ "$key" == "" ]] ; then echo -n "3" # 3 sec... sleep 1 echo -n "2" # 2 sec... sleep 1 echo "1|" # 1 sec. (Fin de l'attente) sleep 1 fi } function OngletActuel { # Cette function retourne le numero de l'onglet actuellement actif : Onglet=$(echo 'local awful = require("awful") ; return awful.tag.selected(2).name' | awesome-client | cut -d'"' -f 2) echo $Onglet } # ################################################################################################ # ################################################################################################ # PROGRAMME PRINCIPAL : FicTmp="/tmp/$0_$RANDOM.tmp" echo -n "$Liste" > $FicTmp x=0 while IFS=';' read Duree Design Num do x=$((x + 1)) LstDuree[$x]=$Duree LstDesign[$x]=$Design LstNum[$x]=$Num DernNum=$Num done < ${FicTmp} rm ${FicTmp} while (true); do for i in `seq 1 $x`; do if [[ $(OngletActuel) == $DernNum ]] ; then echo "local awful = require(\"awful\") ; return awful.tag.viewonly(tags[2][${LstNum[$i]}])" | awesome-client fi Attente ${LstDuree[$i]} "${LstDesign[$i]}" DernNum=${LstNum[$i]} done done # ################################################################################################ exit 0