После нескольких тестов с файловым проводником СпейсFM и прочитав руководство к этой программе, я понял, что она содержит свои собственные диалоговые окна, и, что лучше всего, они могут быть интегрированы друг с другом, нет необходимости открывать диалоговое окно другого типа для выполнения определенного действия . Благодаря тому, что эти диалоговые окна специфичны для программы СпейсFM вам не нужно загружать внешнюю программу для их использования, что снижает потребление оперативной памяти и ускоряет операции между ними.
Давайте рассмотрим несколько примеров диалоговых окон, пытающихся имитировать нормальную работу других диалоговых окон, таких как запрос подтверждения для продолжения данного процесса, выбор списка параметров и т. Д.
- Уведомление или предупреждение
spacefm -g --hbox --icon notification-gsm-disconnected --hbox --label "Alerta de Seguridad Intruso en la RED" --button close
- Запросите подтверждение, чтобы продолжить определенный процесс:
spacefm -g --hbox --icon gtk-stop --hbox --label "Esta seguro de continuar" --button no echo "falso" -- close --button yes echo "verdad" -- close 2>&1 |grep verdad > /dev/null && comando-a-continuación
- Введите конкретный небольшой текст
spacefm -g --hbox --icon gtk-edit --vbox --label "Teclee un texto cualquiera" --input --button ok | grep dialog_input1= | sed 's/dialog_input1=//' | awk -F "'*" '{print $2}' | grep [[:alnum:]]
- Введите несколько строк текста
spacefm -g --hbox --icon gtk-edit --vbox --label "Teclee varias lineas de texto cualquiera" --window-size 500x300 --input-large --button ok | grep dialog_inputlarge1= | sed 's/dialog_inputlarge1=//' | awk -F "'*" '{print $2}' | grep [[:alnum:]]
- Введите конкретный пароль
spacefm -g --hbox --icon locked --vbox --label "Tecle la contraseña" --password --button ok | grep dialog_pasword1= | sed 's/dialog_password1=//' | awk -F "'*" '{print $2}' | grep [[:alnum:]]
- Просмотрщик текстовых файлов
spacefm -g --hbox --icon gtk-edit --hsep --vbox --label "Visor de Archivos de Texto" --viewer /etc/fstab --button close > /dev/null
- Редактор текстовых файлов
spacefm -g --hbox --icon gtk-edit --hsep --vbox --label "Visor de Archivos de Texto" --editor /etc/fstab --button cancel source /dev/null -- close --button save source $HOME/fichero-salida.txt -- close > /dev/null
Изображение похоже на то, что в программе просмотра текста.
- Диалоговое окно «селектор опций» с выпадающим меню и не редактируется.
spacefm -g --label "Seleccione la acción a realizar" --drop "Listar" "Tamaño" "Borrar" "null" -- "Listar" --button cancel set drop1 "null" -- close --button ok | grep dialog_drop1= | sed 's/dialog_drop1=//' | awk -F "'*" '{print $2}' | sed 's/Listar/ls/' | sed 's/Tamaño/du -sh/' | sed 's/Borrar/rm -r/' | grep -v null
- Диалоговое окно выбора параметров с редактируемым раскрывающимся меню.
spacefm -g --label "Seleccione la acción a realizar" --combo "Listar" "Tamaño" "Borrar" "null" -- "Listar" --button cancel set combo1 "null" -- close --button ok | grep dialog_combo1= | sed 's/dialog_combo1=//' | awk -F "'*" '{print $2}' | sed 's/Listar/ls/' | sed 's/Tamaño/du -sh/' | sed 's/Borrar/rm -r/' | grep -v null
Изображение Подобно предыдущему.
- Диалоговое окно со списком опций и выбором 1 действия.
spacefm -g --label "Seleccione la acción a realizar" --list "Listar" "Tamaño" "Borrar" -- "Listar" --button cancel --button ok | grep dialog_list1= | sed 's/dialog_list1=//' | awk -F "'*" '{print $2}' | sed 's/Listar/ls/' | sed 's/Tamaño/du -sh/' | sed 's/Borrar/rm -r/' | grep [[:alnum:]]
- Диалоговое окно для вывода списка параметров и выбора нескольких действий.
spacefm -g --label "Seleccione la acción a realizar" --mlist "Opcion 1" "Opcion 2" "Opción 3" -- "Listar" --button cancel --button ok echo dia-"%"mlist1 -- close | grep dia- | sed 's/dia- //g' | sed 's/dialog_mlist1=//' | grep [[:alnum:]]
Изображение Подобно предыдущему.
- Диалоговое окно для выбора файлов или каталогов:
spacefm -g --chooser /media/ --button cancel set chooser1 /dev/null -- close --button ok | grep dialog_chooser1= | awk -F \' '{print $2}'
- Параметры выбора файлов
–Сохранить (вместо выбора входного файла выберите выходной файл)
–Dir (только для выбора папок)
–Multi (Выбрать несколько файлов)
–Filter (фильтрует тип отображаемого файла, это может быть mimetype или расширение файла)пример:
–Фильтровать текст / обычный
–Фильтр '* .txt'
–Filter '* .txt: *. Doc: *. Html' (метод фильтрации нескольких расширений, разделенных двоеточиями :)
Это был лишь один из примеров того, что могут делать эти диалоговые окна, поскольку они в большинстве случаев могут быть интегрированы в одно диалоговое окно, образуя новое, единственное в своем роде окно:
- Например, если мы хотим, чтобы диалоговое окно вводило пароль дважды, нам нужно будет только повторить параметр –password 2 раза. Давайте посмотрим на пример, в котором он проверяет соответствие паролей, прежде чем предпринимать какие-либо действия.
Чтобы защитить PDF-файл от копирования, разрешив чтение (этот метод действителен только для работы с одним PDF-файлом):
spacefm -g --label "Teclee la contraseña" --password --label "Repita la Contraseña" --password --mlist "Printing" "DegradedPrinting" "ModifyContents" "CopyContents" "ScreenReaders" "ModifyAnnotations" "AllFeatures" --button aplicar bash -c "[ '"%"password1' = '"%"password2' ] && pdftk '"%f"' output '`basename %n | sed 's/\.[[:alnum:]]*$//'`-locked.pdf' allow "%"mlist1 owner_pw '""%"password1"' " -- close
Примечание 1. Чтобы избежать расширения в оболочке, заключите всю командную строку, которая будет выполнена, в кавычки, поставив перед ней bash -c, чтобы она интерпретировала эти строки, чтобы мы могли использовать специальные операторы, такие как & | среди прочего.Примечание 2: поскольку команды заключаются в кавычки «», их нельзя использовать для разделения пустых полей, вместо этого они должны использовать одинарную кавычку », таким образом оставляя« / путь / к / папке / файлу с пробелом1 », если они используют некоторые псевдонимы, такие как% password, должны сначала разделить процент с помощью двойных кавычек, а псевдоним с процентом между кавычками, и он повторно инкапсулируется в одинарные кавычки », таким образом оставляя« »»% »password1 ″ ', если мы собираемся использовать% Для символов% n следует сначала заключить его в двойные кавычки, а затем в одинарные, таким образом получится '»% f»'.Примечание 3: если вы хотите защитить его от открытия, вам просто нужно изменить параметр owner_pw на user_pw. - Чтобы установить псевдоним для всех данных, которые мы ввели в диалоговом окне, мы можем использовать следующую форму (полезно при создании скрипты):
eval "`spacefm -g --input --input --button ok`"
Мы можем проверить, что значение, которое мы вводим в диалоговом окне, было присвоено
input 1
echo $dialog_input1 - Найдите определенные файлы и выберите их открытие или удаление:
find %F -name *.txt > $HOME/.derr && SpaceFM -g --mlist @$HOME/.derr --button abrir bash -c "mimeopen -M "%"mlist1" --button borrar bash -c "rm "%"mlist1" – close && rm $HOME/.derr
Аксессуары
–Hsep (горизонтальная линия)
–Vsep (вертикальная линия)
–Кнопка (кнопка)
–Свободная кнопка (свободная кнопка, которая может располагаться не в нижней части окна)
–Hbox (для размещения кнопок по горизонтали)
–Vbox (чтобы расположить кнопки вертикально)
–Window-icon (Значок окна)
–Icon (Показать значок)
–Label (для ввода текста под рамкой окна)
–Image (аналогично параметру –icon)
–Timeout (автоматически закрывать окно по окончании обратного отсчета)
–Размер окна (выберите размер окна 600 × 400)
Существуют и другие способы работы с этими диалоговыми окнами: в сценариях или другим способом; дополнительную документацию см. На странице руководство СпейсFM в разделе Диалог.
Впечатляет ... Слов нет. Одобрить!!!!
очень хорошо !, отличная статья, давайте попробуем советы ^^
Очень полная статья. Такие тщательно продуманные и подробные записи придают сайту престиж и известность. Поздравляю!
Удивительный. Я понятия не имел, что это можно сделать с помощью spacefm. Это кажется более полным, чем xdialog или zenity. Очень хорошая статья.
Что-то напоминает мне Глэйд
Я понятия не имел, что SpaceFM может это сделать Oo