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


10

Webページのタグmuttをクリックすると、ターミナルから開始したいと思いmailto:ました。それは可能ですか?現在Firefoxが起動しています。読み込みが遅く、不要です。

回答:


11

まず.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インスタンスが表示されます。デスクトップセッションやブラウザを再起動する必要すらありません。


1

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

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

私の場合、私は永続的なドロップダウンターミネータを持っているので、それを新しいタブに入れます。256色のパレットも必要なので、

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

FWIWこれは私の完全なスクリプトであり、ショートカット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

-1

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


OpenBox、私はmimetypeを取得する方法がわからない、それはファイルではない、それを特定するために「mimetype / path / to / file」を実行することはできない
デイジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.