• # Re: Changer automatiquement les thêmes WM

    Posté par . En réponse au message [X-Window] Changer automatiquement les thêmes WM. Évalué à 1.

    Revoyons l'action au ralenti...

    #!/bin/bash
    # <nom>

    # local variable(s)
    TMP_DIR=/tmp
    typeset -i M=0
    typeset -i NBR_LIGNE=0

    # initialize current theme number
    [[ ! -f "$TMP_DIR/liste.m" ]] && echo 1 > $TMP_DIR/liste.m

    # list WM installed themes
    find ~/GNUStep/library/WindowMaker/Themes -type d > $TMP_DIR/liste.t

    # get number of available themes

    wc -l $TMP_DIR/liste.t | awk '{print 1ドル}' | read NBR_LIGNE

    # browse for M value (i.e theme index) and update
    cat $TMP_DIR/liste.t | read M
    (( M += 1 ))
    (( M = M % NBR_LIGNE + 1 ))
    echo "$M" > $TMP_DIR/liste.t

    # set active the next theme (indexed with M) in list
    setstyle $(cat $TMP_DIR/liste.t | head -n$M | tail -n1)

    # exit on success
    return 0

    ---------------------------------------------------------------
    Juste une/deux remarques concernant cette astuce :

    + pour le fichier <liste.m>. Certaines distributions suppriment le contenu du /tmp au reboot. Du coup, on recommence toujours au premier lors du boot...
    Pour eviter cela, mettre le fichier dans son arbo personnelle...

    + l'avantage de réevaluer la liste des themes a chaque fois permet de prendre en compte ceux nouvellement installés

    + pour avoir un theme aleatoire de la liste, remplacer
    wc -l $TMP_DIR/liste.t | awk '{print 1ドル}' | read NBR_LIGNE
    par
    (( M = $RANDOM % $NBR_LIGNE +1 ))

    + potentiellement, ne fonctionne pas si on a desinstalle des themes. Corrige en ajoutant apres
    cat $TMP_DIR/liste.m | read M
    (( M = M % NBR_LIGNE )) ... ou autre solution de reinit...

    + ici l'ordre de visualisation des themes est 1ere ligne a derniere ligne contrairement a l'astuce

    NB: l'evaluation (( )) ne necessite pas de $ pour interpretation de la variable mais peut etre interessante en debug (set -x)