¿Cómo puedo configurar mutt como el cliente de correo predeterminado cuando hago clic en un 'mailto' en una página web?

10

Quería comenzar mutten la terminal cuando hago clic en alguna mailto:etiqueta en una página web. ¿Es eso posible? Actualmente se inicia Firefox, que realmente no estoy a favor; Es de carga lenta e innecesaria.

margarita
fuente

Respuestas:

11

Primero debe asegurarse de que haya un .desktoparchivo requerido por la especificación XDG. Para los programas GUI, existe la posibilidad de que ya exista un .desktoparchivo adecuado , para las aplicaciones de terminal, por lo general, debe crear el suyo propio. Consulte el directorio /usr/share/applicationsde archivos existentes. Tal vez ya hay un mutt.desktoparchivo. Si no hay, cree uno.

Luego edite el archivo ~/.local/share/applications/mimeapps.listy agregue la siguiente línea

[Default Applications]
x-scheme-handler/mailto=mutt.desktop;

Esto registra mutt con el mailtocontrolador. Puede confirmar un registro exitoso con

xdg-mime query default 'x-scheme-handler/mailto'

cuál debería salir mutt.desktop. Ahora puede hacer clic en "mailto" en cromo y un terminal debería aparecer con una instancia de mutt. Ni siquiera es necesario reiniciar la sesión de escritorio o el navegador.

Marco
fuente
1

Debe escribir un script que especifique el terminal en el que desea muttabrir. Luego, en Firefox, puede asociar este script con enlaces mailto. Por ejemplo, si está utilizando un terminador, puede crear el siguiente script.

#!/usr/bin/env bash
terminator -x "mutt '$@'"

En mi caso, tengo un terminador desplegable persistente, así que lo quiero en una nueva pestaña. También necesito una paleta de 256 colores, así que uso

#!/usr/bin/env bash
terminator --new-tab -x "TERM=xterm-256color; mutt '$@'"

FWIW este es mi script completo, que también muestra el terminador (si está oculto), usando el acceso directo Ctrl+ Space, y lo trae al frente.

#!/usr/bin/env bash

terminator --new-tab -x "TERM=xterm-256color; mutt '$@'"

# If necessary, unhide and focus terminator window.
windowlist=$(xprop -root | sed -rn 's/_NET_CLIENT_LIST_STACKING\(WINDOW\): window id # (.*)/\1/p' | tr -d ',')
terminator_visible=false
for i in $windowlist; do
  [[ $(xprop -id $i | grep WM_CLASS\(STRING\)) == 'WM_CLASS(STRING) = "terminator", "Terminator"' ]] && terminator_visible=true && term_id=$i
done

if [[ $terminator_visible == false ]]; then # it's hidden
  xdotool key --clearmodifiers ctrl+space
elif [[ $(xprop -id $(xdotool getactivewindow) | grep WM_CLASS\(STRING\)) != 'WM_CLASS(STRING) = "terminator", "Terminator"' ]]; then # it's visible, but not active
  xdotool windowactivate $term_id 2> /dev/null # Gives error; not sure why. XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
fi
Gavilán
fuente
-1

¿Qué entorno de escritorio estás ejecutando? Debe verificar la configuración del controlador de tipo MIME sobre cómo configurar un controlador específico para este tipo de cosas.


fuente
OpenBox, simplemente no sé cómo obtener el mimetype, no es un archivo, no puedo simplemente ejecutar 'mimetype / path / to / file' para identificarlo
daisy