Ya hablé de nautilus-actions, una utilidad para añadir acciones al menú contextual de Nautilus, el administrador de ficheros de Gnome. Y en esta ocasión lo vamos a utilizar para añadir la acción de convertir una imagen de CD en formato BIN/CUE o MDF a ISO.
Shell Script
Para ello, primero deberemos crear un script de shell que haga el proceso, ayudándonos del paquete mdf2iso y de zenity, que contiene el comando gdialog, para mostrar los diálogos que se necesitan.
Creamos el script convert2iso.sh en ~/bin, con el siguiente contenido:
convert2iso.sh
#!/bin/sh # comprobamos que existan los paquetes que necesitamos [ ! -f `which mdf2iso` ] && echo "Se necesita el paquete mdf2iso. Ejecute sudo apt-get install mdf2iso zenity." && exit 1 [ ! -f `which gdialog` ] && echo "Se necesita el paquete zenity. Ejecute sudo apt-get install mdf2iso zenity." && exit 1 # parámetros SOURCE=$1 shift TARGET=$@ [ -z "$TARGET" ] && TARGET="${SOURCE}.iso" # obtenemos nombre del fichero TARGET=$(gdialog --title "Convertir a ISO" --inputbox "Nombre del fichero destino:" 100 100 "${TARGET}" 2>&1) if [ -z "$TARGET" ]; then exit 1 else gdialog --title "Advertencia" --yesno "Se va convertir el fichero $SOURCE en $TARGET. ¿Desea continuar?" 100 100 if [ $? -eq 0 ]; then mdf2iso $SOURCE $TARGET gdialog --title "Resultado de la operación" --msgbox "El fichero ha sido convertido a ISO" 100 100 else gdialog --title "Resultado" --msgbox "Se ha cancelado la operación." 100 100 fi fi
Como podemos ver, el script se encarga de recoger un primer parámetro con la ruta al fichero MDF o BIN a convertir (#8), y un segundo parámetro opcional con el fichero destino (#9-11), que en la acción nautilus no vamos a utilizar.
Con gdialog mostramos una ventana de diálogo para que el usuario introduzca el nombre del fichero destino (#14). Si introdujo un texto (#15) continuamos, y pedimos confirmación de nuevo con la ayuda de gdialog (#18). Si se produce la confirmación ejecutamos el comando mdf2iso, y mostramos otra ventana de diálogo confirmando la finalización del proceso.
Le damos permisos de ejecución a nuestro script con:
$ chmod +x ~/bin/convert2iso.sh
Acción Nautilus
Ahora abrimos nautilus-actions, que se encuentra en Sistema – Preferencias – Configuración de acciones de Nautilus.
Pulsamos el botón Añadir, y en la pestaña “Elementos del menú y acción” rellenamos los campos con estos valores:
- Etiqueta: Convertir a ISO
- Consejo: No consumas pron!
- Icono: gtk-cdrom
- Ruta: ~/bin/convert2iso.sh (o mejor aún: /home/tu_usuario/bin/convert2iso.sh).
- Parámetros: %M
En la pestaña “Condiciones“:
- Filenames: *.bin; *.mdf
Y en la pestaña “Advanced Conditions” seleccionamos “Archivos locales file“.
Aceptamos, y reiniciamos Nautilus. Buscamos un fichero BIN o MDF, le damos al botón derecho, y voila!
¿Quién ha dicho que el software libre no es maravilloso? ;)
Javier Pérez 
Ante todo gracias por el tutorial.
he seguido los pasos, pero al dar los permisos de ejecución con
$ chmod x ~/bin/convert2iso.sh
me sale lo siguiente
modo inválido: «x»
Pruebe `chmod –help’ para más información.
y no consigo que funcione. Si me puedes ayudar te lo agradecería
Un saludo
@Juan, el comando es este:
$ chmod +x ~/bin/convert2iso.sh
Aprecia el signo ‘+’ antes de ‘x’. En el artículo no aparece por un fallo en el editor, que me pongo a solucionar ahora mismo :)
gracias por contestar tan pronto.
Ya no me da error, pero no funciona.
Te digo los pasos que he seguido:
1. Crear un documento nuevo en /home/mi_usuario/bin, darle la terminación sh, abrirlo con un editor de texto y pegarle el contenido que indicas arriba.
2.- después he seguido todos los pasos, pero al ir a un archivo mdf, no me aparece la opción en el menú contextual.
Gracias
@Juan, puede ser porque debes reiniciar nautilus. Yo lo hago con el siguiente comando:
$ killall nautilus
Cuidado que te cerrará todos los nautilus que tuvieras abiertos.
cierto, eso es. No lo hice con killall, solo cerrándolo, aunque lo hice varias veces.
Gracias de nuevo, ya funciona.