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

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

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, lo cual realmente no me gusta; Es una carga lenta e innecesaria.

Respuesta1

Primero debe asegurarse de que haya un .desktoparchivo requerido por la especificación XDG. Para los programas GUI es muy probable que ya exista un .desktoparchivo adecuado; para las aplicaciones de terminal normalmente hay que crear uno propio. Consulte el directorio /usr/share/applicationspara ver los archivos existentes. Quizás ya exista un mutt.desktoparchivo. Si no lo 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 al perro callejero con el mailtomanejador. Puede confirmar un registro exitoso con

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

que debería dar salida mutt.desktop. Ahora puede hacer clic en "mailto" en Chrome y debería aparecer una terminal con una instancia de mutt. Ni siquiera es necesario reiniciar la sesión de escritorio o el navegador.

Respuesta2

Debe escribir una secuencia de comandos que especifique la terminal en la que desea muttabrir. Luego, en Firefox, puede asociar esta secuencia de comandos con enlaces de correo. Por ejemplo, si está utilizando Terminator, 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 pestaña nueva. 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

Respuesta3

¿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.

Respuesta4

Puede utilizar xdg-mime para registrar una aplicación predeterminada. En ese caso ejecutas en una terminal:

xdg-mime default mutt.desktop 'x-scheme-handler/mailto'

Y puedes comprobar si funcionó ejecutando:

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

información relacionada