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


8

我想开始 mutt 在我点击一些时在终端 mailto: 标记在网页中。那可能吗?目前Firefox启动,我真的不喜欢;这是缓慢的加载和不必要的。

Answers:


9

首先,你需要确保有一个 .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实例。没有必要 重新启动桌面会话或浏览器。


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 + 空间 ,并把它带到前面。

#!/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'来识别它
daisy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.