1. 概要

デスクトップエントリファイルは、グラフィカルユーザーインターフェイス(GUI)ショートカットを作成および注文するための標準的な方法です。 ほとんどの主要なLinuxデスクトップ環境はそれらをサポートしています。 さらに、 GNOME KDE 、および Xfce はすべて、事実上の標準であるXDGデスクトップエントリ仕様に準拠しています。

このガイドでは、デスクトップエントリファイルとは何か、それらが有用である理由、およびそれらがどのように機能するかについて説明します。 式デスクトップエントリファイル、 .desktop ファイル、およびエントリファイルを同じ意味で使用します。

ガイドのコードは、GNU Bash5.0.3およびXfce4.16を使用するDebian10.10(Buster)でテストされています。 これはPOSIXに準拠しており、そのような環境で機能するはずです。

2. 説明

デスクトップエントリファイルにはテキストのみが含まれます。 一般に.desktopファイルと呼ばれますが、拡張子は必要ありません。 ただし、簡単に分類できるように、.desktopまたは.directory拡張子を付けることもできます。 エントリファイルの標準の命名規則は逆引きDNSです。 たとえば、受け入れ可能な名前はorg.example.AppName.desktopです。

正しく機能するには、デスクトップエントリファイルが実行可能である必要があります。 Linux環境では、ユーザーはchmodを介してこの権限を設定できます。

エントリファイルは、3つの要素タイプを記述できます。

  • アプリケーションへのショートカット( .desktop 拡張子)
  • リソースへのリンク( .desktop 拡張子)
  • サブメニュー( .directory 拡張子)

これらの要素は、クイックビジュアルアクセスポイントとして機能します。 通常、それぞれがデスクトップまたはシステムメニューのGUIエントリとして表示されます。 エントリが配置される場所は、デスクトップエントリファイルの場所によって異なります。

3. 位置

通常のファイルと同様に、ユーザーは作成された場所で.desktopファイルを実行できます。 ただし、その能力の1つは、GUIとの接続にあります。

ディレクトリエントリファイルは、デスクトップまたは$ XDG_DATA_DIRS /Applicationsに配置するのが最適です。 XDG_DATA_DIRS 環境変数が設定されていない場合、デフォルトは次のとおりです。

  • / usr / share (グローバル)
  • 〜/ .local / share (ユーザー固有)

デスクトップに.desktopファイルを配置すると、ショートカットアイコンが作成されます。 同様に、.desktopファイルを$XDG_DATA_DIRS / Applications に配置すると、そのショートカットのGUIメニューアイコンが追加されます。 さらに、.directoryファイルを使用してシステムGUIサブメニューを作成します。

これらの各要素は、属性(名前やアイコンなど)を介してカスタマイズできます。 属性値は、ファイル自体の中に特定の形式で存在します。

4. フォーマット

デスクトップエントリファイルは、大文字と小文字が区別されるUTF-8でエンコードされた行で構成され、次の3つのカテゴリに分類されます。

  • コメント
  • グループヘッダー
  • キーと値のペア

コメントは空白行または文字で始まる行です。

# This is a comment

グループヘッダー行は、グループの開始を示し、次のようにフォーマットされます。

[Group Name]

グループ名は角かっこで囲みます。 制御文字やその他の角かっこを含めることはできません。 必要なグループヘッダーは[デスクトップエントリ]のみです。 これは、デスクトップエントリファイルの最初の非コメント行である必要があります。 グループ名は、デスクトップエントリファイル内で一意である必要があります。

キーと値のペアの行をとしてフォーマットします。

Key=Value

キー名はグループごとに一意であり、英数字とダッシュで構成できます。 キーは、デスクトップエントリファイルまたはそれに関連するGUI要素の属性を定義します。

標準でサポートされているキーの完全なリストは、仕様にあります。 たとえば、一般的に使用されるものは次のとおりです。

  • バージョン–使用されているデスクトップエントリ仕様のバージョン
  • コメント–GUIエントリまたはアイコンのツールチップとして使用されます
  • TryExec Execのプログラムが存在することを確認する実行可能ファイルへのパス
  • Path –現在の作業ディレクトリ
  • アクション–特別なグループヘッダーで定義された、デフォルトとは異なるアプリケーションアクション

デスクトップエントリファイルの複雑さはさまざまです。 このため、desktop-file-utilsなどの標準化されたツールが存在します。 仕様に従って.desktopファイルを便利に検証およびインストールできます。

