Come posso impostare mutt come client di posta predefinito quando faccio clic su un 'mailto' in una pagina Web?


10

Volevo iniziare muttnel terminale quando faccio clic su un mailto:tag in una pagina Web. È possibile? Attualmente viene avviato Firefox, cosa che non preferisco; è un caricamento lento e non necessario.

Risposte:


11

Per prima cosa devi assicurarti che ci sia un .desktopfile richiesto dalla specifica XDG. Per i programmi con GUI è probabile che esista già un .desktopfile adatto , per le applicazioni terminali di solito è necessario crearne uno proprio. Controlla la directory /usr/share/applicationsper i file esistenti. Forse c'è già un mutt.desktopfile. Se non c'è, creane uno.

Quindi modificare il file ~/.local/share/applications/mimeapps.liste aggiungere la seguente riga

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

Questo registra mutt con il mailtogestore. È possibile confermare una registrazione corretta con

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

che dovrebbe produrre mutt.desktop. Ora puoi fare clic su "mailto" in cromo e dovrebbe comparire un terminale con un'istanza di mutt. Non è necessario nemmeno riavviare la sessione desktop o il browser.


1

È necessario scrivere uno script che specifica il terminale in cui si desidera muttaprire. Quindi, in Firefox, è possibile associare questo script ai collegamenti mailto. Ad esempio, se si utilizza Terminator, è possibile creare il seguente script.

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

Nel mio caso, ho un terminatore a discesa persistente, quindi lo voglio in una nuova scheda. Ho anche bisogno di una tavolozza di 256 colori, quindi uso

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

FWIW questo è il mio script completo, che rivela anche il terminatore (se nascosto), usando la scorciatoia Ctrl+ Space, e lo porta in primo piano.

#!/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

-1

Quale ambiente desktop stai eseguendo? È necessario verificare le impostazioni del gestore del tipo MIME su come impostare un gestore specifico per questo tipo di cose.


OpenBox, non so come ottenere il mimetype, non è un file, non posso semplicemente eseguire 'mimetype / path / to / file' per identificarlo
daisy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.