Я сделал файл .desktop, чтобы иметь возможность запускать свой скрипт на python с панели запуска.
Я установил скрипт Python как исполняемый файл, и он работает нормально, если дважды щелкнуть и запустить его из файлового менеджера. Он также работает нормально от терминала.
Файл рабочего стола находится в /.local/share/applications/
и выглядит следующим образом:
[Desktop Entry]
Version=1.0
Name=Simple Timer
Comment=Timer
Exec=python3 /home/user/app/timer.py
Icon=/home/user/app/icon/timer.png
Path=/home/user/app/timer/
Terminal=false
Type=Application
Categories=Utility;Application;
Если я ищу «Таймер» в Dash, он появляется. Я могу запустить его оттуда. Запуск его создаст две дублированные иконки на панели запуска, как показано на рисунке.
Если я запускаю скрипт из файлового менеджера. Создает 1 значок запуска, который ведет себя нормально.
Я убедился, что в /usr/share/applications/
нет дубликатов файлов .desktop. Мой созданный файл .desktop существует только в /.local/share/applications/
, и если он будет удален, я больше не смогу искать свой таймер в Dash или привязывать его к панели запуска.
Как я могу исправить как пульсирующую / не щелкающую проблему, так и проблему с двойным значком?
Окна Specifically Tkinter не распознают свое "собственное" окно (класс). Это заставляет значок мигнуть напрасно, ожидая его окна. После того как окно появляется, средство запуска не распознает свое собственное окно и высовывается из средства запуска, когда тайм-аут передал. Так как "нормальное" окно всегда представлено значком в средстве запуска, Вас оставляют с универсальным значком (обычно, если нет никакого дублирующегося средства запуска), или другой (см. далее ниже).
Можно просто зафиксировать это путем добавления:
StartupWMClass=Tk
к Вашему средству запуска (так как это - окно Tkinter),
Посмотрите на различие (я дал средству запуска значок Firefox для тестирования):
без строки, при открытии нескольких окон. Наблюдайте три универсальных значка + мигающий значок Firefox, исчезая после 10 секунд или около этого.
Теперь я добавляю строку StartupWMClass=Tk
, все окна сгруппированы в том же значке:
Добавление WM_CLASS в Ваш .desktop файл устранит Вашу проблему. Я вполне уверен однако, Вы случайно создали дополнительное средство запуска (или имейте созданный тот Единицы автоматически). Заглянуть /.local/share/applications/
и сделайте свой исполняемый файл средств запуска. Значок покажет. Скорее всего, у Вашей простофили будет "единица" на ее имя.
Откройте терминал, введите
xprop WM_CLASS
Впоследствии нажмите на окно. две строки кажутся, разделенными запятой. Тот в случае Заголовка является одной потребностью yoiu добавить.
Не Ваша проблема, но:
Вы не должны устанавливать строки ниже:
Version=1.0
(никакой вред, но не нужный)python3
(у Вас может быть вызов сценария интерпретатор непосредственно),Path=/home/user/app/timer/
(ненужный)Terminal=false
(это - значение по умолчанию),