ウェブサイト検索

Linuxアプリケーションのタスクバーとメニューエントリを作成する方法


デフォルトでデスクトップエントリが付属していないLinuxアプリの場合、同様の結果を得るために手動でタスクバーやメニューエントリを作成できます。

時々、Linuxアプリケーションはディストリビューションのリポジトリやソフトウェアストア、あるいはダウンロード可能なDEBやRPMパッケージからは入手できません。多くの場合、アプリはAppImageや古い形式のtarballとしてのみ利用可能です。これらのスタンドアロン実行可能ファイルは実際にはインストールされず、単に実行されるだけです。

問題は、インストールがないため、これらのアプリのためのタスクバーやメニューエントリがないことです。これらのエントリを作成するのを容易にするツールがありますが、自分で手動で作成する方法を知っておくことは良いことです。

幸運なことに、ほとんどの主要なLinuxデスクトップ環境は、freedesktop.orgによって提供される共通の仕様セットに依存しています。そのため、アプリケーションショートカットを作成するプロセスは、異なるLinuxディストリビューションで同じように機能します。

ステップ1: 隠しファイルとフォルダーを表示する

カスタムメニューエントリは、ホームディレクトリ内の隠しフォルダにあるデスクトップファイルから作成されます:

/home/username/.local/share/applications

最初に行うべきことは、隠しファイルやフォルダーを表示するようにファイルマネージャーを設定することです。ファイルマネージャーを開き、メニューアイコン(三本の横線)をクリックし、隠しファイルを表示の横にあるボックスをチェックします。

ピリオドで始まるいくつかの新しいファイルとフォルダー、特に.localがあなたのホームディレクトリに表示されるはずです(ファイル名やディレクトリの先頭にピリオド(.)を追加することで、Linuxではファイルとフォルダーを隠します)。

.local > share > applications フォルダーに移動します。これは新しいLinuxインストールの場合、自分でapplicationsフォルダーを作成する必要があるかもしれません。ここにデスクトップファイルを保存します。

ステップ2: アプリのWMClassを見つける

次に行うべきことは、アプリケーションのWMClassまたはウィンドウIDを特定することです。これにより、アプリケーションランチャーと開いているウィンドウの両方を単一のアイコンに統合したモダンなタスクバーエントリを作成することができます。このステップをスキップすると、アプリケーションを起動するためのショートカットしか作成されません。

特定のアプリケーションのWMClassを特定するためには、AppImageやtarballを従来の方法で起動し、実行可能ファイルを直接起動します。

X11でWMClassを見つける

X11を使用している場合は、ターミナルを開いて次のコマンドを入力してください:

xprop WM_CLASS

マウスカーソルがクロスヘアに変わるはずです。

アプリケーションウィンドウ内の任意の場所をクリックすると、ターミナルはこの形式で出力を表示するはずです:

WM_CLASS(STRING) = “appname”, “AppName”

引用内の二番目の値はあなたのアプリケーションのWMClassです。次のステップのために覚えておいてください。

WaylandでWMClassを見つける

新しいディストリビューションを使用している場合、従来のX11ディスプレイサーバーではなく、より新しくタッチフレンドリーなWaylandを使用しているかもしれません。残念ながら、このトリックはGNOMEのみに対応しており、GNOME ShellのLooking Glassツールに依存しています。

  1. Alt + F2を押し、lgと入力してEnterを押します。
  2. Windowsタブをクリックしてください。

あなたの開いているすべてのウィンドウが、それぞれの wmclass とともにリストされているはずです。次のステップのために、アプリケーションの wmclass をメモしておくことを忘れないでください。

ステップ3:デスクトップファイルの作成

さて、デスクトップファイルを作成する時間です。テキストエディタを開いて、新しいファイルに以下の内容を貼り付けてください:

[Desktop Entry]
Type=Application
Name=ApplicationName
GenericName=ApplicationType
Icon=/home/Username/.local/share/applications/ApplicationIcon.extension
Exec=/home/Username/ApplicationDirectory/ApplicationExecutable.extension
Terminal=false
Categories=ApplicationSubCategory;ApplicationCategory
Keywords=Keyword1;Keyword2;Keyword3
StartupWMClass=ApplicationWMClass

