如何为python脚本添加启动器图标?

Håk*_*and 4 icons python window-manager launcher .desktop

我正在尝试为显示 Tkinter 窗口的自定义 Python 脚本添加启动器图标(脚本位置:)/home/hakon/my-tkapp.py

#! /usr/bin/env python3
import tkinter as tk
root = tk.Tk(className='MyTkApp')
label = tk.Label(root, text="Hello World")
label.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

该脚本是可执行的。我正在使用pyenv,所以如果我从以下运行gnome-terminal

$ which python3
/home/hakon/.pyenv/shims/python3
Run Code Online (Sandbox Code Playgroud)

我创建了一个桌面文件(文件位置:)~/.local/share/applications/my-tk-app.desktop

[Desktop Entry]
Type=Application
Terminal=false
Name=My Tk Application
Exec=/home/hakon/my-tkapp.py
Icon=/home/hakon/icons/my-tk-app-icon.png
StartupWMClass=MyTkApp
Run Code Online (Sandbox Code Playgroud)

对于图标,我只是(出于测试目的)复制了其中一个标准图标:

cp /usr/share/icons/hicolor/48/apps/apport.png /home/hakon/icons/my-tk-app-icon.png
Run Code Online (Sandbox Code Playgroud)

desktop-file-validate在桌面文件上运行命令没有输出,所以桌面文件应该没问题。

但是,当我从终端运行 python 脚本时:

~/my-tkapp.py
Run Code Online (Sandbox Code Playgroud)

我仍然在启动器中看到通用的问号图标。

我在这里俯瞰什么?

Jac*_*ijm 5

由于您的问题得到了很好的记录,我们可以找到问题:)

只是不一样的,你设置的窗口类; 首都不同。唯一的结论是,由于某种原因,您设置的窗口类(capital-format)不被窗口管理器接受。

当我将您的启动器更改为匹配时myTkApp

$ xprop WM_CLASS
Run Code Online (Sandbox Code Playgroud)

它工作正常(为了方便起见,我设置了 Firefox 图标,因为我没有你的图标):

WM_CLASS(STRING) = "myTkApp", "Mytkapp"
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明