当我点击网页中的“mailto”时,如何将 mutt 设置为默认邮件客户端?

当我点击网页中的“mailto”时,如何将 mutt 设置为默认邮件客户端?

我想mutt在单击mailto:网页中的某个标签时启动终端。可以吗?目前 Firefox 会启动,但我真的不喜欢;它加载速度很慢,而且没有必要。

答案1

首先,您需要确保存在.desktopXDG 规范所需的文件。对于 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'

相关内容