Antworten:
Zuerst müssen Sie sicherstellen, dass es eine gibt .desktop
Datei, die von benötigt wird
die XDG-Spezifikation. Für GUI-Programme ist die Chance gut, dass es schon da ist
ist ein passender .desktop
Datei, für Terminalanwendungen muss man normalerweise
stellen Sie sich Ihr eigenes zusammen Checken Sie das Verzeichnis aus /usr/share/applications
zum
vorhandene Dateien. Vielleicht gibt es schon eine mutt.desktop
Datei. Wenn nicht,
erstelle einen.
Bearbeiten Sie dann die Datei ~/.local/share/applications/mimeapps.list
und füge das hinzu
folgende Zeile
[Default Applications]
x-scheme-handler/mailto=mutt.desktop;
Dies registriert mutt bei der mailto
Handler. Sie können eine erfolgreiche Registrierung mit bestätigen
xdg-mime query default 'x-scheme-handler/mailto'
welches sollte ausgeben mutt.desktop
. Jetzt können Sie in Chrom auf "mailto" klicken
Ein Terminal sollte mit einer Mutt-Instanz angezeigt werden. Keine Notwendigkeit sogar
Starten Sie die Desktopsitzung oder den Browser neu.
Sie müssen ein Skript schreiben, das das gewünschte Terminal angibt mutt
In Firefox können Sie dieses Skript dann mit mailto-Links verknüpfen. Wenn Sie beispielsweise Terminator verwenden, können Sie das folgende Skript erstellen.
#!/usr/bin/env bash
terminator -x "mutt '$@'"
In meinem Fall habe ich einen permanenten Dropdown-Abschluss, daher möchte ich, dass er in einem neuen Tab angezeigt wird. Ich brauche auch eine 256-Farben-Palette, also benutze ich
#!/usr/bin/env bash
terminator --new-tab -x "TERM=xterm-256color; mutt '$@'"
FWIW Dies ist mein vollständiges Skript, das auch den Terminator (wenn ausgeblendet) mithilfe der Verknüpfung eingeblendet Ctrl + Platz und bringt es nach vorne.
#!/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
Welche Desktop-Umgebung betreiben Sie? Sie müssen die Einstellungen des MIME-Typ-Handlers überprüfen, um festzulegen, wie ein bestimmter Handler für diese Art von Dingen festgelegt wird.