#!/bin/bash
# bash and not just sh because we are using some bash-specific syntax
if [[ "$1" == "ddg:"* ]]; then
ref=${1#ddg://}
#ref=$(python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])" "$ref") # If you want decoding
xdg-open "https://duckduckgo.com/?q=$ref"
else
xdg-open "$1" # Just open with the default handler
fi
要向 XDG 注册新的 URL 方案处理程序,首先创建一个指定
x-scheme-handler/...
MIME 类型的桌面条目:请注意,根据Desktop Entry Specification
%u
将 URL(例如ddg://query%20terms
)作为单个参数传递。一旦你创建了这个桌面条目并安装了它(即把它放在
applications
XDG 的本地或系统目录中,比如~/.local/share/applications/
或/usr/share/applications/
),那么你必须使用 MIME 类型注册应用程序(假设你已经命名了你的桌面条目ddg-opener.desktop
):处理程序的参考实现
ddg-open.sh
:如果您已经
mimeo
安装,并且您已经知道要为其创建关联的应用程序的桌面文件的名称,那么它就像执行以下操作一样简单:例如,如果duckduckgo,桌面文件位于
/usr/share/applications/Duckduckgo.desktop
,那么你只需要:或者