アプリケーションの起動時にアイコンが表示されない


12

/usr/share/applicationsrdesktopを起動するアプリケーションランチャーを作成しました。ファイルにはアイコン名が指定されており、アイコンを次の場所に追加しました。

/usr/share/icons/HighContrast/48x48/apps
/usr/share/icons/HighContrast/22x22/apps
/usr/share/icons/HighContrast/256x256/apps
/usr/share/icons/HighContrast/32x32/apps
/usr/share/icons/HighContrast/scalable/apps-extra
/usr/share/icons/HighContrast/24x24/apps
/usr/share/icons/HighContrast/16x16/apps
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16/apps

次に、ランチャーをタスクバーにドラッグすると、正しいロゴのランチャーがタスクバーに表示されます。ただし、タスクを開始すると、タスクバーに新しいアイコンが作成されます。これは、中央に疑問符の付いた四角形です。

タスクバーには、起動時にアプリケーションの正しいアイコンが表示されるように、どのアイコンが必要ですか?

.desktopファイルの内容:

[デスクトップエントリ]
バージョン= 1.0
Terminal = false
Icon = mswindows
Type = Application
Categories = Network;
exec = rdesktop win7shared1 -g 1680x1000

名前= win7shared1
GenericName = rdesktop
Comment = Windowsデスクトップを開く

Keywords = Windows
StartupNotify = false

回答:


15

ほとんどの場合、問題を解決するのは次のことです。

  1. アプリケーションを開く
  2. 実行中に、ターミナルを開いて次を入力します。

    xprop WM_CLASS
    
  3. 次に、開いているアプリケーションウィンドウをクリックします。

  4. 出力は次のようになります(例gedit):

    WM_CLASS(STRING) = "gedit", "Gedit"
    
  5. 最初の部分(この場合はgedit)を使用して、.desktopファイルに行を作成します。

    StartupWMClass=<string>
    

    <string>の実際の出力(の最初の部分)に置き換えますxprop WM_CLASS、例えばStartupWMClass=gedit

もう一度やり直してください(ログアウト/ログインが必要な場合があります)。ほとんどの場合、アプリケーションはランチャーのアイコンの下に表示されます。

説明

  • ランチャー(.desktopファイル)からアプリケーションが正しく起動したが、一般的なアイコン(疑問符)だけ付いた別のアイコンが表示される場合、アプリケーションウィンドウとランチャーが何らかの理由で接続されておらず、ランチャーが接続されていない可能性が最も高いアプリケーションのウィンドウを「彼」として認識します。これは、スクリプトまたは非標準のアプリケーション(-command)が使用される場合によく起こります。これらの場合、StartupWMClass=多くの場合、ラインがソリューションです。

ジェイコブありがとう。これで問題は解決しました。レコードの場合、WM_CLASS文字列は「rdesktop」、「rdesktop」でした。
クレイトン14

@claytonは完璧で、うまくいきました。
ジェイコブVlijm 14

1
xpropあなたは返して欲しい原子に渡すことができますよう、あなたのステップ2は、低減することができ、実行中はxprop WM_CLASS十分にある
johndrinkwaterは、

@johndrinkwater絶対に、ヒントをありがとう。それは1年以上前です、14ヶ月以上は別の人が書いたようです:)。ウィルの編集...
ジェイコブVlijm

@ jacob-vlijm :)厄介なxpropの動作を調査しているときに出会ったばかりです
-johndrinkwater

2

私はのためにxprop|grep WM_CLASS与えたWM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "jetbrains-pycharm-ce"(私はPython用pycharmでこの問題を抱えていました)

sun-awt-X11-XFramePeer.desktopファイルの文字列として(引用符なしで)必要なものでした-ありがとう!


私は私のものに追加StartupWMClass=sun-awt-X11-XFramePeerしましたが、何も起こりませんでした!ある.desktopホームフォルダにあるファイルは?
anon58192932

0

アイコンを適切な場所に配置した後、xserverを再起動するだけです(ログアウトしてログインしてください)。
また、アイコンキャッシュを更新してみてください(以下のコードをターミナルに貼り付けてください):

for d in ~/.icons/*; do gtk-update-icon-cache -f $d; done
for d in /usr/share/icons/*; do sudo gtk-update-icon-cache -f $d; done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.