Voici mon dernier péché, commis exprès pour vous ! Ça rejoint en
partie les travaux d'argolance et d'ASRI sur la barre ROX, sauf qu'ici
tout se passe sans interface, c'est-à-dire qu'on travaille sous console ou
par l'intermédiaire d'un menu.
Il s'agit de la création d'une barre ROX contenant les icônes des disques montés.
Voir l'illustration. Si vous avez besoin d'espace sur votre écran, cette barre
remplacera avantageusement l'empilade d'icônes au bas de l'écran Puppy.
L'archive contient un fichier desktop pour vous faciliter la vie. Ce petit
utilitaire est indépendant de tout gestionnaire de fenêtres. Vous pouvez
aussi mettre le script "disques-aragon-mod.sh" en icône sur votre bureau
et le décorer avec sa propre icône.
Les dépendances sont jointes. Le code commenté est présenté ci-dessous.
À la fin du script, j'offre quelques suggestions.
Merci à :
- aragon (pour le "germe" du menu dynamique des disques),
der-schutzhund et SFR (pour le script détecteur de partitions)
l'auteur inconnu de tac
Decklin Foster pour aemenu
À la bonne vôtre.
musher0
~~~~~~~~~~~~
Ah, les artistes distraits ! Foutue mémoire ! Désolé, j'avais oublié
un petit fichier important, non compris dans la v. 0.2 et la v. 0.2a.
La version 0.2b comprend des "coussins" basés sur des icônes transparents de diverses dimensons. Il s'agit d'un document minimal
(contenant une simple apostrophe), qu'on peut associer à un de ces icônes.
La taille des icônes va de 48x48 à 6x24. Cela donne de la souplesse
à la barre ROX, qui par défaut est assez raide, sans tralala.
Le script met automatiquement deux "coussins" entre les icônes des
disques si vous choisissez une barre en haut ou en bas de l'écran. Voir
la 2e illustration. Les barres verticales n'ont pas de coussin.
La première fois qu'apparaîtra la barre en haut ou en bas, faites un clic droit sur le fichier " ' " et choisissez-lui une icône de la largeur qui vous convient. Avec une icône de 6x24, les représentations de disques seront
plus rapprochées qu'avec une icône de 48x48, évidemment.
Cela fait, dans certains Puppies, il faut retourner sous la console initiale et
revenir (en tapant "xwin [nom de votre gestionnaire de fenêtres]" pour
voir le véritable résultat.
Quant aux icônes transparentes, elles ne le sont pas complètement, car
ROX n'accepte pas d'icônes qui n'ont aucune couleur dedans. L'astuce a
été de choisir une icône contenant du "vide", d'isoler ce "vide, de grossir
l'image à la dimension voulue, puis de placer dedans un unique point de
couleur gris pâle. ROX est content, il n'y voit que du feu; l'oeil humain ne
voit pas le minuscule point, les icônes nous semblent vraiment transparentes.
Désolé pour l'oubli.
~~~~~~~~~~~~~~
Code: Select all
#!/bin/sh
# $MBINS/cree-pan-dsqs.sh
# Objectif : Regrouper les icônes des disques montés dans un panneau ROX.
# Dépendances : tac, cat et "mount-all-drives.sh" par der-schutzhund et SFR.
# S'appelle par un des scripts "barre-dsqs-?.sh", ci-joints.
####
set -xe # Début du débogage.
# Fonction pour tenir compte de l'espace moindre sur les côtés.
function hautbas {
if [ "$PAN" != "right" -a "$PAN" != "left" ];then
echo " <icon label=\"'\">/root/my-documents/'</icon>" >> $DSQS
echo " <icon label=\"'\">/root/my-documents/'</icon>" >> $DSQS
fi
}
#
DSQS="/root/.config/rox.sourceforge.net/ROX-Filer/pan_dsqs"
# On vérifie si une barre de disques est déjà en place. Si oui, on l'enlève.
if [ -f "$DSQS" ];then
echo "`grep side ~/.config/rox.sourceforge.net/ROX-Filer/pan_dsqs | cut -d= -f2 | cut -d'>' -f1`" > /tmp/A
A=`cat /tmp/A | cut -d\" -f2`
case $A in
Bottom) kill "`psid -s stalonetray`" |>/dev/null 2>&1
rox -b= ;;
Right) rox -r= ;;
Left) rox -l= ;;
Top) rox -t= ;;
esac
# Ne pas mettre *) exit ;; # Ça déflamboxe l'affaire.
fi
# Section qui crée la barre des disques.
rm -f $DSQS # On recrée le panneau à chaque fois.
PAN="`cat /tmp/pan`" # Petit fichier temporaire créé par le script d'appel
[ "$PAN" = "bottom" ] && kill "`psid -s stalonetray`" |>/dev/null 2>&1 # À tout hasard.
echo "<?xml version=\"1.0\"?>" > $DSQS
echo "<panel side=\"$PAN\">" >> $DSQS
echo "<options style=\"2\" width=\"36\" avoid=\"1\" xinerama=\"0\" monitor=\"0\"/>" >> $DSQS
echo "<start>" >> $DSQS
/root/my-applications/bin/mount-all-drives.sh
# On fait appel au script par der-schutzhund et SFR pour monter tous les disques.
ls /mnt | grep [hs]d | grep -v msdos > /tmp/dsq.lst # On en fait une liste.
wc -l /tmp/dsq.lst | cut -d' ' -f1 > /tmp/lignes # On retient le décompte des lignes de la liste.
# Pour équilibrer l'apparence de part et d'autre de la barre.
a="`cat /tmp/lignes`"
expr $a / 2 > /tmp/demi
b="`cat /tmp/demi`"
for i in `cat /tmp/dsq.lst | head -n $b`
do
echo " <icon label=\"$i\">/mnt/$i</icon>" >> $DSQS
hautbas
done
echo "</start>" >> $DSQS
echo "<end>" >> $DSQS
for i in `tac /tmp/dsq.lst | head -n $b`
do
echo " <icon label=\"$i\">/mnt/$i</icon>" >> $DSQS
hautbas
done
echo "</end>" >> $DSQS
echo "</panel>" >> $DSQS
# La barre étant créée, on la met en place. :-)
rox --"$PAN"=dsqs
# On nettoie...
rm /tmp/lignes
rm /tmp/dsq.lst
rm /tmp/demi
rm /tmp/pan
rm /tmp/A # On nettoie la référence de vérification.
set +xe # Fin du débogage.
# et c'est fini ! :-)
#
# Raffinement suggéré :
# Changer les paramètres du gestionnaire d'événements de Puppy pour
# ne conserver qu'une icône générale pour les disques en bas de l'écran.
# Rappel :
# Pour enlever cette barre des disques, faire un clic droit dessus,
# faire un clic gauche sur "Remove panel" et confirmer.
# Note :
# La mise en place des barres ROX prend toujours quelques secondes.
# Sur un vieux teuf-teuf, jusqu'à une minute...
# "Tout vient à point à qui sait attendre...", dit le proverbe ! :-)