martes, 1 de diciembre de 2015

Añadir acciones al menu contextual de Nemo

Hace bastantes años que dejé de usar el navegador de archivos Nautilus (el de Gnome), que he sustituido por el Nemo, que sacaron los de LinuxMint/Cinnamon y que es un 'fork' de aquel… pero mucho más práctico. Y una de las cosas que tenía pendientes es la incorporación de 'acciones' a su Menu contextual.
Empezaré recordando que el Menú contextual (de Nemo) es la ventana que se abre cuando clicas con botón derecho ratón sobre una carpeta o un archivo… y que las 'acciones' son la serie de opciones que te presenta en esa ventana, por si quieres elegir alguna.  
(Nemo ya ofrece, por defecto, algunas muy interesantes, como 'abrir en un terminal', 'abrir con permisos administrativos', etc pero siempre es interesante poder 'personalizarlo' aún más). 
Y como el otro día me topé, en un magnífico Blog, el del 'maestro' Hatteras, con una entrada que hablaba de esto, me puse a ello. Así que voy a resumir aquí cómo hacer para añadir alguna más… dándole las gracias, también, una vez más, a 'maese' Neurus, del Foro Espacio Linux, que siempre resuelve mis dudas de novato inexperto.
Por tanto, 'afinados' mis conocimientos gracias a estos buenos maestros...
¿Cómo crear una nueva acción, en el Menu contextual de Nemo?
Bueno pues, para crear una nueva acción, no tienes que hacer nada más que añadir, bien a la carpeta /home/[usuario]/.local/share/nemo/actions (y servirá solamente para ese usuario), o bien a la carpeta /usr/share/nemo/actions (con lo cual la 'acción' estará disponible para todos los usuarios) un archivo 'especial', que se tiene que llamar nombre-accion.nemo_action, y que debe tener la siguiente sintaxis:
[Nemo Action]
Active=true
Name=(aquí, fíjate que siempre es sin espacio después del signo =, pones el texto del menú contextual que quieres que aparecerá en Nemo)
Comment=(aqui, si quieres, pones el comentario que aparecerá en la barra de estado de Nemo)
Exec=(aquí, el nombre del archivo ejecutable, o el comando que quieres que se ejecute)
Icon-Name=(aquí, el icono que quieras que te aparezca. Es cómodo usar el de alguna aplicación instalada, poniendo solo el nombre de ésta)
Selection=S (mejor poner siempre 'S' que significa que la acción se ejecuta en un solo archivo (el seleccionado). Se podría poner M (para múltiples archivos) o A (en mayúscula, de 'any' si queremos que se ejecute tanto si seleccionamos uno o múltiples archivos. Pero estas otras opciones no siempre funcionan)
Extensions=(aquí hay que relacionar, separadas por 'punto y coma' (;) las extensiones de los archivos en cuyo menú contextual deberá aparecer esa nueva acción; si se quiere que se ejecute la acción en un archivo 'con cualquier extensión' hay que poner Extensions=any
Bien, pues hecho esto, con la acción que quieras, y guardado el archivo, basta cerrar Nemo para que, al abrirlo de nuevo, esté activada esa acción… y si lo has hecho bien tiene que funcionar.

Pero voy a poner un ejemplo concreto
En la última entrada hablaba yo de haber simplificado el tema de usar con bastante frecuencia el comando
mogrify -resize 50% archivo_de_imagen
haciéndolo a través de un 'alias' de consola. Pero hay una solución mucho más 'elegante', que es crear una 'acción' de Nemo y, con un simple clic de ratón tenerlo resuelto.
Se trata, en esencia, de crear esta acción, en el menú contextual de Nemo y así, cuando pincho en un archivo de imagen con el botón derecho del ratón, me saldrá algo como esto...

y con un solo clic redimensiono la imagen elegida.
Bueno pues, para conseguirlo, basta crear este archivo
[Nemo Action]
Active=true
Name=Redimensionar imagen al 50%
Comment=redimensionar con mogrify -resize
Exec=mogrify -resize 50% "%F"
Icon-Name= shotwell
Selection=S
Extensions=png;PNG;jpg;JPG;jpeg;JPEG;bmp;BMP;
#NOTAS
# el parámetro "%F" indica que la acción se aplique sobre el archivo seleccionado
# el archivo hay que guardarlo como 'nombre_acción.nemo_action'

que guardo con el nombre de 'redimensionarIMG50.nemo_action', como antes comentaba, bien en /home/[usuario]/.local/share/nemo/actions, o bien a la carpeta /usr/share/nemo/actions
(Por cierto, si lo guardas en las dos… te aparecerá duplicado en el menú contextual).
Y solucionado, de esta forma tan 'elegante'

2 comentarios:

  1. ¡Hola!
    Yo tengo el problema de que vengo de Kde, de Dolphin, y allí, cuando tienes dos paneles abiertos, arrastras un archivo o carpeta de un panel a otro y te sale la opción copiar/mover/cancelar.
    Es lo que más echo en falta en Nemo, porque de lo demás está bastante a la par que Dolphin para el empleo que le doy.
    ¿Sabes qué solución tiene eso, o quién la puede dar?
    Gracias de antemano.

    ResponderEliminar
  2. pues yo creo que, en Nemo primero, con F3, creas un segundo panel y luego, puesto en un archivo o carpeta, con Mover a... (o Copiar a...) 'otro panel', solucionado.

    ResponderEliminar