この行を一行ずつ見ていきましょう:

  1. [デスクトップエントリ] はファイルをデスクトップメニューエントリとして識別し、常にそのままにしておく必要があります。
  2. タイプは、ショートカットがアプリケーションへのものであることを示します。他のオプションには、ディレクトリやリンクが含まれます。
  3. 名前はあなたのアプリケーションの名前を識別します。ApplicationNameをあなたのアプリケーションの名前を反映するように変更してください。
  4. GenericNameはアプリケーションの種類を特定します。ApplicationTypeを「テキストエディタ」や「ウェブブラウザ」などの一般的な説明に変更してください。
  5. アイコンは、アプリケーションに関連付けられたアイコンを示します。任意の画像ファイルを選択できますが、通常PNGとSVGが最適です。/home/Username/.local/share/applications/ApplicationIcon.extensionを変更して、アプリケーションのアイコンの場所を反映させてください。
  6. Execはアプリケーションの実行可能ファイルを特定します。/home/Username/ApplicationDirectory/ApplicationExecutable.extensionを変更して、アプリケーションの実行可能ファイルの場所と名前を反映させてください。
  7. ターミナルは、アプリケーションがターミナルウィンドウで実行されているかどうかを識別します。ここでのオプションは、trueがターミナルを、falseがグラフィカルアプリケーションを示します。
  8. カテゴリは、あなたのアプリケーションが属するカテゴリおよび/またはサブカテゴリを特定します。ApplicationSubCategoryおよびApplicationCategoryを、あなたのアプリケーションに適切なカテゴリおよび/またはサブカテゴリに置き換えてください。オプションの完全なリストはfreedesktop.orgで見つけることができます。各項目を複数選択することもできますが、その場合、アプリケーションがメニュー内に複数回表示される可能性があります。
  9. キーワードは、アプリケーションの検索を助けるための単語を特定します。Keyword1、Keyword2、およびKeyword3を、アプリケーションに関連付けたい任意の数のキーワードに変更し、セミコロン(;)で区切ってください。
  10. StartupWMClassはあなたのアプリケーションのウィンドウを特定します。ApplicationWMClassを前のセクションのあなたのアプリケーションのWMClassに置き換えてください。

ここでは、Bitwarden AppImageとDownloadsフォルダーをアイコンおよび実行可能ディレクトリとして使用する例を示します。

[Desktop Entry]
Type=Application
Name=Bitwarden
GenericName=Password Manager
Icon=/home/adam/Downloads/Bitwarden.png
Exec=/home/adam/Downloads/Bitwarden-22.6.2-x86_64.AppImage
Terminal=false
Categories=Security;System
Keywords=Bitwarden;Crypto;Passwords;Security
StartupWMClass=bitwarden

変更を加えて、テキストファイルをApplicationName.desktopとして/home/username/.local/share/applications/に保存してください。

あなたのアプリケーションは現在、メニューに表示されるはずです。

今、AppImagesやtarballsをタスクバーやドックにピン留めできるようになりました。通常インストールされたアプリケーションと同じように機能します。

スペースを扱うための引用符の使用

ディレクトリ、アイコン、または実行可能ファイルにスペースが含まれている場合、デスクトップファイルは正常に動作しない可能性があります。

Exec=/home/Username/Application Directory/Application Executable.extension

「Icon」および「Exec」フィールドの最初と最後に引用符を含める必要があります。例えば:

Exec=”/home/Username/Application Directory/Application Executable.extension”

これであなたのアプリケーションのメニュー項目が正常に機能するはずです。

アスタリスクを使ってバージョン番号を処理する

アプリケーションの実行可能ファイルにバージョン番号が含まれている場合、アプリケーションが更新されるたびにデスクトップファイルを更新する必要があります:

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v2.2.extension

ただし、KDEユーザーは、バージョン番号などの変化するテキストを置き換えるために、アスタリスク (*) をワイルドカードとして使用できます。次のように:

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v*.extension

残念ながら、GNOMEはデスクトップファイルでワイルドカードを尊重しませんが、実行可能ファイルの名前を変更してバージョン番号を削除することはできます。

Linuxで独自のアプリケーションメニューエントリを作成する

今、AppImageやtarballをダウンロードすると、それを他のインストールされたアプリケーションのように、タスクバーやメニューに統合できるようになります。

道中で、ファイルマネージャーで隠しファイルやディレクトリを表示する方法(そして隠す方法も)、デスクトップファイルを作成する方法、アプリケーションのWMClassを特定するためのいくつかの方法も学びました。

通常、信頼できるソースからソフトウェアを取得すると、デフォルトでメニューエントリが作成されます。

関連記事: