Barre ROX pour les disques

Post Reply
Message
Author
musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

Barre ROX pour les disques

#1 Post by musher0 »

Bonsoir à tous et à toutes !

Voici mon dernier péché, commis exprès pour vous ! :wink: Ç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
Les rétroactions constructives seront bien accueillies.

À 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 ! :-)
Attachments
BarreDisques-0.2c.pet
Comprend une amélioration du script de fermeture de la barre des disques si elle est à gauche.
(34.4 KiB) Downloaded 249 times
Barre-de-disques-en-haut.jpg
(6.06 KiB) Downloaded 255 times
BarreDisques-0.2b.pet
Version avec les icônes transparentes et le fichier &quot; ' &quot;. Désolé pour l'oubli.
(34.26 KiB) Downloaded 239 times
BarreDisques-0.2a.pet
(32.42 KiB) Downloaded 248 times
BarreDisques_2013-06-25.jpg
Barre ROX pour les disques, située à droite de l'écran. Si vous n'avez pas spécifié d'icône pour les &quot;i-nodes&quot;, tous vos disques seront représentés comme des dossiers.
(6.19 KiB) Downloaded 320 times
Last edited by musher0 on Mon 08 Jul 2013, 18:30, edited 3 times in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
ASRI éducation
Posts: 3197
Joined: Sat 09 May 2009, 12:10
Location: France
Contact:

#2 Post by ASRI éducation »

Bonjour musher0.
Ton utilitaire me semble être une excellente idée.
Promis, je le testerai très prochainement.
Cordialement,

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#3 Post by musher0 »

ASRI éducation wrote:Bonjour musher0.
Ton utilitaire me semble être une excellente idée.
Promis, je le testerai très prochainement.
Cordialement,
Brrr, j'attends tes réactions avec anxiété... ;)

En fait, c'est un projet semi-ancien pour
relancer une idée de "some1" sur le forum
anglophone. Il souhaitait avoir une "biblio"
de scripts pour que l'utilisateur puisse apprivoiser
facilement les panneaux ROX, afin de contrer
la tendance "bonbons pour les yeux" (eye-
candy) qui s'est installée dans Puppy. Je lui
avais promis de tenter quelque chose.
Faudrait p't-être que je l'avertisse, tiens.

Je te souhaite une excellente journée !

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#4 Post by Argolance »

Bonsoir,
ASRI wrote:Promis, je le testerai très prochainement.
Moi aussi! :wink:
Mais je me pose d'ores et déjà la question (question que je me suis posée lorsque j'ai fait "2pmount" car j'ai, en son temps, également exploré la possibilité d'un tel panneau ROX!) de savoir si ce panneau est statique ou dynamique, c'est-à-dire, s'il se met à jour automatiquement lorsqu'un disque est monté/démonté, un périphérique ajouté/retiré?

Cordialement.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#5 Post by musher0 »

Argolance wrote:Bonsoir,
ASRI wrote:Promis, je le testerai très prochainement.
Moi aussi! :wink:
Mais je me pose d'ores et déjà la question (question que je me suis posée lorsque j'ai fait "2pmount" car j'ai, en son temps, également exploré la possibilité d'un tel panneau ROX!) de savoir si ce panneau est statique ou dynamique, c'est-à-dire, s'il se met à jour automatiquement lorsqu'un disque est monté/démonté, un périphérique ajouté/retiré?

Cordialement.
La barre ne se rafraîchit pas automatiquement, mais la liste des disques dans le menu, si.

Hum... c'est que le script contient un appel au script de Der Shutzhund et RSF qui monte
tous les disques. Je vois, tu travailles différemment de moi. J'aime bien avoir tout à portée de main.

Supposons que tu as une barre de disques en haut de l'écran et que tu as
démonté ou monté un disque. Dans ce cas, pour rafraîchir la barre, en
théorie, il suffirait de relancer la barre au même endroit. Mon script peut
faire ça sans problème.

Je retourne donc à l'atelier pour prévoir le cas où seulement quelques
disques sont montés... Peut-être enlever la ligne qui appelle le script de
montage, tout simplement, et laisser aux usagers le soin de monter les
disques qu'ils veulent. Le script d'affichage n'aura pas de regrets à
afficher un disque ou dix.

A+

musher0
Last edited by musher0 on Tue 25 Jun 2013, 19:00, edited 1 time in total.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#6 Post by musher0 »

Erratum, nouvelle version avec des iĉones accordéon que j'avais oublié
d'inclure la première fois. Voir le premier message.

Merci de votre compréhension.
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#7 Post by musher0 »

En réponse à la question d'argolance relativement au montage
automatique des disques :

1) si on ne veut pas monter tous les disques, dièser la ligne 39.

2) si on veut démonter un disque, cela se fait directement de la
barre, par clic droit sur le disque. Le menu ROX apparaît, on
clique sur "Démonter". Voilà, c'est fait. L'icône du disque
changera, c'est tout. Aucun besoin d'un analyseur ("parser")
en fond de scène, ce qui alourdirait l'utilisation de l'UCT et
de la MEV.

3) Pour re-monter un disque ainsi démonté, utiliser
MuppyQuickMount ou Pmount, comme d'habitude. Ensuite, dans
la barre, on effleure la représentation du disque avec le
pointeur, et le disque reprend son icône de "monté".

J'espère que ça répond à la question.

Bonne fin de soirée !

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#8 Post by Argolance »

Bonjour,
Ça répond parfaitement à ma question.
1) si on ne veut pas monter tous les disques, dièser la ligne 39.
C'est là, probablement, que nos points de vue divergent un petit peu. Voilà évidemment une manipulation ultra simple pour un habitué de Puppy en particulier et de LINUX en général. Mais, à mon humble avis, s'il est possible d'épargner cela à l'utilisateur lambda, je pense qu'il est mieux de le faire, grâce à un quelconque bouton sur lequel il suffit de cliquer. :wink:
3) Pour re-monter un disque ainsi démonté, utiliser
MuppyQuickMount ou Pmount, comme d'habitude. Ensuite, dans
la barre, on effleure la représentation du disque avec le
pointeur, et le disque reprend son icône de "monté".
Ton panneau, outre les icônes des disques, ne pourrait-il pas comporter un bouton d'en tête donnant directement accès par clic gauche au programme de montage et comportant un menu contextuel par clic droit, ne serait-ce que pour proposer un petit fichier d'Aide?

Cordialement.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#9 Post by musher0 »

Allô, argolance.

Merci de ta rétroaction.

Ben... c'est toi qui posait la question ! C'est-à-dire un utilisateur dzêta, pî ou epsilon ??? J'aurais pas suggéré ça à un inconnu.

Je pensais tout simplement éliminer cette ligne dans la version finale.
D'autre part, ça accélère considérablement le script. L'utilisateur peut recourir directement au script de montage de Der-Shutzhund et RSH ou à MuppyQuickMount ou PMount.

Quant à ajouter un bouton offrant des fonctions complémentaires et une petite rubrique d'aide, c'est une excellente idée. Je vais voir ce que je peux faire. Maintenant que j'ai découvert comment scripter une barre ROX, c'est pas plus compliqué d'inclure un tel bouton ou icône.

Tiens, je pourrais déplacer le script de Der-Shutzhund et RSH en option au niveau de ce bouton. Ainsi, les deux modes de travail (disques tous montés ou disques montés selon les besoins) seraient accommodés.

À mon tour de poser une question : tu en penses quoi, du coussinage ? Je pourrais l'enlever si ça fait pas assez esthétique, ça ne dérange rien pour le reste.

On continue !

Bonne journée !

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#10 Post by Argolance »

Bonjour,
À mon tour de poser une question : tu en penses quoi, du coussinage ? Je pourrais l'enlever si ça fait pas assez esthétique, ça ne dérange rien pour le reste.
Ben, je suis pas fan fan fan, mais c'est toujours pareil, les goûts et les couleurs, ça va ça vient! :wink:
Quant à ajouter un bouton offrant des fonctions complémentaires et une petite rubrique d'aide, c'est une excellente idée. Je vais voir ce que je peux faire. Maintenant que j'ai découvert comment scripter une barre ROX, c'est pas plus compliqué d'inclure un tel bouton ou icône.
J'explore en ce moment une façon de faire fonctionner les applications au moyen d'un fichier AppRun et d'un fichier Appinfo.xml (voir le dossier /usr/local/apps) qui permettent de configurer un menu clic droit sur l’icône de ladite application (y compris dans le panneau ROX) et je me demande si ce n'est pas là tout ce qu'il te faut pour ton script...

Cordialement.

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#11 Post by musher0 »

Argolance wrote:Bonjour,
À mon tour de poser une question : tu en penses quoi, du coussinage ? Je pourrais l'enlever si ça fait pas assez esthétique, ça ne dérange rien pour le reste.
Ben, je suis pas fan fan fan, mais c'est toujours pareil, les goûts et les couleurs, ça va ça vient! :wink:
Quant à ajouter un bouton offrant des fonctions complémentaires et une petite rubrique d'aide, c'est une excellente idée. Je vais voir ce que je peux faire. Maintenant que j'ai découvert comment scripter une barre ROX, c'est pas plus compliqué d'inclure un tel bouton ou icône.
J'explore en ce moment une façon de faire fonctionner les applications au moyen d'un fichier AppRun et d'un fichier Appinfo.xml (voir le dossier /usr/local/apps) qui permettent de configurer un menu clic droit sur l’icône de ladite application (y compris dans le panneau ROX) et je me demande si ce n'est pas là tout ce qu'il te faut pour ton script...

Cordialement.
Hum... ce serait le fin du fin, mais c'est en langage XML qu'il faudrait écrire le script. Trrrès compliqué (pour moi, en tout cas).

J'ai déjà quelque chose prenant mon fidèle aemenu comme base. Voir l'image de ma version.)
Dans la version finale, j'enlèverai évidemment les éléments pas trop utiles ou pas pertinents ou dangereux pour M./Mme Lambda : édition récursive et retour au menu principal (y aura pas de "aemenu" principal !. Mais l'essentiel est là.

A+
Attachments
20.jpg
(53.8 KiB) Downloaded 239 times
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Pelo

ici Lambda ! qui n'a pas des tonnes de disques branchés

#12 Post by Pelo »

Lancer pmount à chaque fois me fatigue (tOoppy). Je ne dis rien mais çà me fatigue ! ... Ne vous occupez pas de moi, je ne faisais que passer. Je vous laisse travailler en paix.

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#13 Post by Argolance »

Bonjour,
Lancer pmount à chaque fois me fatigue (tOoppy).
2pmount se re/lance automatiquement dès qu'un nouveau périphérique est branché/retiré. La touche F12 lance/relance l'application. Mais peut-être qu'une icône dans la barre des tâches serait un plus qui rendrait la chose moins "fatigante"! :wink:

Cordialement!

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#14 Post by musher0 »

Je suis d'accord avec pelo. :wink:

Taper sur F12 est non seulement très fatigant (se soulever le bras, se placer la main vis-à-vis la touche, mettre son index en position, puis laisser retomber), mais en plus, il faut savoir viser... :wink:

Le plus simple serait d'associer Pmount à une pédale. :wink:
Plus près du sol, donc on sentirait moins l'effet de la gravité. :wink:

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
Argolance
Posts: 3767
Joined: Sun 06 Jan 2008, 22:57
Location: PORT-BRILLET (Mayenne - France)
Contact:

#15 Post by Argolance »

:D :D :D

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#16 Post by musher0 »

Bonjour, à tou(te)s.

Version 2c enlignée ci-dessus, dans le premier message. Remplacer les anciennes versions par celle-ci, s.v.p.

Améliorations :
* le script de fermeture ferme la barre à gauche seulement si elle est nommée "dsqs"; rien de bien grave, la v. antérieure n'était pas fautive, mais cela évite un désagrément.
* ajout d'une ligne de présentation dans l'aide.

Bonne journée !

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Post Reply