Wie findet man heraus, welche Anwendung einem Indikatorsymbol zugeordnet ist?

10

In Ubuntu 10.04 ist dies trivial. Die Frage ist spezifisch für Ubuntu 12.04.

Aus irgendeinem Grund fehlt eine Komposition, die den dbus mit Implementierungsdetails im Follow-up verwendet, sodass ein Alter Ego die Antwort komponierte (der triviale, aber etwas mühsame Prozess wird hier erklärt ).

Diese Antwort bezüglich gdbusist nützlich, aber diese Antwort ist sehr nützlich - (der Overhead des Ruhesystems wurde jetzt auf akzeptable ~ 10% reduziert).

Einige relevante Referenzen
(src: Antwort auf Was ist der Unterschied zwischen Indikatoren und einer Taskleiste ? :
Hier ist die Dokumentation für Indikatoren:

Anwendungsindikatoren | Ubuntu App Developer
libindicate Referenzhandbuch
libappindicator Referenzhandbuch

ebenfalls

ref: Wie kann die Anwendung identifiziert werden, die ein Indikatorsymbol erstellt? (Dieser Link leitet unangemessen zu /ubuntu/184589/how-can-menu-bars-that-require-a-right-click-be-activated-like-ubuntu-versions weiter. )
Lesezeichen: Wie funktioniert man findet heraus, welche Anwendung mit einem Indikatorsymbol in Ubuntu 12.04 verbunden ist?
ist eine ernste Frage aus den unten aufgeführten Gründen und Problemen, für die eine erhebliche Investition getätigt wurde und die zu Abhilfezwecken erforderlich ist.


Überprüfung der Refs. um eine orchestrierte Auflösung zu finden ...
(ein Indikator ap. Indikator wird möglicherweise benötigt)


Dies hat nichts mit Rechtsklick zu tun (oder?).

Wie kann das Symbol eines Indikators in Ubuntu 12.04 mit dem Programm abgeglichen werden, das für seine Manifestation im oberen Bereich verantwortlich ist?

Eine Liste laufender Anwendungen kann alle verwendeten Prozesse enthalten System Monitor.

Wie wird der richtige Abgleich für einen Indikator gefunden?

Wie werden die Subindikatoranwendungen identifiziert? Dies sind die Aps, die den Komponenten eines Dropdown-Menüs für Indikatoren zugeordnet sind. (Dies sollte eine separate Frage sein und folgt ganz natürlich dem Fortschritt. Sie ist hier enthalten, da es offensichtlich keine Vorkehrungen gibt, um beleidigende Sub- oder Indikator-Aps leicht aufzuspüren.)

Es wird mit einigen erwarteten Daemons und Hintergrundaufgaben wie dem nm-Applet gemischt - Xorg und Compiz erfordern nicht nur übermäßige CPU-Zeit, sondern auch deren Gefolge! Eine weitere Verschärfung des Problems - unsere rechnergebundenen Aufgaben funktionieren vor Ort nicht mehr effektiv - verkürzte Batterielebensdauer, verkürzte CPU-Zeit für benutzerdefinierte APs usw. - und all dies ergab sich aus einer Untersuchung der Vorgänge mit der Batterie-AP. Indikator - dies war und ist keine flippige, rhetorische oder müßige Überlegung, hat aber Konsequenzen für den glaubwürdigen Einsatz von 12.04, um die negativen Auswirkungen des Overheads in einer Produktionsumgebung zu verringern. Reduzierte CPU-Zeit für benutzerdefinierte APs usw. - und all dies ergab sich aus einer Untersuchung der Vorgänge mit der Batterie-AP. Indikator - dies war und ist keine flippige, rhetorische oder müßige Überlegung, hat aber Konsequenzen für den glaubwürdigen Einsatz von 12.04, um die negativen Auswirkungen des Overheads in einer Produktionsumgebung zu verringern. Reduzierte CPU-Zeit für benutzerdefinierte APs usw. - und all dies ergab sich aus einer Untersuchung der Vorgänge mit der Batterie-AP. Indikator - dies war und ist keine flippige, rhetorische oder müßige Überlegung, hat aber Konsequenzen für den glaubwürdigen Einsatz von 12.04, um die negativen Auswirkungen des Overheads in einer Produktionsumgebung zu verringern.

(Ich habe ein Problem mit der Batterieanzeige - sie hat manchmal% und manchmal hh: mm - es ist notwendig, die ap. & V. Zu kennen, um weitere Informationen zur Steuerung derselben zu erhalten. Dito: Es gibt Probleme mit anderen Anzeige-Aps. : NM vs. iwlist / iwconfig Konflikt, BT ap. Vs RF-Schalter, Batterie ap. Ohne Unterbrechung / Ruhezustand für schlechte Batterielaufzeit, ... die Liste geht weiter)

Details von:
Wie finde ich Anwendungsindikator-IDs?

schlägt vor, sich
Folgendes anzusehen : 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

das löst die Batterie ap. Identifikation und vermutlich nm ist NetworkManager für das HF-Symbol, aber die Umschlag-, Bluetooth- und Lautsprecheranzeige aps. sind immer noch ein Rätsel. (Auch die Reihenfolge ist nicht korreliert.)

Wohlgemerkt, es war in der Vergangenheit einfach, einfach mit der rechten Maustaste zu klicken, um die AboutOption zum Auffinden der AP zu erhalten. & v. info.

herumstöbern und herum:

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

Untersucht:
Datei: /// usr / share / Indikatoren
Datei: /// usr / share / Indikatoren / Nachrichten / Anwendungen /
...

vielleicht? / vermutlich? Die gesuchten Informationen können in der
Datei /// usr / share / indicoren vergraben sein

In den Kommentaren wurde auf Folgendes verwiesen:
Was ist der Unterschied zwischen Indikatoren und einer Taskleiste?
Zitat aus dieser Quelle ...

Leider sind Desktop-Indikatoren noch nicht gut dokumentiert: Ich konnte kein Spezifikationsdokument finden ...

Nun ... das eigentliche Dokument
https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Summary
hilft nicht viel, aber seine existenziellen Informationen bieten beträchtliche Einblicke ...

Amos Annoy
quelle
und diese Anwendung ist ...?
Amos Annoy
"BT-Indikator wird normalerweise von Blueman (oder ähnlichem) verwendet" - aber woher weiß ich das genau? Vielleicht benutze ich "oder ähnliches"? Das hilft nicht - können Sie mir genau sagen, wie ich mein System untersuchen soll, um eindeutig zu bestimmen, welche Anwendung jedem Indikator zugeordnet ist? Der Unity-Panel-Service ist für die Manifestation dieser Umgebung verantwortlich. Wie werden jedoch die mit jedem Indikator verknüpften Auffüllanwendungen bestimmt?
Amos Annoy
wenn die richtigen aps. sind gezielte Dinge wie: bluetooth-applet --help (bluetooth-applet:25165): BluetoothApplet-WARNING **: Applet is already running, exitingkann getan werden - was ist der Messaging Indicator ap.? Vermutlich ruft es seinen Inhalt für das Dropdown-Menü ab von:file:///usr/share/indicators/messages/applications/
Amos Annoy
Die Antwort, die Sie zitieren, ist veraltet. Ich habe sie aktualisiert und hoffe, sie hilft.
Jorge Castro
TQ - hoffe es -
bekomme

Antworten:

3

Der Application Indicator Service verfügt über eine interne API, mit der eine Liste aller Indikatoren einschließlich ihrer DBus-Adressen abgerufen werden kann. Sie können dies über die folgende Befehlszeile tun:

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

Sie erhalten etwas zurück, das nicht besonders nützlich ist, da es in einem Pseudo-JSON-Format vorliegt. Wenn Sie ein Skript schreiben, können Sie es in einen Parser ziehen und damit arbeiten. Wenn Sie neugierig sind, es nur einmal zu tun, lesen Sie einfach den Text durch. Sie suchen nach einem Feld, das wie :1.XXX folgt aussieht : Dies ist die DBus-Adresse für den Indikator.

Sobald Sie die Adresse für den Indikator haben, können Sie DBus fragen, wie hoch die PID für diesen Indikator ist. Sie fordern die PID :1.123wie folgt an :

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

Nachdem Sie nun die PID haben, können Sie /procInformationen zum Prozess anfordern. Wenn Sie beispielsweise wissen möchten, mit welchem ​​Befehl die Prozessnummer gestartet wird, können 1Sie Folgendes tun:

cat /proc/1/cmndline

Viel Glück!

Ted Gould
quelle
Süss! - wusste nicht, gdbusdass es eine High-Level-Schnittstelle gab! - obwohl es noch keine API (Application Panel Indikator) ist - es sollte nicht schwer sein, "es so zu machen" - hoffe, dass es
bald
2

1. Iteration

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

Herstellung:

[  -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. Iteration

(mit Symbolen zur Bestätigung der Zuordnung)

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

Herstellung:

hapi.png

Hier ist die hapi.html (ohne schwarzen Hintergrund der Zelle):

<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>

Bestätigt: [grob] sind Symbolbilddaten gemäß 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
quelle
Anstelle von HTML würde ein Bash-Skript, das das Anzeigefeld mit einer integrierten HAPI-Symbolkennung ap ausfüllt, die die Version der residenten Aps enthält, das Isolieren von versionenspezifischen Informationen, Nuancen und eigenwilligen Funktionen erleichtern.
George Rowell
Rolling Rants manifestieren sich auf zwei Arten - der zweite Weg ist hier mit künstlicher Sprache, die auf dem ersten basiert, mit natürlicher Sprache und aus einer daraus resultierenden Belästigung, Irritation oder Belästigung hervorgegangen ist, normalerweise anonym (ärgerlich) (dh schlecht konditionierte, nicht identifizierte APs und Versionen) anonym nerven) also das alter ego - Amos Annoy (ed)
George Rowell
Hinweis: Das Symbolfeld für die Anzeige-Leistung ist etwas wackelig und unkonventionell? im vergleich zur feldverwendung w / icon bilddaten von anderen aps - auch solchen mit wechselnden icons wie
nm
2

Unglücklicherweise -

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

listet nicht alle Indikatorsymbole oder ihre Unterindikatoren vollständig auf. Das Menü MI (Messaging Indicator) ist mit mehreren Kommunikations-Aps für Subindikatoren verbunden. sind nicht aufgeführt. Außerdem fehlen die Informationen zu Leistung, Lautstärke und Uhrzeit.

qdbusist einfacher zu verwenden und d-feetbietet eine GUI, um das Gleiche zu tun, sowie einfache Auflistung von Eigenschaftswerten.

Verwenden Sie qdbuswie folgt:

qdbus  --literal | sort

Dreifacher Klick, um com.canonical.indicator.applicationw / nl in der Ausgabe auszuwählen

...  
: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
 ...  

Verfassen Sie den nächsten Befehl mit dem Befehl bash historyuparrow repeat (löschen Sie den Befehl | sort , um ihn gerade zu verlassen qdbus --literal) und drücken Sie die mittlere Maustaste, um den Befehl abzuschließen:

qdbus  --literal  com.canonical.indicator.application

Dreifacher Klick auf die letzte Zeile

/
/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

Drücken Sie den Wiederholungsverlauf nach oben, die Leertaste und die mittlere Maustaste, um Folgendes zu erstellen:

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

Doppelklicken Sie, um die gewünschte Methode in der Ausgabe auszuwählen, und drücken Sie den Aufwärtspfeil, die Leertaste und die mittlere Maustaste, um den Befehl zu erstellen, und drücken Sie die Eingabetaste, um ihn auszuführen. (In diesem Beispiel wird zur Verdeutlichung die \ Zeilenfortsetzung hinzugefügt.):

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

Dies gibt nur die BT- und NM-Indikatorinformationen aus (hier zur Darstellung hübsch gedruckt)

[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"]
  }
]

Die anderen Indikatoren werden als die anderen com.canonical.indicator. ...Schnittstellen bezeichnet (zu Beginn aufgelistet). Dies ist jedoch wahrscheinlich das Muss, aber die Aps der Untermenü-Indikatoren sind noch nicht identifiziert:

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

Obwohl viel Rohöl vorhanden ist (wahrscheinlich Symbolbildbits), ist die beschnittene und hübsche Ausgabe:

[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]}]

Hinweis: Die Abschlussnummern 600, 550, 500, 450, 300, 250, 200 korrelieren von rechts nach links und stimmen die APS mit ihren Indikatorsymbolen überein.

George Rowell
quelle
Leider sind die APS mit ihren Versionsnummern nicht qualifiziert, um schlecht konditionierte Installationen und daraus resultierende Systemverschlechterungen zu identifizieren. Es ist manuell arbeitsintensiv, fehlerhafte Indikator-Aps mit ihren spezifischen Versionen auf kompromittierten Systemen aufzuspüren. Kennt jemand eine zweckmäßige Methode, um sie zu identifizieren? Wann fehlen ihre Info-Menüs?
George Rowell