Web ページで「mailto」をクリックしたときに、Mutt をデフォルトのメール クライアントとして設定するにはどうすればよいですか?

Web ページで「mailto」をクリックしたときに、Mutt をデフォルトのメール クライアントとして設定するにはどうすればよいですか?

muttウェブページ内のタグをクリックしたときにターミナルで起動したいのですが、mailto:それは可能ですか? 現在は Firefox が起動しますが、これはあまり好ましくありません。読み込みが遅く、不必要です。

答え1

.desktopまず、 XDG 仕様で必要なファイルがあることを確認する必要があります。GUI プログラムの場合は、適切な.desktopファイルがすでに存在する可能性が高いですが、ターミナル アプリケーションの場合は通常、独自のファイルを作成する必要があります。ディレクトリ/usr/share/applicationsに既存のファイルがあるかどうかを確認します。すでにファイルがある可能性がありますmutt.desktop。ない場合は、作成します。

次にファイルを編集し~/.local/share/applications/mimeapps.list、次の行を追加します。

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

これにより、muttがハンドラに登録されますmailto。登録が成功したかどうかは、

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

出力は になりますmutt.desktop。これで、chromium で「mailto」をクリックすると、ターミナルが mutt インスタンスとともにポップアップ表示されます。デスクトップ セッションやブラウザーを再起動する必要もありません。

答え2

開くターミナルを指定するスクリプトを作成する必要がありますmutt。次に、Firefox でこのスクリプトを mailto リンクに関連付けることができます。たとえば、terminator を使用している場合は、次のスクリプトを作成できます。

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

私の場合、ドロップダウンターミネータを永続的に使用しているため、新しいタブで表示したい。また、256色のカラーパレットも必要なので、

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

ちなみに、これは私の完全なスクリプトで、ショートカットCtrl+を使用してターミネータ (非表示の場合) を表示しSpace、前面に移動します。

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

答え3

どのデスクトップ環境を実行していますか? このような場合に特定のハンドラーを設定する方法については、MIME タイプ ハンドラーの設定を確認する必要があります。

答え4

xdg-mime を使用してデフォルトのアプリケーションを登録できます。その場合は、ターミナルで実行します。

xdg-mime default mutt.desktop 'x-scheme-handler/mailto'

次のコマンドを実行して、それが機能したかどうかを確認できます。

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

関連情報