Answers:
首先,你需要确保有一个 .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
。现在您可以点击铬中的“mailto”
并且终端应该弹出一个mutt实例。没有必要
重新启动桌面会话或浏览器。
您需要编写一个指定所需终端的脚本 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 + 空间 ,并把它带到前面。
#!/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
您正在运行哪个桌面环境?您需要检查它的MIME类型处理程序的设置,了解如何为这类事物设置特定的处理程序。