Como posso definir o mutt como o cliente de e-mail padrão quando clico em um 'mailto' em uma página da Web?

8

Eu queria iniciar mutt no terminal quando clico em uma tag mailto: em uma página da web. Isso é possível? Atualmente o Firefox começa, o que eu realmente não sou a favor; é um carregamento lento e desnecessário.

    
por daisy 16.08.2011 / 14:49

3 respostas

8

Primeiro, você precisa garantir que haja um arquivo .desktop exigido por a especificação XDG. Para programas GUI a chance é boa que já existe é um arquivo .desktop adequado, para aplicações de terminal normalmente você precisa crie seu próprio. Confira o diretório /usr/share/applications para arquivos existentes. Talvez já exista um arquivo mutt.desktop . Se não houver crie um.

Em seguida, edite o arquivo ~/.local/share/applications/mimeapps.list e adicione o linha seguinte

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

Isso registra o mutt com o manipulador mailto . Você pode confirmar um registro bem sucedido com

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

que deve gerar mutt.desktop . Agora você pode clicar em "mailto" no cromo e um terminal deve aparecer com uma instância mutt. Não precisa nem mesmo reinicie a sessão da área de trabalho ou o navegador.

    
por 01.03.2013 / 12:40
1

Você precisa escrever um script que especifique o terminal em que deseja que mutt abra. Então, no Firefox, você pode associar esse script a links mailto. Por exemplo, se você estiver usando o terminador, poderá criar o seguinte script.

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

No meu caso, eu tenho um terminador drop-down persistente, então eu quero em uma nova aba. Eu também preciso de uma paleta de 256 cores, então eu uso

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

FWIW este é o meu script completo, que também mostra o terminador (se estiver oculto), usando o atalho Ctrl + Espaço , e o traz para a 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 # (.*)//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
    
por 12.10.2015 / 15:00
-1

Qual ambiente de área de trabalho você está executando? Você precisa verificar as configurações do manipulador do tipo MIME sobre como definir um manipulador específico para esse tipo de coisa.

    
por 16.08.2011 / 14:54