我用 Python 编写了一个脚本,使用 pactl 来提高音量。我创建了一个 .desktop 文件
[Desktop Entry]
Type=Application
Terminal=false
Name=Super Volume
Icon=/home/tyler/SuperVolume/icon.ico
Exec=/home/tyler/SuperVolume/SuperVolume.py
一切都好
但后来我注意到它并没有将白色箭头添加到我的图标上,而是打开一个通用图标并将箭头放在上面
所以如果有人能告诉我如何改变这种情况,我将不胜感激,在问这个问题之前我已经在 Google 上搜索了很多,但可能没有使用正确的关键词,不确定。
答案1
关于 Tkinter 窗口
图片中的窗口是特金特窗口。默认情况下,Tkinter 窗口与启动器图标不匹配除非您专门设置启动器(.desktop
文件)以匹配窗口WM_CLASS
。下面进一步解释如何做到这一点。
然而
如果你没有WM_CLASS
在python
/Tkinter
代码中定义特定的 ,则所有Tkinter
窗口都具有相同的WM_CLASS
。你可以看到,如果你运行
xprop WM_CLASS
在终端中,按Return,然后单击Tkinter
窗口。这将显示:
WM_CLASS(STRING) = "tk", "Tk"
这意味着如果你有多个Tkinter
应用程序,它们都会出现在启动器中的同一个图标下。这将是一个通用的除非您编辑.desktop
文件。
如何在 python/Tkinter 中设置独特的 WM_CLASS
WM_CLASS
您可以通过如下设置来定义:
#!/usr/bin/env python3
from tkinter import *
# set the WM_CLASS
win = Tk(className="applicationname")
# set the window title
win.wm_title("Test 123")
win.mainloop()
将 WM_CLASS 添加到你的 .desktop 文件
将以下行添加到您的.desktop
文件:
StartupWMClass=applicationname
您在/代码applicationname
中设置的名称在哪里。python
Tkinter