web-dev-qa-db-ja.com

基本的なUbuntuデスクトップのURLプロトコルハンドラー

URLプロトコルハンドラーをGconfに登録する方法がありましたが、現在は廃止されており、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セッションを実行する場合など、フルデスクトップ環境がロードされていない場合でも動作することが望ましいものを探しています。

更新

プロトコルハンドラを「登録」するもう1つの方法は、*.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.barapturlではなくSoftware Centerを開く理由を説明しています。

そこで、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-handler MIMEタイプを指定するデスクトップファイルには特別なものがあり、通常の方法で処理されない場合があります。

デスクトップファイルの方法では質問に答えません。

16
Hibou57

~/.local/share/applications/mimeapps.listを開き、次のような行を追加します。

x-scheme-handler/apt=apturl.desktop
9
angel

xdg-mime

もっとエレガントかもしれません(この例では "apt"を使用します。他のスキームに変更します):

  1. /usr/share/applications/defaults.listに登録されているMIMEタイプを確認してください。
  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に追加されます。システムSudo xdg-mime install --mode system <xml file>上のすべてのユーザーに対して、新しいMIMEタイプを登録できます。

xdg-open "apt://foo.bar" でテストする

4
Pablo Bianchi