基本Ubuntu桌面中的URL协议处理程序


16

有一种向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,我看不到与URL处理程序或协议相关的任何内容/desktop/gnome

我的眼睛看起来有点乱(只是用这个措辞取笑,没什么不好的)

到底是什么?

旁注:我正在寻找即使在未加载整个桌面环境的情况下也能正常工作的东西,例如在运行仅加载了gsettings-daemon(以及与此情况无关的其他东西)的i3wm会话时。

更新资料

“注册”协议处理程序的另一种方法是使用*.desktop文件及其MIME类型。例如MimeType=application/<the-protocol>;

我发现/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

所以我把这个安装apturl.desktop~/.local/share/applications

[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-opengnome-open仍然做同样忽略此用户的桌面文件,它像往常一样与用户桌面的文件,应覆盖那个在/usr/share/applications/

指定x-scheme-handlerMIME类型的桌面文件可能有一些特殊之处,并且无法按常规方式进行处理。

桌面文件方式无法回答问题。


1
这可能会有所帮助:unix.stackexchange.com/a/100736
Todd Owen

Answers:


9

打开~/.local/share/applications/mimeapps.list并添加如下一行:

x-scheme-handler/apt=apturl.desktop

是的,我可以为HTTP,MAILTO和其他一些工具找到它。
Hibou57 '16

没有这样的文件夹。我从根目录进行了搜索,但没有找到。
Vlas Bashynskyi '16年

@VlasBashynskyi,位置mimeapps.list可能有所不同。我建议运行搜索文件名。
Hibou57 '16

4

xdg-mime

也许更优雅(在此示例中,我使用“ apt”,将其更改为任何其他方案):

  1. 检查中已注册的MIME类型/usr/share/applications/defaults.list
  2. apt.desktop文件(这里有一些示例)添加到~/.local/share/applications/(用户范围)或/usr/share/applications/(系统范围)。
  3. 构建由桌面文件处理的MIME类型的缓存数据库: update-desktop-database
  4. 使用注册协议

    xdg-mime default apt.desktop x-scheme-handler/apt`
    

    这会将方案的新MIME类型附加到~/.local/share/applications/mimeapps.list。您可以为系统上的所有用户注册新的mime类型sudo xdg-mime install --mode system <xml file>

用测试xdg-open "apt://foo.bar"

另请参阅添加MIME类型

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.