Sobre as janelas do Tkinter
A janela da sua imagem é uma janela Tkinter . As janelas do Tkinter, por padrão, não correspondem ao ícone do inicializador , a menos que você defina especificamente o ativador ( .desktop file) para corresponder à WM_CLASS da janela. Mais abaixo é explicado como fazer isso.
no entanto
Se você não definir um WM_CLASS específico no seu código python / Tkinter , todas as janelas Tkinter terão o mesmo WM_CLASS . Você pode ver que se você executar
xprop WM_CLASS
em um terminal, pressione Return e, em seguida, clique na janela Tkinter . Isso mostrará:
WM_CLASS(STRING) = "tk", "Tk"
Isso significa que, se você tiver vários aplicativos Tkinter , todos eles aparecerão sob o mesmo ícone no iniciador. Isso seria um genérico , a menos que você edite seu arquivo .desktop .
Como definir um WM_CLASS distintivo em python / Tkinter
Você pode definir o WM_CLASS definindo-o abaixo:
#!/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()
Adicione o WM_CLASS ao seu arquivo .desktop
Adicione a seguinte linha ao seu arquivo .desktop :
StartupWMClass=applicationname
em que applicationname é o nome que você definiu no código python / Tkinter .
mas então eu notei que não estava adicionando a seta branca ao meu ícone, mas abrindo um ícone genérico e colocando a seta sobre isso