Пользовательский значок запуска открывает второй общий значок

Я написал скрипт в python, чтобы сделать громкость громче, используя pactl. Я сделал файл .desktop

[Desktop Entry] Type=Application Terminal=false Name=Super Volume Icon=/home/tyler/SuperVolume/icon.ico Exec=/home/tyler/SuperVolume/SuperVolume.py

Все было хорошо

, но потом я заметил, что он не добавлял белую стрелку к моему значку, а открывал общий значок и помещал стрелку на этом

Launcher item with icon [!d3]

Итак, если кто-нибудь может сказать мне, как изменить это, я бы очень признателен, что много искал, прежде чем спрашивать здесь, но, возможно, используя правильные ключевые слова, не уверен.

6
задан 19 April 2017 в 00:06

5 ответов

О окнах Tkinter

Окно в вашем изображении - это окно Tkinter. Окна Tkinter по умолчанию не соответствуют значку launcher, если вы специально не задали пусковую установку (файл .desktop) в соответствии с WM_CLASS окна. Дальше ниже объясняется, как это сделать.

однако

Если вы не определяете конкретный WM_CLASS в коде python / Tkinter, все окна Tkinter имеют тот же WM_CLASS. Вы можете видеть, что если вы запустили

xprop WM_CLASS

в терминале, нажмите «Return» и затем щелкните по окну Tkinter. Это покажет:

WM_CLASS(STRING) = "tk", "Tk"

Это означает, что если у вас возможно несколько приложений Tkinter, все они будут отображаться под одним и тем же значком в панели запуска. Это будет Tkinter , если вы не отредактируете файл .desktop.

Как установить distintive WM_CLASS в python / Tkinter

Вы можете определить 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 file:

StartupWMClass=applicationname

где applicationname - это имя, которое вы указали в коде python / Tkinter.

2
ответ дан 22 May 2018 в 23:37

О окнах Tkinter

Окно в вашем изображении - это окно Tkinter. Окна Tkinter по умолчанию не соответствуют значку launcher, если вы специально не задали пусковую установку (файл .desktop) в соответствии с WM_CLASS окна. Дальше ниже объясняется, как это сделать.

однако

Если вы не определяете конкретный WM_CLASS в коде python / Tkinter, все окна Tkinter имеют тот же WM_CLASS. Вы можете видеть, что если вы запустили

xprop WM_CLASS

в терминале, нажмите «Return» и затем щелкните по окну Tkinter. Это покажет:

WM_CLASS(STRING) = "tk", "Tk"

Это означает, что если у вас возможно несколько приложений Tkinter, все они будут отображаться под одним и тем же значком в панели запуска. Это будет Tkinter , если вы не отредактируете файл .desktop.

Как установить distintive WM_CLASS в python / Tkinter

Вы можете определить 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 file:

StartupWMClass=applicationname

где applicationname - это имя, которое вы указали в коде python / Tkinter.

2
ответ дан 18 July 2018 в 14:57

О окнах Tkinter

Окно в вашем изображении - это окно Tkinter. Окна Tkinter по умолчанию не соответствуют значку launcher, если вы специально не задали пусковую установку (файл .desktop) в соответствии с WM_CLASS окна. Дальше ниже объясняется, как это сделать.

однако

Если вы не определяете конкретный WM_CLASS в коде python / Tkinter, все окна Tkinter имеют тот же WM_CLASS. Вы можете видеть, что если вы запустили

xprop WM_CLASS

в терминале, нажмите «Return» и затем щелкните по окну Tkinter. Это покажет:

WM_CLASS(STRING) = "tk", "Tk"

Это означает, что если у вас возможно несколько приложений Tkinter, все они будут отображаться под одним и тем же значком в панели запуска. Это будет Tkinter , если вы не отредактируете файл .desktop.

Как установить distintive WM_CLASS в python / Tkinter

Вы можете определить 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 file:

StartupWMClass=applicationname

где applicationname - это имя, которое вы указали в коде python / Tkinter.

2
ответ дан 24 July 2018 в 20:31

О окнах Tkinter

Окно в вашем изображении - это окно Tkinter. Окна Tkinter по умолчанию не соответствуют значку launcher, если вы специально не задали пусковую установку (файл .desktop) в соответствии с WM_CLASS окна. Дальше ниже объясняется, как это сделать.

однако

Если вы не определяете конкретный WM_CLASS в коде python / Tkinter, все окна Tkinter имеют тот же WM_CLASS. Вы можете видеть, что если вы запустили

xprop WM_CLASS

в терминале, нажмите «Return» и затем щелкните по окну Tkinter. Это покажет:

WM_CLASS(STRING) = "tk", "Tk"

Это означает, что если у вас возможно несколько приложений Tkinter, все они будут отображаться под одним и тем же значком в панели запуска. Это будет Tkinter , если вы не отредактируете файл .desktop.

Как установить distintive WM_CLASS в python / Tkinter

Вы можете определить 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 file:

StartupWMClass=applicationname

где applicationname - это имя, которое вы указали в коде python / Tkinter.

2
ответ дан 31 July 2018 в 12:25

О окнах Tkinter

Окно в вашем изображении - это окно Tkinter. Окна Tkinter по умолчанию не соответствуют значку launcher, если вы специально не задали пусковую установку (файл .desktop) в соответствии с WM_CLASS окна. Дальше ниже объясняется, как это сделать.

однако

Если вы не определяете конкретный WM_CLASS в коде python / Tkinter, все окна Tkinter имеют тот же WM_CLASS. Вы можете видеть, что если вы запустили

xprop WM_CLASS

в терминале, нажмите «Return» и затем щелкните по окну Tkinter. Это покажет:

WM_CLASS(STRING) = "tk", "Tk"

Это означает, что если у вас возможно несколько приложений Tkinter, все они будут отображаться под одним и тем же значком в панели запуска. Это будет Tkinter , если вы не отредактируете файл .desktop.

Как установить distintive WM_CLASS в python / Tkinter

Вы можете определить 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 file:

StartupWMClass=applicationname

где applicationname - это имя, которое вы указали в коде python / Tkinter.

2
ответ дан 31 July 2018 в 23:32

Другие вопросы по тегам:

Похожие вопросы: