これは CLIツールを使用してLinuxシステムに新しい(カスタム)MIMEタイプをインストールする方法のパート2です
上記の質問で受け入れられた回答の手順を使用して、次のmime-type mx-publickey.xmlを作成しました
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/x-publickey">
<comment>Custom type for public key files (plain text)</comment>
<glob-deleteall/>
<glob pattern="*.pub"/>
</mime-type>
</mime-info>
次のコマンドでシステム全体にインストールしました。
# xdg-mime install --mode system mx-publickey.xml
目的のアイコンを追加しました:
xdg-icon-resource install --context mimetypes --size 256 x-publickey-icon.png text-x-publickey
それから私はそれをテストしました。私の '* .pub`ファイルにはまだ古い関連付けがあります:
$ xdg-mime query filetype id_rsa_test.pub
text/plain
$ xdg-mime query default text/plain
org.kde.kate.desktop
'* .pub`ファイルを新しいmime-typeに関連付けるには、どのような追加手順が必要ですか?
編集:
以下の手順を実行しましたが、ElectronアプリケーションのKateを使用しても、デフォルトで*.pub
公開鍵ファイルが開かれていません。
# xdg-mime default org.kde.kate.desktop text/x-publickey
# xdg-mime query default text/x-publickey
org.kde.kate.desktop
$ xdg-mime query default text/x-publickey
org.kde.kate.desktop
次に、GUIツール(KDEシステム設定>アプリケーション>ファイルの関連付け)を使用し、*.pub
公開鍵ファイルをKateに関連付けました。 電子アプリケーションは、Kateを使用して*.pub
ファイルを開くことを拒否します。
以前はOkularを使用していたElectronアプリ。上記のxdg-mime default
コマンドの後、Okularの関連付けはなくなりましたが、それに置き換わるものはありません。 Electronアプリは、使用するアプリケーションを選択するように要求するKIOダイアログを表示します。 (これは、間違ったアプリケーションを使用するように強制するよりはましですが、それでも正しい動作ではありません。Electronアプリケーションは、ファイルの関連付けについて他の場所を探しているようです。それを理解したいと思います。)
必要な.desktop
ファイルがどこかにありませんか?
別の考え:上記の手順の後、text/x-publickey
に/usr/share/applications/mimeinfo.cache
のエントリが表示されるはずです。ただし、1つはありません。
shared-mime-info
リポジトリ はすでにapplication/pgp-keys
mimetypeを指定しています。あなたはそれをここで見ることができます:
<mime-type type="application/pgp-keys">
<comment>PGP keys</comment>
<acronym>PGP</acronym>
<expanded-acronym>Pretty Good Privacy</expanded-acronym>
<sub-class-of type="text/plain"/>
<generic-icon name="text-x-generic"/>
<magic priority="50">
<match type="string" value="-----BEGIN PGP PUBLIC KEY BLOCK-----" offset="0"/>
<match type="string" value="-----BEGIN PGP PRIVATE KEY BLOCK-----" offset="0"/>
<match type="big16" value="0x9501" offset="0"/>
<match type="big16" value="0x9500" offset="0"/>
<match type="big16" value="0x9900" offset="0"/>
<match type="big16" value="0x9901" offset="0"/>
</magic>
<glob pattern="*.skr"/>
<glob pattern="*.pkr"/>
<glob pattern="*.asc" weight="10"/>
<glob pattern="*.pgp"/>
<glob pattern="*.gpg"/>
<glob pattern="*.key"/>
</mime-type>
またはここであなた自身のマシンで:
/usr/share/mime/packages/freedesktop.org.xml
ただし、おそらくMS Publisher形式との競合を避けるために、*.pub
グロブパターンは使用しません。 1つの回避策は、ファイルの名前を変更するだけです。 *.asc
ファイル。ただし、ファイルの名前を変更するオプションがないと仮定して、続行しましょう。必要なmimeinfoファイルは次のとおりです(mustという名前がpgp-keys.xml
である必要があります):
$ cat pgp-keys.xml
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/pgp-keys">
<comment>PGP keys</comment>
<acronym>PGP</acronym>
<expanded-acronym>Pretty Good Privacy</expanded-acronym>
<sub-class-of type="text/plain"/>
<generic-icon name="text-x-generic"/>
<magic priority="10">
<match value="-----BEGIN PGP PUBLIC KEY BLOCK-----" type="string" offset="0"/>
</magic>
<glob weight="10" pattern="*.pub"/>
</mime-type>
</mime-info>
「魔法」の部分の利点は、この文字列のファイルの先頭を調べて、一致するかどうかに基づいてmimetypeを判別することです。つまり、mimetype application/vnd.ms-publisher
のファイルは、引き続き.pub
ファイル拡張子を持ち、.pub
ファイル拡張子を持つ公開鍵と比較的調和して動作します。これを実現するには、mimeinfoファイルをインストールする必要があります。
シングルユーザー用にインストールするには:
xdg-mime install --mode user pgp-keys.xml
update-mime-database ~/.local/share/mime
システム全体にインストールするには:
Sudo xdg-mime install --mode system pgp-keys.xml
Sudo /usr/bin/update-mime-database /usr/share/mime
ここにある公開鍵の例を使用して結果をテストしました。
https://www.intel.com/content/www/us/en/security-center/pgp-public-key.html
ここからのMSPublisherファイルの例:
こちらのgitリポジトリで自分で試すことができます: