何が起こっていますか
このような問題は、Unityのアプリケーションマッチングフレームワークに関連しています。技術的な詳細を簡素化するために、プログラムウィンドウとアプリケーションはUbuntuにとって2つの別個のものです。Ubuntuは、どのアプリケーションが特定のウィンドウを所有しているかを「推測」する必要があります。そして、時にはその推測が失敗し、ランチャーに疑問符が表示されます。
失敗の原因は次のとおりです。
- BAMFのバグ(上記のアプリケーションマッチングフレームワーク)。
- 欠陥のあるアプリケーション記述(別名「.desktop」ファイル)。
- アプリケーションの説明がまったくない。ウィンドウを起動する実行可能ファイルには、本質的にこのメタデータはありません。
質問(KeePass2)に示されているアプリケーションには、適切なバグトラッカーに報告されたタイプ1の問題があります。
問題の例
以下の例は技術的なものであり、Ubuntuランチャーで独自のアプリケーションを適切に表示したいプログラマーを対象としています。
問題3 –アプリケーションの説明なし
アプリケーションをUnityと統合するには、つまり、ダッシュで検索してランチャーに配置するには、デスクトップエントリが必要です。そのようなエントリが中に配置され/usr/share/applications/
、/usr/local/share/applications/
および$HOME/.local/share/applications/
(後者二つは、サードパーティのソフトウェア、システム全体とユーザのみのためであるそれぞれ)。これらは.desktop
拡張子で終わり、次の基本形式に従います。
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
このエントリは、Exec
実行可能ファイルを呼び出してプログラムを開始します。そのプログラムはウィンドウやダイアログを表示するたびに、Unityはその実行ファイルは、このアプリケーションの記述に「所属」、および特定の使用していることに気づくだろうName
とIcon
ランチャーでを。
これは最低限の例です。正式な仕様は、多くの高度な機能をカバーしています。
問題2 –アプリケーションの説明の誤り
my_app.desktop
有効なアプリケーションディレクトリに存在すると仮定しますが、次のとおりです。
/file/path/of/my/icon
ファイルシステムに存在しません。
/file/path/of/my/icon
画像ではありません。
- エントリはいくつかの不正な構文または無効なタグを使用します。
上記のいずれの場合でも、Ubuntuはランチャーでアプリケーションウィンドウを適切に一覧表示できません。
問題1 – BAMFのバグ
Ubuntu 11.10の時点で、BAMFには、アプリケーションの正しいマッチングを妨げる多数のバグがあります。一般的な(一時的な)落とし穴は次のとおりです。
Exec
パスのシンボリックリンクを通常のファイルではなく、
- 実行可能ファイルは、メインの実行可能ファイルを起動するスクリプトです。
これらの場合、プログラマには、シンボリックリンクの抽象化を削除したり、実行可能ファイルに直接リンクするなどの回避策を使用する以外の選択肢はありません。これらのどちらも、デスクトップエントリの仕様自体には必要ありません。