1 votes

Barre de progression Fenêtre / Barre dans la zone de notification pour un Shell Shellen cours d'exécution

J'ai ajouté quelques Shell Shell à mon menu contextuel dolphin. Dans les Shell, je lance des commandes qui prennent un certain temps.

Ma question est la suivante : est-il possible d'implémenter un code dans le Shell Shell, afin qu'une fenêtre pop up ou une barre d'état s'affiche dans le champ de notification (plasma kde) ?

Voici le script sur lequel je souhaite utiliser la barre de progression :

#!/bin/bash

mkdir small
cp *.jpg small
cp *.JPG small
cd small

for i in *.jpg; do
 if [ -e "$i" ]; then
   file=`basename "$i" .jpg`
   mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
 fi
done

for i in *.JPG; do
 if [ -e "$i" ]; then
   file=`basename "$i" .JPG`
   mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
 fi
done

Explication : Le script est très pratique pour post-traiter des images (jpegs) à une taille raisonnable pour des protocoles d'images (ppt, pdf, etc.) ou autre...

1voto

benjamin10 Points 519

La réponse à ma question est le travail mais pas le plus beau ;) Il manque la barre de progression continue en pourcentage.

Ajouter au script :

 (#your commands) | zenity --progress --auto-close --title="Post-Process Pictures" --text="Rendering pictures..." --pulsate

Une fenêtre s'ouvre alors avec la barre de pulsation. La fenêtre reste ouverte tant que les commandes fonctionnent.

Le script complet ressemble maintenant à ceci :

#!/bin/bash

(mkdir small
cp *.jpg small
cp *.JPG small
cd small

for i in *.jpg; do
 if [ -e "$i" ]; then
   file=`basename "$i" .jpg`
   mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
 fi
done

for i in *.JPG; do
 if [ -e "$i" ]; then
   file=`basename "$i" .JPG`
   mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
 fi
done) | zenity --progress --auto-close --title="Post-Process Pictures" --text="Rendering pictures..." --pulsate

Meilleur, Benjamin.

Pulsating Progress Bar

De plus, j'utilise le script en combinaison avec un fichier .desktop, afin de pouvoir l'utiliser via le menu contextuel du clic gauche dans Dolphin. Il suffit de créer un fichier resize.desktop dans /usr/share/kservices5/ServiceMenus avec le contenu suivant :

[Desktop Entry]
Actions=resize_pictures
Icon=transform-crop-resize
MimeType=image/jpeg;
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel

[Desktop Action resize_pictures]
Exec=sh pathtoyourscript/resize_pictures
Icon=transform-scale
Name=Resize Image(s)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X