これはパート2ですCLIツールを使用してLinuxシステムに新しい(カスタム)MIMEタイプをインストールする方法は?
上記の質問で許可されている回答の手順を使用して、次のMIMEタイプ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タイプに関連付けるには、どのような追加手順が必要ですか?
編集する:
次の手順を実行しましたが、*.pub
ElectronアプリのKateはデフォルトでまだ公開鍵ファイルを開いていません。
# 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に関連付けました。Electronアプリケーションはまだ*.pub
Kateを使用してファイルを開くことを拒否します。
Electronアプリは以前Okularを使用していました。上記のコマンドを実行した後xdg-mime default
、オークラ会は消えたけど何も代えられない。 Electronアプリケーションは、使用するアプリケーションを選択するように求めるKIOダイアログボックスを表示します。 (間違ったアプリを使用するよう強制するよりも優れていますが、それでも正しい動作ではありません。Electronアプリが他の場所でファイルの関連付けを探しているようです。ご理解ください。)
.desktop
必要なファイルをどこかで失いましたか?
text/x-publickey
もう一つの考え:上記のステップを経た後、私は今の項目を見ることができるようです/usr/share/applications/mimeinfo.cache
。しかし、一つもありません。
答え1
これshared-mime-info
リポジトリ
MIMEタイプが指定されましたapplication/pgp-keys
。ここで見ることができます:
<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
*.pub
ただし、おそらくMSパブリッシャ形式との競合を避けるためにglobモードを使用しません。 1つの回避策は、ファイル名をfile.hに変更することです*.asc
。しかし、ファイル名を変更することはオプションではないとしましょう。これは私たちに必要なmimeinfoファイルです(注意してください)〜しなければならない名前付き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>
「魔法」部分の良いところは、ファイルの先頭で対応する文字列を見つけ、一致するかどうかによってMIMEタイプを決定することです。これは、MIMEタイプのファイルが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
MSパブリッシャファイルの例は次のとおりです。
ここでgitリポジトリを使って自分で試してみることができます。