独自のファイル形式を持つ Linux アプリケーションを開発しています。これらのファイルをダブルクリックしたときにアプリが開くようにします。
ファイル拡張子を登録して、Linux 上のアプリケーションに関連付けるにはどうすればよいですか? 標準 (GNOME および KDE ベースのシステムで動作) で、プログラムを初めてインストールまたは実行するときに自動的に実行できる方法を探しています。
独自のファイル形式を持つ Linux アプリケーションを開発しています。これらのファイルをダブルクリックしたときにアプリが開くようにします。
ファイル拡張子を登録して、Linux 上のアプリケーションに関連付けるにはどうすればよいですか? 標準 (GNOME および KDE ベースのシステムで動作) で、プログラムを初めてインストールまたは実行するときに自動的に実行できる方法を探しています。
freedesktop.org Portlandxdg-utils
から使用します。
MIME タイプのアイコンを登録します。
xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype
構成ファイルを作成します ( freedesktop Shared MIME documentation ):
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-mytype">
<comment>A witty comment</comment>
<comment xml:lang="it">Uno Commento</comment>
<glob pattern="*.myapp"/>
</mime-type>
</mime-info>
構成ファイルをインストールします。
xdg-mime install mytype-mime.xml
これにより、ファイルが認識され、アイコンに関連付けられます。xdg-mime default
ファイルをインストールした後、アプリケーションを MIME タイプに関連付けるために使用できます.desktop
。
これには 2 つの部分があります。新しいファイル タイプを登録してから、アプリケーションのデスクトップ エントリを作成する必要があります。デスクトップ エントリは、アプリケーションを新しい MIME タイプに関連付けます。
Gnome と KDE (おそらく 4+ のみ?) の両方がfreedesktop 共有 MIME 情報仕様を使用していると思いましたが、間違っている可能性があります。
1) Linux では、これは OS 自体ではなく、デスクトップ環境の機能です。
2) GNOME と KDE では、これを達成するための方法が異なります。
3) 両方の方法で行うことを妨げるものは何もありません。
このスクリプトを試してください: 必要:
1. your application icon -> $APP = FIREFOX.png
2. your mimetype icon -> application-x-$APP = HTML.png
現在のディレクトリで:
#BASH SCRIPT: Register_my_new_app_and_its_extension.sh
APP="FOO"
EXT="BAR"
COMMENT="$APP's data file"
# Create directories if missing
mkdir -p ~/.local/share/mime/packages
mkdir -p ~/.local/share/applications
# Create mime xml
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\">
<mime-type type=\"application/x-$APP\">
<comment>$COMMENT</comment>
<icon name=\"application-x-$APP\"/>
<glob pattern=\"*.$EXT\"/>
</mime-type>
</mime-info>" > ~/.local/share/mime/packages/application-x-$APP.xml
# Create application desktop
echo "[Desktop Entry]
Name=$APP
Exec=/usr/bin/$APP %U
MimeType=application/x-$APP
Icon=$APP
Terminal=false
Type=Application
Categories=
Comment=
"> ~/.local/share/applications/$APP.desktop
# update databases for both application and mime
update-desktop-database ~/.local/share/applications
update-mime-database ~/.local/share/mime
# copy associated icons to pixmaps
cp $APP.png ~/.local/share/pixmaps
cp application-x-$APP.png ~/.local/share/pixmaps
確認してください: FOO バイナリが /usr/bin (または $PATH) にあります