Comment savoir quelle application est associée à une icône d'indicateur?

10

Il est trivial de le faire dans Ubuntu 10.04. La question est spécifique à Ubuntu 12.04.

Une composition utilisant le dbus avec des détails d'implémentation dans le suivi manque pour une raison quelconque, donc un alter ego a composé la réponse (le processus trivial mais quelque peu laborieux est expliqué ici ).

Cette réponse concernant gdbusest utile mais cette réponse est super utile - (la surcharge du système de repos a maintenant été réduite à un niveau acceptable ~ 10%).

quelques références pertinentes
(src: réponse à Quelle est la différence entre les indicateurs et un plateau de système? :
Voici la documentation des indicateurs:

Indicateurs d'application | Ubuntu App Developer
libindicate Reference Manual
libappindicator Reference Manual

également

ref: Comment identifier l'application qui fait une icône d'indicateur? (Ce lien redirige de manière inappropriée vers /ubuntu/184589/how-can-menu-bars-that-require-a-right-click-be-activated-like-ubuntu-versions )
signet: Comment fonctionne on découvrir quelle application est associée à une icône d'indicateur dans Ubuntu 12.04?
est une question sérieuse pour les raisons et les problèmes décrits ci-dessous et pour lesquels un investissement important a été fait et est nécessaire à des fins de réparation.


examen des références. trouver une résolution orchestrée ...
(un indicateur ap. indicateur peut-être nécessaire)


Cela n'a rien à voir (n'est-ce pas?) Avec un clic droit.

Comment faire correspondre l'icône d'un indicateur dans Ubuntu 12.04 avec le programme responsable de sa manifestation sur le panneau supérieur?

Une liste des applications en cours d'exécution peut inclure tous les processus utilisant System Monitor.

Comment le processus d'appariement correct est-il trouvé pour un indicateur?

Comment les applications des sous-indicateurs sont-elles identifiées? Ce sont les aps associés aux composants d'un menu déroulant d'indicateurs. (Ce devait être une question distincte et suit tout naturellement la progression. Elle est incluse ici car il est évident qu'il n'y a pas de provisionnement pour traquer facilement les sous-indicateurs ou les indicateurs aps. Facilement.)

s mélangé avec certains démons attendus et tâches en arrière-plan comme nm-applet - non seulement Xorg et compiz nécessitent un temps CPU excessif mais leur entourage doit aussi venir avec! exacerbant encore le problème - nos tâches liées au calcul ne fonctionnent plus efficacement sur le terrain - durée de vie de la batterie réduite, temps CPU réduit pour les applications personnalisées, etc. - et tout cela a été précipité par un examen de ce qui se passe avec l'ap de la batterie. indicateur - ce fut et n'est pas une rêverie désinvolte, rhétorique ou oiseuse, mais a des conséquences sur le déploiement crédible du 12.04 pour réduire l'impact négatif de ses frais généraux dans un environnement de production) temps CPU réduit pour les aps personnalisés, etc. - et tout cela a été précipité par un examen de ce qui se passe avec l'ap de la batterie. indicateur - ce fut et n'est pas une rêverie désinvolte, rhétorique ou oiseuse, mais a des conséquences sur le déploiement crédible du 12.04 pour réduire l'impact négatif de ses frais généraux dans un environnement de production) temps CPU réduit pour les aps personnalisés, etc. - et tout cela a été précipité par un examen de ce qui se passe avec l'ap de la batterie. indicateur - ce fut et n'est pas une rêverie désinvolte, rhétorique ou oiseuse, mais a des conséquences sur le déploiement crédible du 12.04 pour réduire l'impact négatif de ses frais généraux dans un environnement de production)

(J'ai un problème avec l'indicateur de batterie - il a parfois% et d'autres fois hh: mm - il est nécessaire de connaître les ap. & V. Pour obtenir plus d'informations sur le contrôle de celui-ci. Idem: Il y a des problèmes avec d'autres indicateurs aps. : Conflit NM / iwlist / iwconfig, commutateur BT vs RF, batterie ap. Sans suspension / veille pour une mauvaise autonomie de la batterie, ... la liste continue)

Détails de:
Comment trouver les ID d'indicateur d'application?

suggère de regarder:
file: ///usr/share/indicator-application/ordering-override.keyfile

[Ordering Index Overrides]
nm-applet=1
gnome-power-manager=2
ibus=3
gst-keyboard-xkb=4
gsd-keyboard-xkb=5

ce qui résout la batterie ap. identification, et probablement nm est NetworkManager pour l'icône rf, mais l'enveloppe, la dent bleue et l'indicateur de haut-parleur sont aps. sont encore un mystère. (De plus, la commande n'est pas corrélée.)

