Cajas de diálogo de SpaceFM únicas en su tipo

Después de realizar varias pruebas con el explorador de archivos SpaceFM y leer el manual de este programa pude percatarme que contiene sus propias cajas de diálogos, y lo mejor de todo es que pueden integrarse entre si, no será necesario abrir otro tipo de caja de diálogo para realizar una acción determinada. Gracias a que estas cajas de diálogos son propias del programa SpaceFM no tendrá que cargar un programa externo para usarlas, reduciendo así el consumo de memoria RAM y agilizando las operaciones entre estas.

Veamos varios ejemplos de caja de diálogo intentando imitar el funcionamiento normal de las otras cajas de diálogos, como pedir confirmación para continuar con un proceso dado, elegir una lista de opciones, etc.

  1. Notificación o alerta

     

    spacefm -g --hbox --icon notification-gsm-disconnected --hbox --label "Alerta de Seguridad Intruso en la RED" --button close

  2. Pedir confirmación para continuar con un proceso determinado:

     

    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

  3. Ingresar un texto pequeño determinado

     

    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:]]

  4. Ingresar varias líneas de texto

     

    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:]]

  5. Ingresar una contraseña determinada

     

    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:]]

  6. Visor de archivos de texto

     

    spacefm -g --hbox --icon gtk-edit --hsep --vbox --label "Visor de Archivos de Texto" --viewer /etc/fstab --button close > /dev/null

  7. Editor de archivos de texto

     

    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

    La imagen es parecida al del visor de texto.

  8. Caja de diálogo «selector de opciones» con menú desplegable y no editable.

     

    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

  9. Caja de diálogo selector de opciones con menú desplegable editable.

     

    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

    Imagen Parecida a la anterior.

  10. Caja de diálogo para listar opciones y seleccionar 1 acción.

     

    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:]]

  11. Caja de diálogo para listar opciones y seleccionar más de una acción.

     

    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:]]

    Imagen Parecida a la anterior.

  12. Caja de diálogo para seleccionar archivos o directorios:

     

    spacefm -g --chooser /media/ --button cancel set chooser1 /dev/null -- close --button ok | grep dialog_chooser1= | awk -F \' '{print $2}'

    – Opciones del selector de archivos
    –save (En ves de elegir fichero de entrada elige el de salida)
    –dir (Seleccionar Solo Carpetas)
    –multi (Seleccionar Multiples Archivos)
    –filter (Filtra el tipo de archivo que se mostrara pude ser mediante el mimetype o la extensión del fichero)

    Ejemplo:

    –filter text/plain
    –filter ‘*.txt’
    –filter ‘*.txt:*.doc:*.html’ (Método para filtrar varias extensiones separados por dos puntos : )

Esto fue solo un ejemplo de lo que estas cajas de diálogo pueden hacer, ya que en su mayoría pueden integrarse en una sola caja de diálogo formando una nueva caja única en su tipo:

  1. Por ejemplo, si deseamos una caja de diálogo para ingresar dos veces la contraseña, solo deberemos repetir la opción –password 2 veces. Veamos un ejemplo donde comprueba que las contraseñas concuerden antes de continuar a realizar alguna acción.

    Para proteger un PDF contra copia permitiendo la lectura (Este método solo es válido para trabajar con un solo 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

    Nota 1: Para evitar de expansión en la shell se encierran toda la linea de comandos a ejecutar entre comillas poniendo delante bash -c para que interprete dichas lineas, así podremos utilizar los operadores especiales como & | entre otros.
    Nota 2: Como los comandos se realizan entre comillas «» no se pueden usar estas mismas para separar los campos en blanco en su lugar deberán usar la comilla simple » quedando así ‘/camino/a/carpeta/fichero con espacio1’, si usan algunas alias como %password deberán primero separar con comillas dobles el porciento y el alias con el porciento entre comillas y se vuelve a encapsular con las comillas simples » quedando así ‘»»%»password1″‘ , si vamos a usar la simbología %f o %n deberán primero ponerla entre comillas dobles y luego entre comillas simples quedando así ‘»%f»‘ .
    Nota 3: Si desean protegerlo contra apertura solo deberán cambiar la opción owner_pw por user_pw.
  2. Para establecer un alias a cada dato que hayamos ingresado en la caja de diálogo podemos usar la siguiente forma (útil al crear scripts):

     

    eval "`spacefm -g --input --input --button ok`"

    Podemos comprobar que se le ha asignado el valor que ingresamos en la caja de diálogo input 1
    echo $dialog_input1

  3.  

  4. Buscar determinados ficheros y escoger abrirlos o borrarlos:

     

    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

    Complementos
    –hsep (linea horizontal)
    –vsep (linea vertical )
    –button (boton )
    –free-button (Boton libre, que puede posicionarse en otras áreas que no sea en el pie de la ventana)
    –hbox (para organizar los botones horizontalmente)
    –vbox (Para organizar los botones verticalmente)
    –window-icon (Incono de la ventana)
    –icon (Mostrar un incono)
    –label (Para ingresar el texto debajo del marco de la ventana)
    –image (Parecido a la opción –icon)
    –timeout (Cerrar automáticamente la ventana un vez termine la cuenta regresiva)
    –window-size (Seleccionar el tamaño de la ventana 600×400)

Existen otras formas de trabajar estas cajas de diálogos ya sea en scripts u otra vía, para mayor documentación refiérase a la pagina del manual de SpaceFM en la sección dialog.


6 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Daniel De la rosa dijo

    Impresionante … Sin Palabras. A probar!!!!

  2.   helena_ryuu dijo

    muy bueno!, exelente articulo, vamos a probar los tips ^^

  3.   Marcelo dijo

    Completísimo artículo. Este tipo de entradas, tan trabajadas y detalladas, son las que dan prestigio y fama a una web. ¡Felicitaciones!

  4.   hexborg dijo

    Increible. No tenía ni idea de que se pudiera hacer esto con spacefm. Parece más completo que xdialog o zenity. Muy buen artículo.

  5.   socrates_xD dijo

    Por algo me recuerda a Glade

  6.   AurosZx dijo

    No tenía idea de que SpaceFM podía hacer eso O.o