# 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)
# Re: Changer automatiquement les thêmes WM
Posté par Quzqo . En réponse au message [X-Window] Changer automatiquement les thêmes WM. Évalué à 1.
#!/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)