Jak ustawić mutt jako domyślnego klienta pocztowego, kiedy kliknę „mailto” na stronie internetowej?


11

Chciałem zacząć muttw terminalu, kiedy kliknę jakiś mailto:tag na stronie internetowej. Czy to jest możliwe? Obecnie uruchamia się Firefox, którego tak naprawdę nie lubię; ładuje się powoli i jest niepotrzebny.

Odpowiedzi:


11

Najpierw musisz upewnić się, że istnieje .desktopplik wymagany przez specyfikację XDG. W przypadku programów GUI istnieje duża szansa, że ​​istnieje już odpowiedni .desktopplik, w przypadku aplikacji terminalowych zwykle trzeba utworzyć własny plik. Sprawdź katalog /usr/share/applicationsistniejących plików. Może jest już mutt.desktopplik. Jeśli nie, utwórz go.

Następnie edytuj plik ~/.local/share/applications/mimeapps.listi dodaj następujący wiersz

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

To rejestruje mutt w module mailtoobsługi. Możesz potwierdzić pomyślną rejestrację za pomocą

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

które powinny generować mutt.desktop. Teraz możesz kliknąć „mailto” w chromie, a terminal powinien wyskoczyć z instancją mutt. Nie trzeba nawet restartować sesji pulpitu ani przeglądarki.


1

Musisz napisać skrypt określający terminal, w którym chcesz muttotworzyć. Następnie w przeglądarce Firefox możesz powiązać ten skrypt z łączami mailto. Na przykład, jeśli używasz terminatora, możesz utworzyć następujący skrypt.

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

W moim przypadku mam trwały rozwijany terminator, więc chcę go w nowej karcie. Potrzebuję też palety 256 kolorów, więc używam

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

FWIW to mój pełny skrypt, który również odkrywa terminator (jeśli jest ukryty), używając skrótu Ctrl+ Spacei przenosi go na pierwszy plan.

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

Jakie środowisko pulpitu używasz? Musisz sprawdzić, czy w ustawieniach modułu obsługi typu MIME ustawiono określony moduł obsługi tego typu rzeczy.


OpenBox, po prostu nie wiem, jak uzyskać typ mimetyczny, nie jest to plik, nie mogę po prostu uruchomić „mimetype / path / to / file”, aby go zidentyfikować
daisy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.