Voici la situation:
En travaillant sur (la prochaine version de) un éditeur de liste rapide Unity, je voudrais ajouter un moyen fiable de "redémarrer" les icônes du lanceur. Pour ce faire, je dois supprimer l'icône (modification des paramètres) et la replacer à la même position. Jusqu'à présent, aucun problème. Cependant, si l'application en question est en cours d'exécution, l'utilisateur risque de perdre des données, car l'application se fermera lorsque son icône sera supprimée du lanceur. J'ai besoin d'un moyen fiable pour trouver le nom du processus d'une application, pour permettre à l'éditeur de vérifier dans la liste des processus en cours d'exécution si l'application est en cours d'exécution et d'envoyer un message d'avertissement à l'utilisateur que l'icône ne peut pas être redémarrée si l'application est fonctionnement.
Ce que j'ai fait jusqu'à présent, c'est que l'éditeur regarde dans le fichier de bureau, pour lire la commande, également lire la commande, supprimée de la section du répertoire, et en outre rechercher dans les scripts distants possibles auxquels la commande de fichier de bureau pourrait se référer, à la recherche de chaînes commençant avec "./"
Bien que la méthode semble bien fonctionner avec toutes les applications sur lesquelles je l'ai testée, j'ai le sentiment qu'il doit y avoir un moyen plus simple de couvrir le problème de manière "tout en un" ...
Y a-t-il?
Des suggestions pour attraper des situations plus exceptionnelles sont également les bienvenues!
ps
et xprop
?
.desktop
fichier, qui n'est pas nécessairement WM_CLASS. WM_CLASS peut être défini à partir de l'application.
firefox.desktop
, il lance Firefox avec PID 1234, mais a changé WM_CLASS
pour quelque chose comme 'Totally Not Firefox'. Le .desktop
fichier ne change cependant pas. Vous souhaitez obtenir le nom attaché au PID 1234 indépendamment de WM_CLASS
. Je pense que je vois exactement ce qui doit être fait. Mais vous n'avez pas répondu à ma première question - est-ce OK si ce n'est que pour Unity?