Po kilku testach z eksploratorem plików SpaceFM i czytając instrukcję tego programu zauważyłem, że zawiera on własne okna dialogowe, a najlepsze jest to, że można je ze sobą zintegrować, nie będzie konieczne otwieranie innego typu okna dialogowego w celu wykonania określonej akcji . Dzięki temu, że te okna dialogowe są specyficzne dla programu SpaceFM nie będziesz musiał ładować zewnętrznego programu, aby z nich korzystać, zmniejszając w ten sposób zużycie pamięci RAM i przyspieszając operacje między nimi.
Spójrzmy na kilka przykładów okien dialogowych próbujących imitować normalne działanie innych okien dialogowych, takich jak pytanie o potwierdzenie kontynuacji danego procesu, wybór listy opcji itp.
- Powiadomienie lub alert
spacefm -g --hbox --icon notification-gsm-disconnected --hbox --label "Alerta de Seguridad Intruso en la RED" --button close
- Poproś o potwierdzenie, aby kontynuować określony proces:
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
- Wprowadź pewien mały tekst
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:]]
- Wprowadź wiele wierszy tekstu
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:]]
- Wprowadź określone hasło
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:]]
- Przeglądarka plików tekstowych
spacefm -g --hbox --icon gtk-edit --hsep --vbox --label "Visor de Archivos de Texto" --viewer /etc/fstab --button close > /dev/null
- Edytor plików tekstowych
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
Obraz jest podobny do tego z przeglądarki tekstu.
- Okno dialogowe «selektor opcji» z menu rozwijanym, którego nie można edytować.
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
- Okno dialogowe wyboru opcji z edytowalnym menu rozwijanym.
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
Obraz podobny do poprzedniego.
- Okno dialogowe, w którym można wyświetlić listę opcji i wybrać 1 akcję.
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:]]
- Okno dialogowe umożliwiające wyświetlenie opcji i wybranie więcej niż jednej akcji.
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:]]
Obraz podobny do poprzedniego.
- Okno dialogowe do wyboru plików lub katalogów:
spacefm -g --chooser /media/ --button cancel set chooser1 /dev/null -- close --button ok | grep dialog_chooser1= | awk -F \' '{print $2}'
- Opcje selektora plików
–Zapisz (zamiast wybierać plik wejściowy, wybierz plik wyjściowy)
–Dir (tylko wybierz foldery)
–Multi (wybierz wiele plików)
–Filtruj (filtruje typ pliku, który zostanie wyświetlony, może to być typ MIME lub rozszerzenie pliku)przykład:
–Filtruj tekst / zwykły
–Filtr „* .txt”
–Filter „* .txt: *. Doc: *. Html” (metoda filtrowania wielu rozszerzeń oddzielonych dwukropkami :)
To był tylko jeden przykład tego, co potrafią te okna dialogowe, ponieważ w większości przypadków można je zintegrować w jednym oknie dialogowym, tworząc nowe, jedyne w swoim rodzaju okno:
- Na przykład, jeśli chcemy, aby w oknie dialogowym dwukrotnie wpisano hasło, będziemy musieli powtórzyć opcję –password tylko 2 razy. Spójrzmy na przykład, w którym sprawdza, czy hasła są zgodne, przed kontynuowaniem wykonywania jakiejkolwiek czynności.
Aby zabezpieczyć plik PDF przed kopiowaniem, zezwalając na odczyt (ta metoda dotyczy tylko pracy z jednym plikiem 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
Uwaga 1: Aby uniknąć rozwijania w powłoce, należy ująć całą linię poleceń, która ma zostać wykonana, w cudzysłów, umieszczając przed nią bash -c w celu zinterpretowania tych linii, dzięki czemu możemy użyć specjalnych operatorów, takich jak & | pośród innych.Uwaga 2: Ponieważ polecenia są wykonywane w cudzysłowie «», nie można ich używać do oddzielania pustych pól, zamiast tego muszą one używać pojedynczego cudzysłowu », pozostawiając„ / ścieżka / do / folderu / pliku ze spacją1 ”, jeśli używają niektórych aliasy, takie jak% hasło, muszą najpierw oddzielić procent podwójnymi cudzysłowami, a alias procentami między cudzysłowami i są ponownie zamykane pojedynczymi cudzysłowami »w ten sposób pozostawiając '» »%» hasło1 ″', jeśli zamierzamy użyć% dla symboliki% n musi najpierw umieścić ją w podwójnych cudzysłowach, a następnie w apostrofach, tworząc w ten sposób „»% f »”.Uwaga 3: Jeśli chcesz zabezpieczyć go przed otwarciem, wystarczy zmienić opcję owner_pw na user_pw. - Aby ustalić alias do każdej z danych, które wprowadziliśmy w oknie dialogowym, możemy skorzystać z poniższego formularza (przydatnego przy tworzeniu skrypty):
eval "`spacefm -g --input --input --button ok`"
Możemy sprawdzić, czy wartość, którą wpisujemy w oknie dialogowym została przypisana
input 1
echo $dialog_input1 - Wyszukaj określone pliki i wybierz ich otwarcie lub usunięcie:
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
Akcesoria
–Hsep (linia pozioma)
–Vsep (linia pionowa)
–Przycisk (przycisk)
–Bezpłatny przycisk (przycisk wolny, który można umieścić w innym miejscu niż u dołu okna)
–Hbox (do poziomego rozmieszczenia przycisków)
–Vbox (aby rozmieścić przyciski w pionie)
–Ikona-okna (ikona okna)
–Ikona (Pokaż ikonę)
–Label (aby wprowadzić tekst poniżej ramy okna)
–Obraz (podobny do –ikona opcja)
–Timeout (automatycznie zamknij okno po zakończeniu odliczania)
–Rozmiar okna (wybierz rozmiar okna 600 × 400)
Istnieją inne sposoby pracy z tymi oknami dialogowymi w skryptach lub w inny sposób. Więcej dokumentacji można znaleźć na stronie instrukcja SpaceFM w dziale Dialog.
Imponujące ... bez słów. Zatwierdzać!!!!
bardzo dobrze!, świetny artykuł, wypróbujmy wskazówki ^^
Bardzo kompletny artykuł. Tego typu wpisy, tak rozbudowane i szczegółowe, zapewniają witrynie prestiż i sławę. Gratulacje!
Niesamowity. Nie miałem pojęcia, że można to zrobić za pomocą spacefm. Wydaje się pełniejsze niż xdialog czy zenity. Bardzo dobry artykuł.
Coś przypomina mi Glade
Nie miałem pojęcia, że SpaceFM może to zrobić Oo