Rappelez-vous, il était simple dans le passé de simplement cliquer avec le bouton droit pour obtenir l' Aboutoption de trouver l'ap. & v. info.

navigation autour et sur:

fichier: ///usr/share/indicator-application/ordering-override.keyfile

examiné:
fichier: /// usr / partage / indicateurs
fichier: /// usr / partage / indicateurs / messages / applications /
...

peut-être? / vraisemblablement? les informations recherchées peuvent être enfouies dans le
dossier: /// usr / share / indicateurs

Une référence dans les commentaires a été donnée:
Quelle est la différence entre les indicateurs et une barre d'état système?
citant de cette source ...

Malheureusement, les indicateurs de bureau ne sont pas encore bien documentés: je n'ai trouvé aucun document de spécification ...

Eh bien ... le document réel
https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Summary
n'aide pas beaucoup mais ses informations existentielles fournissent un aperçu considérable ...

Amos Annoy
la source
et cette application est ...?
Amos Annoy
"L'indicateur BT est généralement utilisé par Blueman (ou similaire)" - mais comment savoir exactement? j'utilise peut-être "ou similaire"? cela n'aide pas - pouvez-vous me dire exactement comment examiner mon système pour déterminer sans ambiguïté exactement quelle application est associée à chaque indicateur? L'unité-panel-service est responsable de la manifestation dudit environnement, mais comment les applications de peuplement, associées à chaque indicateur, sont-elles déterminées?
Amos Annoy
quand les bons aps. sont des choses ciblées comme: bluetooth-applet --help (bluetooth-applet:25165): BluetoothApplet-WARNING **: Applet is already running, exitingpeut être fait - qu'est-ce que l'indicateur de messagerie ap.? il récupère probablement son contenu pour le menu déroulant à partir de:file:///usr/share/indicators/messages/applications/
Amos Annoy
La réponse que vous citez est obsolète, je l'ai mise à jour, j'espère que cela vous aidera.
Jorge Castro
TQ - espérons-le - avoir une bonne idée de la structure des indicateurs
Amos Annoy

Réponses:

3

Le service d'indicateur d'application dispose d'une API interne qui permettra de récupérer une liste de tous les indicateurs, y compris leurs adresses DBus. Vous pouvez le faire en utilisant cette ligne de commande:

gdbus call --session --dest com.canonical.indicator.application --object-path /com/canonical/indicator/application/service --method com.canonical.indicator.application.service.GetApplications

Vous récupérerez quelque chose de pas super utile, car il est au format pseudo-JSON. Si vous écrivez un script, vous pouvez le tirer dans un analyseur et travailler avec lui. Si vous êtes curieux de le faire une seule fois, lisez simplement le texte. Vous recherchez un champ qui ressemble à ceci: :1.XXX c'est l'adresse DBus pour l'indicateur.

Une fois que vous avez l'adresse de l'indicateur, vous pouvez demander à DBus quel est le PID pour cet indicateur. Vous demandez le PID :1.123comme ceci:

gdbus call --session --dest org.freedesktop.DBus --object-path / --method org.freedesktop.DBus.GetConnectionUnixProcessID :1.123

Après avoir maintenant le PID, vous pouvez demander /procdes informations sur le processus. Par exemple, si vous vouliez connaître la commande utilisée pour lancer le numéro de processus, 1vous pourriez faire:

cat /proc/1/cmndline

Bonne chance!

Ted Gould
la source
sucré! - ne savait pas gdbusespérait qu'une interface de haut niveau existait! - bien que ce ne soit pas encore une API (indicateur du panneau d'application) - il ne devrait pas être difficile de le "faire en sorte" - j'espère que ce sera bientôt fait - PS super doux
Amos Annoy
2

1ère itération

qdbus --literal   com.canonical.AppMenu.Registrar                  \
                 /com/canonical/Unity/Panel/Service                \
                  com.canonical.Unity.Panel.Service.Sync           \
