Це ситуація:
Працюючи над (наступною версією) редактором швидкого списку Unity, я хотів би додати надійний спосіб "перезавантаження" піктограм запуску. Для цього мені потрібно видалити піктограму (редагування gsettings) і замінити її на ту саму позицію. Поки жодної проблеми. Однак, якщо програма, про яку йде мова, користувач, можливо, втратить дані, оскільки програма закриє, коли її значок буде знятий із запуску. Що мені потрібно - це надійний спосіб знайти ім'я процесу програми, щоб редактор перевірив список запущених процесів, якщо програма запущена, і надіслати повідомлення користувачеві про те, що піктограму неможливо перезапустити, якщо програма є біг.
Що я зробив поки що, це змусити редактор заглянути у файл робочого столу, прочитати команду, також прочитати команду, вилучену з розділу каталогу, а також розглянути можливі віддалені сценарії, на які може посилатися команда файлу настільних ПК, шукаючи рядки, що починаються з "./"
Хоча метод, здається, добре працює з усіма програмами, на яких я його протестував, я вважаю, що повинен бути простіший спосіб вирішити проблему "все в один спосіб" ...
Є там?
Запрошуємо також запропонувати більше виняткових ситуацій!
ps
і у xprop
вихідному?
.desktop
файлу, який не обов'язково є WM_CLASS. WM_CLASS можна встановити з програми.
firefox.desktop
, він запускає firefox з PID 1234, але змінився WM_CLASS
на щось на кшталт "Totally Not Firefox". Однак .desktop
файл не змінюється. Ви хочете, щоб ім’я додалося до PID 1234 незалежно від WM_CLASS
. Я думаю, що я бачу саме те, що потрібно зробити. Але ти не відповів на моє перше запитання - чи гаразд, якщо це лише для Єдності?