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、URLハンドラーまたはプロトコルに関連するものが表示されません/desktop/gnome
私の目には少し乱雑に見えます(この言葉遣いでからかうだけで、悪いことは何もありません)
下に何がありますか?
サイドノート:私は、完全なデスクトップ環境がロードされていない場合でも動作することが望ましいものを探しています。たとえば、i3wmセッションを実行するだけでgsettings-daemon(そして、このケースに関係のない他のもの)ロードします。
更新
プロトコルハンドラを「登録」するもう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.bar代わりにSoftware Centerを開くのかを説明しています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-openとgnome-openも同じ操作を行うと、ユーザーのデスクトップ・ファイルといつものように、1つをオーバーライドする必要があり、このユーザーのデスクトップファイルを、無視します/usr/share/applications/。
たぶん、x-scheme-handlerMIMEタイプを指定するデスクトップファイルには特別なものがあり、通常の方法では処理されません。
デスクトップファイルの方法では質問に答えません。