| sed -e 's/[^{]*{\(.*\)}\]/\1/' | sed -e 's/\[[^"]*/[/g'          \
| sed -e 's/\[\(\(\("[^"]*"\|[^,"]*\), \)\{4\}\)[^]]*,\([^,]*\)\]/[\4, \1]/g' \
| sed -e 's/\[\([^,]*\, \)\("[^"]*",\)/[    \1\2                  /g'  \
| sed -e 's/\[ *\(....,.\{24\}\) */[\1/g'  | sed -e 's/\], \[/]\n[/g'  | sort -n -k2

produisant:

[  -1, "libprintersmenu.so",  "", "", "", ]
[   0, "libappmenu.so",       "0x9581b90", "", "_File", ]
[   1, "libappmenu.so",       "0x9582ad0", "", "_Edit", ]
[   2, "libappmenu.so",       "0x9583cf0", "", "_View", ]
[   3, "libappmenu.so",       "0x9585828", "", "_Search", ]
[   4, "libappmenu.so",       "0x9586da8", "", "_Tools", ]
[   5, "libappmenu.so",       "0x96575a0", "", "_Documents", ]
[   6, "libappmenu.so",       "0x96596e0", "", "_Help", ]
[ 200, "libmessaging.so",     "0x9238c7c", "indicator-messages", "", ]
[ 250, "libpower.so",         "0x9346c54", "indicator-power", "", ]
[ 300, "libapplication.so",   "0x86a6368", "bluetooth-manager", "", ]
[ 450, "libapplication.so",   "0x930f650", "nm-applet", "", ]
[ 500, "libsoundmenu.so",     "0x9346cac", "indicator-sound", "", ]
[ 550, "libdatetime.so",      "0x931581c", "indicator-datetime", " 4:59:07 PM", ]
[ 600, "libsession.so",       "0x92ed45c", "indicator-session-devices", "", ]

2ème itération

