Wie kann ich mutt als Standard-E-Mail-Client festlegen, wenn ich auf einer Webseite auf "Mailto" klicke?

8

Ich wollte anfangen mutt im Terminal, wenn ich auf einige klicke mailto: Tag auf einer Webseite. Ist das möglich? Derzeit startet Firefox, was ich wirklich nicht favorisieren kann. Es ist langsam geladen und unnötig.

daisy
quelle

Antworten:

9

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.

Marco
quelle
1

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
Sparhawk
quelle
-1

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.


quelle
OpenBox, ich weiß einfach nicht, wie man den Mimetyp bekommt, es ist keine Datei, ich kann nicht einfach 'Mimetyp / Pfad / zu / Datei' ausführen, um ihn zu identifizieren
daisy