Script Awesome

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 :

Awesome-rotation-automatique-onglets.sh
#!/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