(avec icônes confirmant l'association)

qdbus --literal   com.canonical.AppMenu.Registrar                  \
                 /com/canonical/Unity/Panel/Service                \
                  com.canonical.Unity.Panel.Service.Sync           \
| sed -e 's/[^{]*{\(.*\)}\]/\1/' | sed -e 's/\[[^"]*/[/g'          \
| sed -e 's/\[\(\(\("[^"]*"\|[^,"]*\), \)\{4\}\)\([^,]*, \)\{3\}\("[^"]*"\)[^]]*,\([^,]*\)\]/[\6, \1 <\5>]/g' \
| sed -e 's/<"">\]/]/g'  | sed -e 's/<"\([^"]*">\]\)/<img src="data:image\/png;base64,\1/g'    \
| sed -e 's/\], \[/<\/td><\/tr>\n<tr><td>/g'  | sort -n -k2 | sed -e 's/, /<\/td><td>/g'        \
| sed -e 's/\[/<html><table>\n<tr><td>/' | sed -e 's/\]/<\/td><\/tr>\n<\/table><\/html>/' >hapi.html

produisant:

hapi.png

voici le hapi.html (sans fond noir de cellule):

<tr><td> -1</td><td>"libprintersmenu.so"</td><td>""</td><td>""</td><td>""</td><td> </td></tr>   /*  oops  */
<html><table>
<tr><td> 0</td><td>"libappmenu.so"</td><td>"0x8b12b38"</td><td>""</td><td>"_File"</td><td> </td></tr>
<tr><td> 1</td><td>"libappmenu.so"</td><td>"0x8a1cd30"</td><td>""</td><td>"_Edit"</td><td> </td></tr>
<tr><td> 2</td><td>"libappmenu.so"</td><td>"0x8b01b28"</td><td>""</td><td>"_View"</td><td> </td></tr>
<tr><td> 3</td><td>"libappmenu.so"</td><td>"0x8b35700"</td><td>""</td><td>"_Search"</td><td> </td></tr>
<tr><td> 4</td><td>"libappmenu.so"</td><td>"0x8b11350"</td><td>""</td><td>"_Terminal"</td><td> </td></tr>
<tr><td> 5</td><td>"libappmenu.so"</td><td>"0x8b142f0"</td><td>""</td><td>"Ta_bs"</td><td> </td></tr>
<tr><td> 6</td><td>"libappmenu.so"</td><td>"0x8b37528"</td><td>""</td><td>"_Help"</td><td> </td></tr>
<tr><td> 200</td><td>"libmessaging.so"  </td><td>"0x85c8c7c"</td><td>"indicator-messages"   </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAd9JREFUOI3t0UFP02AcBvDnfRvMSDzwBUy2CpZwwCN6Mc4FE8iQs9/BCzOytWxzm4EYMWEQMMHExE+gF+JxnuwYRtcWNlrcIurttRuY7WLCeD0V6+iE4cmEJ2nS9/n3/0ubAuf5b0Ocm92KkeEcUQAXzmj9BMFioH84CgDUaTnnSqlsrtXre9vdirVafbtUNt/wQz7ldPT3mAii6B9MpWYV9t02TosyZusPU7MxUfRLhJAeDxjo9fmGstknsWR6TrHtk3HGbF1OpOWlxXml1+cbcs9o+8OU0pGVpadxOfHorzhjth6dScaeP8smKKUjxxyvJYHSa6vLC8q0kpK9cMZsfSoiT79YXX4gCMJ1L8MTBoBms3kxErm3lc48ju/v/7Ccvl7bKyczczNy/H6p0Wj0ddo/yudPBneuwrucFgrdDFctbb1qaevB4I077/NvjT/6Hf1DeOz2xIaaK7p3O8IFNaePjgbHK5aWd7qKWVQlSbolSVKwYhbVo97SPk6GxyYKak5vh4kbBgBrp/pyoD9wiVIaOvEzAbRarfyXr992xYD/LgAEBoZJG6wfAEQ4DdYpnPMD8crVHsD184zN8ivOcfgPbMvY3HrtnIhrMgjgclvXlQygCsA8+8udp5v8AnS3+yjTJl0RAAAAAElFTkSuQmCC"></td></tr>
<tr><td> 250</td><td>"libpower.so"      </td><td>"0x86da454"</td><td>"indicator-power"      </td><td>""</td><td> <img src="data:image/png;base64,. GThemedIcon battery-charged battery-full-charged-symbolic battery-full-charged gpm-battery-charged gpm-battery-100-charging "></td></tr>
<tr><td> 300</td><td>"libapplication.so"</td><td>"0x86a6368"</td><td>"bluetooth-manager"    </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAWCAYAAAAW5GZjAAAABHNCSVQICAgIfAhkiAAAAchJREFUKJHNkc9LVFEUx7/3YUJF5EhgM6+GoBiEaNEy8g8ogihI2rSXYDIQNxW0EHEROdIsJkwEJ19kDWXRrjSKBgNzHO4d6um7b7xji9RZyFNxMVPvnjYpPXSyRYu+y3M+fL/nB/B/SjlipuTyW9v1jC0VhhgR61aycGNnGKTfZycGAeqplbCpOYd/N00z9jwz/FhJoZXkVwPOSoqEcvkZACAisizr64PBoUS1Ul354eubAdjzvOOk8bLkFM4BoKamfaHUvUSKGUZdMnm/OxBtmuapieybyTmHV4qzvFp0+JS082vxeNs1APu3LBqJRFo+ZscmlRTk2vn19njbdQAN211Dp9Ppwt49u+sBgBnGrtZLF74B8H6HGQDMz4uQX6FxX/tHGYz6crkswuGDJxljl48cOzEacPYr+gmRbh4YSHdprf2unju3FxaXuNZ6pOSKs4GBRzNWX2dHeweARsfOrQ7394ej0WjLTOFTuTjLFza4OgC42HolCWAFwDIAagyF6N3Yq/OMsQOvx9/erfE/wPmS86SdSygpdCrZ2wfgUE3YtfPrSgrKjDy0AByuCQLA9NSHzy+ePXoKIPZH8JdOA2j+G/Df6SfH0s58lIXOZQAAAABJRU5ErkJggg=="></td></tr>
<tr><td> 450</td><td>"libapplication.so"</td><td>"0x869f258"</td><td>"nm-applet"            </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAvJJREFUOI3tkk9sVFUUxn/n3XmP6WBk/gBCojDTMJPSocNURJSV2qW6EKIkBaRRE5WYsCAahJCMbtREjEkTEzHRhmJFYnRhZGFMmhIWTUmpxVJDZpipmbSdMm1RoH2vnb53XTA11NSWrQm/3T0n35fvnHPhPv9bZLFiNptd4fPsmChvPaJCrqv9BlgAKGPGc+dmDNGTniEjjmMOJZPJ2SWNi8Ur4YrtbTPE26hFDIDKTGV22rFtd9atAChLmYHAyhrTVBaA1tozxJfXKnApFov9ucA4k8kYLXtfSAOPahFjfHxisr9vYLTtq/byhZ6eaWAO8KoaA/A1NTUFDjTvWlu/Jbk+EgmHRIurtdEbjdf3i4gWgKFc/zMa2XTr1tTUF1+2DbS2fl4CpgC7UCiYWt9OaI2lPNd1DXOitra+KCIKqAEC7x8/8vCePbuTln+FX/Cy0U3pTgEY6O/eXSpdnznwypu/Dg8Pl4cGB8NYbrPWulkgpcH3rxXe1JqLhkhHBf938Xi8kk7XPfTpiU8aIpFQTUP6ybPzO14HVDKZzI2X9+06aGg+0PCA57n2WHl8oDQ6VnAcx1bKp4LBVeE1qyPRYHBVQkR8CKN4HI0lUqeAMHdClBYcL5/9bb+gTzm2ff2Xzq6vT3zcen6oWBwB/qru2QD8wIONjakNh946+NTOJ7a/ZFpmUDR7o4lUx7zXghHPfHM2X7c5ceadd9/ryOVyfedOn765+fGGZ0XkaY1s0KLnxGNYoOuHn74/1/LqG92PNTb+fOzY4Rd/H7xa+M/vBgSAR4Brf2SvJDzcH4FaFidvoJ7fGE/mgBhQBKYXTVxtXAUolcfS4VAw0nupr729/duuzvNdZaUsY8eO7aHXX2tpSm/d8tzkjfE0MDivWSrx3awDUkAeGAHsat1fnSoKXAZKi4mXMv6HQvbyh8Dbd176o1h869HlNOpejH2WMusS8Z2O40ycPNn2WXfPxWvLae4pMbAS2AZooJe7jnSfZfkbe1wfX9DFYSoAAAAASUVORK5CYII="></td></tr>
<tr><td> 500</td><td>"libsoundmenu.so"  </td><td>"0x86da4ac"</td><td>"indicator-sound"      </td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAABHNCSVQICAgIfAhkiAAAAudJREFUSIntkF1ok1cYx38njTW1rSkOZGjFK52fbKCCzsgWkIF4sV0IAxljIIiyi+mFCOLdwJuJn5tuQ7AVh1VX2Vjpqq6aZc5araZ5bWOak7dvl5W1YtOPtE1i3o+zC410Npoh1St/V+c8zzn/3zkPvOZVYEjtdyOunVRKuZ7uTSq8CP39900Unxmx9u1TkQdAT1z7skdqnwP4fKvfj3a0Depd4ZSut3knnnvmD/rD4XIjrgUNqQUK9dPjmQ0Kjuh6u+/atRt/trTerHW5RKWTc20pKlBKudIefkCxDnhPqXMlAIYMb++Wdz8A+O5E7RFQysra+wDzZG3d947j5EzT3FxU0KN3HBAu8WF+HwhEBIBp2rtQTn0iemfO4aPHfurru3+7tHTa2kT0zpxgMCiTyWSHx+N5W0o5fZKgO6b9ZkhNGVJTKPVFIfGVwB91QoiKtGV/AqT+SvReAlypdHY9YI2OjXcKIdy58eElhX7gLxQ6kWis6xxAOpNZCWA6uRDAWDq9CMAyzV6AgcGBec8d0bOIROISQCBmA1SWlQ8CWLZVCSBEyQiAbVtVLyQ4dGjfTIBMNpMC8FbN8gJksw9HATye0hkAIyOj2UmCZDIZKSZQtrXh0dnBKEBlxYxlAAPJ4e5HAs+bAGOZ8b78HXd+sWqNfyvwBsCvDfXbFr21YOPTglL39L22bWUaG5ouAFSUl3/kOE6usakxCFBW5lnuOI5VU1P35LHuCfdb8otNH3+aaGr4saq6eu7aiYLW1ps/9yQSyeMnakKGDK8GsaL3n77rp06dNXS9zYvlXjk0NHyvubl5qNg0xNKFC323Wq7ebbsRiADicX0+MBtARkPt3THN3rN752YAGQntMKSmzp+p+apYeJ4SYA3wbqHmxcYLp7/9+uBBwPt3Z+eseDT0IHbvdsrv9y/9v4JiLAbmAehd7fWG1NTxbw7s579jnxo6Qi2dVy//cgWonvLwx/iAd15W+HP5F1PVVGkwY49EAAAAAElFTkSuQmCC"></td></tr>
<tr><td> 550</td><td>"libdatetime.so"   </td><td>"0x86a581c"</td><td>"indicator-datetime"   </td><td>" 5:25:55 PM"</td><td> </td></tr>
<tr><td> 600</td><td>"libsession.so"    </td><td>"0x867cc5c"</td><td>"indicator-session-devices"</td><td>""</td><td> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABHNCSVQICAgIfAhkiAAAAlZJREFUOI3tlE9IVFEUxr/z/tgkKBHpJhEkRF4LV1GOIC2yRcxEEmGLJHAIhXCjCzdu3BVBC3VTi9rr2iwt9Q0ElTmO8yZtnOv4JKHIHi7m5XvlDJ4WOTA8549uow/u4p7znd89F869wH8dV6Yw2BQGH9UvFQomEokqIZZqyhWvr8dqE4lE1ZHAQojqCun3tMSKLkSsblPEQ16PmTS6hYjVSfvQVfr1SghRXRacTEYrHcepkQjnFdAmg58daofwXAFtEpHmum5tMhmtLAsOBDp3+geGBpk5C0B2XPe71+O47jYAmZmz/QNDg4FA505ZMIC9sZGH9USkOLvO1zt37/V6Dd3d93udXecbESmjIw/qAOwdBQxmdAHAm/nwk+Xl+JQ3vxCJTM3Nh58CAIO6CjGU/I13nCLRpXEAGQBoaGy+nn+r2NKniWDw2vBJn+9irq6hsZlKdpxTS8vlH3nbyYMFAGhrb98uVetVEEAw8iG8agqDP8cXbhYzrsYXbpvC4MX3+mquLj/v7XgSwGQqtfESABRVeWSa0VNe6NbKyukKVX0MAKnUxgvvbQqBAQBzs2/HmTmryMo5zsgfzXWj4+9rFNUbInYrq2YNWZbPMnM2rL+bKMQgb2BtbfGMSuosETUzY5+o6OTsE0FiZiPDmStNTReskh3regTptC3Z9s8voZ6+0PTr2THLsoxc3rIsY2ZmbjTU0xeybXsrnbZJ1yOFzj4kRdO0q62tl24A8AGoB+DP+938BzFfW5u/Q9O0dnjGtiQcQEV+oMi3eeI40GI6NFL/lv4A7ogQZ4Yx+nYAAAAASUVORK5CYII="></td></tr>
</table></html>

Confirmé: [crud] correspond aux données d'image d'icône selon data:image/png;base64,[crud]

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAWCAYAAADafVyIAAAABHNCSVQICAgIfAhkiAAAAudJREFUSIntkF1ok1cYx38njTW1rSkOZGjFK52fbKCCzsgWkIF4sV0IAxljIIiyi+mFCOLdwJuJn5tuQ7AVh1VX2Vjpqq6aZc5araZ5bWOak7dvl5W1YtOPtE1i3o+zC410Npoh1St/V+c8zzn/3zkPvOZVYEjtdyOunVRKuZ7uTSq8CP39900Unxmx9u1TkQdAT1z7skdqnwP4fKvfj3a0Depd4ZSut3knnnvmD/rD4XIjrgUNqQUK9dPjmQ0Kjuh6u+/atRt/trTerHW5RKWTc20pKlBKudIefkCxDnhPqXMlAIYMb++Wdz8A+O5E7RFQysra+wDzZG3d947j5EzT3FxU0KN3HBAu8WF+HwhEBIBp2rtQTn0iemfO4aPHfurru3+7tHTa2kT0zpxgMCiTyWSHx+N5W0o5fZKgO6b9ZkhNGVJTKPVFIfGVwB91QoiKtGV/AqT+SvReAlypdHY9YI2OjXcKIdy58eElhX7gLxQ6kWis6xxAOpNZCWA6uRDAWDq9CMAyzV6AgcGBec8d0bOIROISQCBmA1SWlQ8CWLZVCSBEyQiAbVtVLyQ4dGjfTIBMNpMC8FbN8gJksw9HATye0hkAIyOj2UmCZDIZKSZQtrXh0dnBKEBlxYxlAAPJ4e5HAs+bAGOZ8b78HXd+sWqNfyvwBsCvDfXbFr21YOPTglL39L22bWUaG5ouAFSUl3/kOE6usakxCFBW5lnuOI5VU1P35LHuCfdb8otNH3+aaGr4saq6eu7aiYLW1ps/9yQSyeMnakKGDK8GsaL3n77rp06dNXS9zYvlXjk0NHyvubl5qNg0xNKFC323Wq7ebbsRiADicX0+MBtARkPt3THN3rN752YAGQntMKSmzp+p+apYeJ4SYA3wbqHmxcYLp7/9+uBBwPt3Z+eseDT0IHbvdsrv9y/9v4JiLAbmAehd7fWG1NTxbw7s579jnxo6Qi2dVy//cgWonvLwx/iAd15W+HP5F1PVVGkwY49EAAAAAElFTkSuQmCC
george rowell
la source
Idéalement, au lieu de HTML, un script bash remplissant le panneau indicateur avec un identifiant d'icône HAPI intégré ap, qui incluait la version des aps résidents, faciliterait l'isolement des informations spécifiques à la version, des nuances et des fonctionnalités idiosyncratiques.
George Rowell le
les diatribes roulantes se manifestent de 2 façons - la 2ème voie est ici avec un langage artificiel fondé sur le 1er, avec un langage naturel et précipité par une nuisance, une irritation ou une gêne conséquente, généralement de manière anonyme (gênante) (c.-à-d. des versions et des ap non conditionnés et non identifiés agacer anonymement) ainsi l'alter ego - Amos Annoy (ed)
george rowell
Remarque: le champ d'icône indicateur de puissance est un peu bancal et non conventionnel? par rapport à l'utilisation sur le terrain avec des données d'image d'icône par d'autres amplis - même ceux avec des icônes changeantes comme NM
george rowell
2

Malheureusement -

gdbus call --session --dest com.canonical.indicator.application                \
             --object-path /com/canonical/indicator/application/service        \
                   --method com.canonical.indicator.application.service.GetApplications

n'énumère pas de manière exhaustive toutes les icônes d'indicateur ou leurs sous-indicateurs. Le menu MI (indicateur de messagerie) s'interface avec plusieurs aps de communication de sous-indicateur. ne sont pas répertoriés. Il manque également les informations relatives à l'indicateur d'alimentation, de volume et d'horloge.

qdbusest plus simple à utiliser et d-feetfournit une interface graphique pour faire de même, ainsi que facilement lister les valeurs des propriétés.

Utilisez qdbuscomme suit:

qdbus  --literal | sort

triple clic pour sélectionner com.canonical.indicator.applicationw / nl dans la sortie

...  
:1.97  
:1.98  
 ca.desrt.dconf  
 com.canonical.AppMenu.Registrar  
 com.canonical.hud  
 com.canonical.indicator.application  
 com.canonical.indicator.datetime  
 com.canonical.indicator.messages  
 com.canonical.indicator.printers
 com.canonical.indicator.session
 com.canonical.indicator.sound
 com.canonical.Unity
 ...  

Composez la commande suivante avec la bash historycommande de répétition vers le haut (supprimez la | sort pour ne laisser que qdbus --literal) et appuyez sur le bouton central de la souris pour terminer la commande:

qdbus  --literal  com.canonical.indicator.application

Triple clic sur la dernière ligne

/
/org
/org/ayatana
/org/ayatana/indicator
/org/ayatana/indicator/service
/com
/com/canonical
/com/canonical/indicator
/com/canonical/indicator/application
/com/canonical/indicator/application/service

Appuyez sur l'historique des répétitions vers le haut, la barre d'espace et le bouton central de la souris pour composer:

qdbus  --literal  com.canonical.indicator.application  /com/canonical/indicator/application/service

Double-cliquez pour sélectionner la méthode souhaitée dans la sortie et appuyez sur la flèche vers le haut, la barre d'espace et le bouton central de la souris pour créer la commande et appuyez sur Entrée pour l'exécuter. (la continuation de la ligne est ajoutée pour plus de clarté dans cet exemple):

qdbus  --literal  com.canonical.indicator.application                \
                 /com/canonical/indicator/application/service        \
                  com.canonical.indicator.application.service.GetApplications

Cela ne produit que les informations des indicateurs BT et NM (assez imprimées ici pour l'exposition)

[Argument: a(sisossssss)
  {[Argument: (sisossssss)
    "bluetooth-active", 
    0, 
    ":1.155",
    [ObjectPath: /org/ayatana/NotificationItem/bluetooth_manager/Menu],
    "",
    "",
    "",
    "Bluetooth: On",
    "bluetooth-manager",
    "Bluetooth"],
    [Argument: (sisossssss) 
    "nm-signal-75", 
    1, 
    ":1.21", 
    [ObjectPath: /org/ayatana/NotificationItem/nm_applet/Menu], 
    "", 
    "", 
    "", 
    "Wireless network connection 'office WiFi 1' active: office WiFi (77%)", 
    "nm-applet", 
    "Network"]
  }
]

Les autres indicateurs sont référencés comme les autres com.canonical.indicator. ...interfaces (listées au début), cependant c'est probablement le must utile mais les indicateurs de sous-menu aps ne sont toujours pas identifiés:

qdbus --literal   com.canonical.AppMenu.Registrar               \
                 /com/canonical/Unity/Panel/Service             \
                  com.canonical.Unity.Panel.Service.Sync

bien qu'il y ait beaucoup de crud (bits d'image d'icône probablement), la sortie élaguée et joliment est:

[Argument: a(ssssbbusbbi) {
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9733fe0", "", "_File", true, true, 0, "", false, false, 0],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x97352e0", "", "_Edit", true, true, 0, "", false, false, 1],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9737868", "", "_View", true, true, 0, "", false, false, 2],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9738920", "", "_Search", true, true, 0, "", false, false, 3],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x9739e10", "", "_Terminal", true, true, 0, "", false, false, 4],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x973c070", "", "Ta_bs", true, false, 0, "", false, false, 5],
[Argument: (ssssbbusbbi) "libappmenu.so", "0x973d6a0", "", "_Help", true, true, 0, "", false, false, 6],
[Argument: (ssssbbusbbi) "libapplication.so", "0x90cdcd0", "bluetooth-manager",  "", false, false, 1, "<... crud ...>", true, true, 300],
[Argument: (ssssbbusbbi) "libapplication.so", "0x8e861a8", "nm-applet",          "", false, false, 1, "<... crud ...>", true, true, 450],
[Argument: (ssssbbusbbi) "libprintersmenu.so", "", "", "", false, false, 0, "", false, false, -1],
[Argument: (ssssbbusbbi) "libmessaging.so",   "0x8dabc7c", "indicator-messages", "", false, false, 1, "<... crud ...>", true, true, 200],
[Argument: (ssssbbusbbi) "libpower.so",       "0x8f0405c", "indicator-power",    "", true, false, 6,
   ". GThemedIcon battery-charged battery-full-charged-symbolic battery-full-charged gpm-battery-charged gpm-battery-100-charging ", true, true, 250],
[Argument: (ssssbbusbbi) "libsoundmenu.so",   "0x8f040b4", "indicator-sound",    "", false, false, 1, "<... crud ...>", true, true, 500],
[Argument: (ssssbbusbbi) "libdatetime.so",    "0x8e8881c", "indicator-datetime", " 1:16:10 AM", true, true, 0, "", false, false, 550],
[Argument: (ssssbbusbbi) "libsession.so",     "0x8e6045c", "indicator-session-devices", "", false, false, 1, "<... crud ...>", true, true, 600]}]

Remarque: Les numéros de terminaison 600, 550, 500, 450, 300, 250, 200 sont en corrélation, de droite à gauche, en faisant correspondre les aps avec leurs icônes d'indicateur.

george rowell
la source
malheureusement, les aps ne sont pas qualifiés avec leurs numéros de version pour identifier les installations mal conditionnées et la dégradation du système qui en découle - il faut beaucoup de main-d'œuvre pour rechercher les aps d'indicateurs incriminés avec leurs versions spécifiques sur les systèmes compromis - Quelqu'un connaît-il un moyen rapide de les identifier lorsque leurs menus À propos sont manquants?
George Rowell