Я реализовал некоторые сценарии оболочки к своему контексту дельфина menue. В рамках сценариев оболочек я выполняю некоторые команды, которые занимают время.
Мой вопрос: действительно ли возможно реализовать некоторый код в (a) сценарий оболочки, так, чтобы раскрывающееся окно или строка состояния в поле уведомления (kde плазма) обнаружились?
Вот сценарий, на котором я хочу использовать индикатор выполнения:
#!/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
Объяснение: сценарий очень удобен для последующей обработки изображений (jpegs) к разумному размеру для протоколов изображения (ppt, PDF, и т.д.) или whatelse...
Ответ на мой вопрос работает, но не самый красивый ;) Это испытывает недостаток в непрерывном индикаторе выполнения в проценте.
Добавляют к сценарию:
(#your commands) | zenity --progress --auto-close --title="Post-Process Pictures" --text="Rendering pictures..." --pulsate
Это откроет окно с пульсирующей панелью. Окно открыто, пока команды все еще работают.
Полный сценарий теперь похож на это:
#!/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
Лучший, Benjamin.
Около: Я использую сценарий в сочетании с .desktop файлом, так, чтобы я мог использовать его через контекст щелчка левой кнопкой menue у дельфина. Просто создайте resize.desktop файл в/usr/share/kservices5/ServiceMenus со следующим содержанием:
[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)