基本Ubuntu桌面中的URL协议处理程序
有一种方法可以使用Gconf注册URL协议处理程序,现在已经过时,似乎没有办法对DConf(或Gsettings,它推荐的包装器)做同样的事情。
自DConf以来,如何正确注册URL协议处理程序?
另外,在我的Ubuntu 12.04上,我看起来很奇怪(因为我不明白)
协议apt://
应该由apturl
命令处理。 我的Opera浏览器也是这样,但仅仅是因为我使用浏览器的配置工具添加了这个特定的关联。 否则,在其余环境中:
- 运行
xdg-open apt://foo.bar
打开elinks
(我的www-browser
替代方案)。 - 运行
gnome-open apt://foo.bar
打开软件中心。 - 打开
gconf-editor
,我看到一个键/desktop/gnome/url-handlers/apt
其值为apturl "%s"
并且已启用。 这种配置似乎被忽略了,这是合理预期的,因为GConf被认为是过时的。 - 打开
dconf-editor
,我在/desktop/gnome
中看不到任何与URL处理程序或协议相关的内容
我的眼睛看起来有点乱(只是戏弄这个措辞,没什么不好)
什么在下面?
旁注:即使没有加载完整的桌面环境,我也在寻找最适合的东西,比如在运行只有gsettings-daemon
(以及与此案例无关的其他内容)的i3wm会话时。
更新
“注册”协议处理程序的另一种方法是使用*.desktop
文件及其MIME类型; 例如MimeType=application/;
。
我找到了这个内容的/usr/share/applications/ubuntu-software-center.desktop
:
[Desktop Entry] Name=Ubuntu Software Center GenericName=Software Center Comment=Lets you choose from thousands of applications available for Ubuntu Exec=/usr/bin/software-center %u Icon=softwarecenter Terminal=false Type=Application Categories=PackageManager;GTK;System;Settings; MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt; StartupNotify=true X-Ubuntu-Gettext-Domain=software-center Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;
这个解释了为什么gnome-open apt://foo.bar
打开软件中心而不是apturl
。
所以我在~/.local/share/applications
安装了这个apturl.desktop
:
[Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Terminal=false Exec=/usr/bin/apturl %u Name=APT‑URL Comment=APT‑URL handler Icon= Categories=Application;Network; MimeType=x-scheme-handler/apt;
在update-desktop-database
之后,甚至在重新启动之后, xdg-open
和gnome-open
仍然会执行相同操作并忽略此用户桌面文件,这通常与用户桌面文件一样,应该覆盖/usr/share/applications/
。
也许桌面文件有一些特殊的东西,指定x-scheme-handler
MIME类型,并且它们不按常规方式处理。
桌面文件方式不回答问题。
打开~/.local/share/applications/mimeapps.list
并添加如下行:
x-scheme-handler/apt=apturl.desktop
xdg-mime
也许更优雅(对任何新的其他方案改变“apt” ):
- 检查
/usr/share/applications/defaults.list
注册的mime-types。 - 将
apt.desktop
文件添加到~/.local/share/applications/
或/usr/share/applications/
( 这里的示例 )。 -
update-desktop-database
– 构建由桌面文件处理的MIME类型的缓存数据库 -
注册协议
xdg-mime default apt.desktop x-scheme-handler/apt`
这会将方案的新MIME类型附加到
~/.local/share/applications/mimeapps.list
。 您可以在系统sudo xdg-mime install --mode system
上为所有用户注册新的mime-type。
使用xdg-open "apt://foo.bar"