メカニズムを説明するために、簡単な例を見ていきます。

5. 使用法

GNOMEのgeditアプリケーションのデスクトップショートカットが必要だとします。 具体的には、 gedit を、既に開いている特定のファイル( / home / user / file )から開始する必要があります。

5.1. ファイルの作成

この目的のために、簡単なテキストファイルを作成しましょう。

[Desktop Entry]
Type=Application
Name=Personal File
Exec=gedit /home/user/file
Icon=gedit

このファイルにcom.baeldung.starter.GeditPersonal.desktopという名前を付けて、デスクトップに配置します。 その結果、「PersonalFile」という名前の新しいデスクトップアイコンとgeditのアイコンが表示されます。 最後に、com.baeldung.starter.GeditPersonal.desktopを実行可能にします。

$ chmod +x /home/user/Desktop/com.baeldung.starter.GeditPersonal.desktop

これで、ユーザーはデスクトップアイコンをクリックして、gedit/home / user /fileを開くことができます。 これをどのように達成したかを調べてみましょう。

5.2. 説明

最初に、グループヘッダー[デスクトップエントリ]から始めます。 拡張子がなくてもデスクトップエントリファイル( magic )を検出できます。 さらに、 [Desktop Entry] には通常、デスクトップエントリファイルの主要部分が含まれています。 グループヘッダーの下に、キーと値のペアを一覧表示します。

まず、必要なタイプキーを使用してデスクトップエントリファイルのカテゴリを定義します。 値は( 1 Application 、( 2 Link 、または( 3 )[ X102X]ディレクトリ。 たとえば、Linkタイプを介してURLへのショートカットを定義します。 一方、 Directory タイプは、システムGUIサブメニューを定義します。

さらに、私たちのような Application デスクトップエントリファイルには、通常、Execキーがあります。 Exec値には、ショートカットを介して実行するためのコマンドラインが含まれています。

アプリケーションは引数を取ることができるので、デスクトップエントリにもそうするメカニズムが必要です。 つまり、これはExec値の指定子を介して次のように実行されます。

  • %f単一のファイル名
  • %u単一のURL
  • %kデスクトップファイルの場所のURIまたはローカルファイル名

たとえば、次の形式では、ファイルをデスクトップエントリファイルに直接渡すことができます。

Exec=cat %f

これは、ドラッグアンドドロップまたはコマンドラインを介して行います。 私たちが提供する引数は、 cat (連結)コマンドの後に続きます。 %F %u 、および%U指定子も同様に使用できます。

対照的に、%k 指定子は、Execコマンドラインでデスクトップファイル自体の場所を使用する方法を提供します。

最後に、オプションのIconキーでアイコンを定義します。 Icon 値は、サポートされているいくつかの画像形式の1つまたは実行可能ファイルへのパスにすることができます。 より複雑なケースについては、アイコンテーマ仕様標準で説明されています。

必要な名前キーを介してわかりやすい名前を提供します。 この名前は、デスクトップエントリファイルのデフォルトのファイル名を視覚的に置き換えます。

さらに、Name値の重要な機能はローカリゼーションです。

6. ローカリゼーション

デスクトップエントリファイルでいくつかの値をローカライズできます。 これにより、特定の言語環境で特定の翻訳を表示できます。

ローカリゼーション形式は次のパターンに従います。

Key[lang_COUNTRY.ENCODING@MODIFIER]=Value

最も単純な形式のローカライズされた名前の代替の例を次に示します

Name=Personal File
Name[bg]=Личен Файл

変換は、LC_MESSAGES環境変数に依存します。 この例では、 bg (ブルガリア語)が含まれている場合、Nameは「Личенфайл」になります。

修飾子を使用すると、より正確な制御を実現できます。 国、エンコーディング、および修飾子を指定する別の例を次に示します。

Name=Financial Sheets
Name[bg_BG.UTF-8@Iztok]=Финансови Отчети

このロケールは、LC_MESSAGESと次の順序で一致します。

  • lang_COUNTRY @ MODIFIER
  • lang_COUNTRY
  • lang @ MODIFIER
  • lang
  • デフォルト値

ENCODINGはマッチングに参加しません。

7. 概要

このガイドでは、デスクトップエントリファイルについて説明しました。 まず、それらが何であり、どこにあるかを定義しました。 次に、そのフォーマットと使用法について説明しました。 最後に、デスクトップエントリファイルの重要な機能であるローカリゼーションについて説明しました。