Jak dowiedzieć się, która aplikacja jest powiązana z ikoną wskaźnika?

10

Jest to trywialne w Ubuntu 10.04. Pytanie dotyczy tylko Ubuntu 12.04.

Z jakiegoś powodu brakuje kompozycji wykorzystującej dbus ze szczegółami implementacji w następstwie, więc alter ego ułożyło odpowiedź (wyjaśniono tutaj trywialny, ale nieco pracochłonny proces ).

Ta odpowiedź dotycząca gdbusjest przydatna, ale ta odpowiedź jest bardzo przydatna - (narzut systemu spoczynkowego został teraz zmniejszony do akceptowalnego poziomu ~ 10%).

Niektóre istotne odniesienia
(SRC: odpowiedź na czym polega różnica między wskaźnikami i tacy systemu? :
Tutaj jest dokumentacja dla wskaźników:

Wskaźniki zastosowania | Ubuntu App Developer
libindicate Reference Manual libappindicator
Reference Manual

również

ref: W jaki sposób można zidentyfikować aplikację, która powoduje wyświetlenie ikony wskaźnika? (Ten link niewłaściwie przekierowuje do /ubuntu/184589/how-can-menu-bars-that-require-a-right-click-be-activated-like-ubuntu-versions )
zakładka: W jaki sposób dowiedzieć się, która aplikacja jest powiązana z ikoną wskaźnika w Ubuntu 12.04?
jest poważnym pytaniem z przyczyn i problemów przedstawionych poniżej, dla których dokonano znacznej inwestycji i jest konieczny do celów naprawczych.


recenzowanie referencji. znaleźć ustaloną rozdzielczość ...
(może być potrzebny wskaźnik wskaźnikowy)


To nie ma nic wspólnego (prawda?) Z kliknięciem prawym przyciskiem myszy.

W jaki sposób ikonę wskaźnika w Ubuntu 12.04 można dopasować do programu odpowiedzialnego za jej manifestację na górnym panelu?

Lista uruchomionych aplikacji może obejmować wszystkie używane procesy System Monitor.

Jak można znaleźć prawidłowy proces dopasowania wskaźnika?

W jaki sposób identyfikowane są aplikacje wskaźników podrzędnych? Są to apki powiązane z elementami menu rozwijanego wskaźników. (To miało być osobne pytanie i całkiem naturalnie śledzi postęp. Jest ono tutaj uwzględnione, ponieważ jest oczywiste, że nie ma możliwości zapewnienia łatwego wyśledzenia obrażeń sub lub wskaźników ap.).

s zmieszane z pewnymi oczekiwanymi demonami i zadaniami w tle, takimi jak nm-applet - nie tylko Xorg i compiz wymagają nadmiernego czasu procesora, ale ich otoczenie również musi nadejść! jeszcze bardziej zaostrzając problem - nasze zadania związane z obliczeniami nie działają już skutecznie w terenie - zmniejszona żywotność baterii, skrócony czas procesora dla niestandardowych ap.s itp. - a wszystko to wytrąciło się z badania tego, co dzieje się z baterią ap. wskaźnik - było to i nie jest nonszalanckie, retoryczne lub bezczynne zadumanie, ale ma konsekwencje dla wiarygodnego wdrożenia 12.04 w celu zmniejszenia negatywnego wpływu jego kosztów ogólnych w środowisku produkcyjnym) skrócony czas procesora dla niestandardowych ap. itp. - a wszystko to wytrąciło się z badania tego, co dzieje się z baterią ap. wskaźnik - było to i nie jest nonszalanckie, retoryczne lub bezczynne zadumanie, ale ma konsekwencje dla wiarygodnego wdrożenia 12.04 w celu zmniejszenia negatywnego wpływu jego kosztów ogólnych w środowisku produkcyjnym) skrócony czas procesora dla niestandardowych ap. itp. - a wszystko to wytrąciło się z badania tego, co dzieje się z baterią ap. wskaźnik - było to i nie jest nonszalanckie, retoryczne lub bezczynne zadumanie, ale ma konsekwencje dla wiarygodnego wdrożenia 12.04 w celu zmniejszenia negatywnego wpływu jego kosztów ogólnych w środowisku produkcyjnym)

(Mam problem ze wskaźnikiem baterii - czasami ma%, a innym razem hh: mm - konieczne jest poznanie ap. I v., Aby uzyskać więcej informacji na temat kontrolowania samego. To samo: Występują problemy z innymi wskaźnikami ap. : Konflikt NM vs. iwlist / iwconfig, BT ap. Vs przełącznik RF, bateria w / bez zawieszenia / uśpienia dla słabego czasu pracy baterii, ... lista jest długa)

Szczegóły od:
Jak znaleźć identyfikatory wskaźników aplikacji?

sugeruje spojrzenie na:
plik: ///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

co rozwiązuje baterię ap. identyfikacja i przypuszczalnie nm to NetworkManager dla ikony rf, ale aps wskaźnik obwiedni, niebieskiego zęba i głośnika. wciąż są tajemnicą. (Również kolejność nie jest skorelowana).

Pamiętaj, że w przeszłości wystarczyło kliknąć prawym przyciskiem myszy, aby uzyskać Aboutopcję znalezienia ap. i v. informacje.

przeglądanie i informacje o:

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

sprawdzono:
plik: /// usr / share / wskaźniki
plik: /// usr / share / wskaźniki / wiadomości / aplikacje /
...

może? / prawdopodobnie? poszukiwane informacje mogą być zakopane w
pliku: /// usr / share / Indicators

W komentarzach podano odniesienie do:
Jaka jest różnica między wskaźnikami a zasobnikiem systemowym?
cytowanie z tego źródła ...

Niestety wskaźniki na pulpicie nie są jeszcze dobrze udokumentowane: nie mogłem znaleźć żadnego dokumentu specyfikacji ...

Cóż ... faktyczny dokument
https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Summary
nie pomaga wiele, ale jego informacje egzystencjalne zapewniają znaczny wgląd ...

Amos Drażni
źródło
a ta aplikacja to ...?
Amos Annoy
„Wskaźnik BT jest zwykle używany przez Bluemana (lub podobnego)” - ale skąd mam dokładnie wiedzieć? może używam „lub podobny”? to nie pomaga - czy możesz mi dokładnie powiedzieć, jak zbadać mój system, aby jednoznacznie określić, która aplikacja jest powiązana z każdym wskaźnikiem? unity-panel-service jest odpowiedzialny za przejaw wspomnianego środowiska, ale w jaki sposób określane są zapełniające się aplikacje, które są powiązane z każdym wskaźnikiem?
Amos Annoy
kiedy poprawne aps. są ukierunkowane rzeczy takie jak: bluetooth-applet --help (bluetooth-applet:25165): BluetoothApplet-WARNING **: Applet is already running, exitingmożna zrobić - jaki jest wskaźnik Messaging ap.? prawdopodobnie pobiera treść z rozwijanego menu z:file:///usr/share/indicators/messages/applications/
Amos Annoy
Odpowiedź, którą zacytowałeś, jest nieaktualna. Zaktualizowałem ją i mam nadzieję, że pomoże.
Jorge Castro,
TQ - mam nadzieję - dobre wyobrażenie o strukturze wskaźników
Amos Annoy

Odpowiedzi:

3

Usługa wskaźnika aplikacji ma wewnętrzny interfejs API, który pozwoli pobrać listę wszystkich wskaźników, w tym ich adresy DBus. Możesz to zrobić za pomocą tego wiersza poleceń:

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

W zamian otrzymasz coś niezbyt przydatnego, ponieważ jest to format psuedo-JSON. Jeśli napiszesz skrypt, możesz wyciągnąć go do parsera i pracować z nim. Jeśli chcesz to zrobić tylko raz, po prostu przeczytaj tekst. Szukasz pola podobnego do: :1.XXX To jest adres DBus dla wskaźnika.

Po uzyskaniu adresu dla wskaźnika możesz zapytać DBus, jaki jest PID dla tego wskaźnika. Żądasz PID :1.123takiego:

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

Po uzyskaniu PID możesz poprosić /proco informacje na temat procesu. Na przykład, jeśli chcesz poznać polecenie, aby uruchomić numer procesu, 1możesz:

cat /proc/1/cmndline

Powodzenia!

Ted Gould
źródło
Słodkie! - nie wiedziałem, że gdbusmam nadzieję, że istnieje interfejs wysokiego poziomu! - chociaż nie jest to jeszcze interfejs API (wskaźnik panelu aplikacji) - nie powinno być trudno „sprawić, aby tak było” - mam nadzieję, że wkrótce będzie to zrobione - PS super słodkie
Amos Annoy
2

1. iteracja

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

produkujący:

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

(z ikonami potwierdzającymi skojarzenie)

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

produkujący:

hapi.png

oto hapi.html (bez czarnego tła komórki):

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

Potwierdzony: [crud] to dane obrazu ikony zgodnie z 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
źródło
Idealnie, zamiast HTML, skrypt bash wypełniający panel wskaźników zintegrowanym identyfikatorem ikony HAPI ap, który zawiera wersję rezydentnego apa, ułatwiłby izolowanie informacji specyficznych dla wersji, niuansów i idiosynkratycznej funkcjonalności.
George Rowell
toczące się rany manifestują się na 2 sposoby - drugi sposób jest tutaj ze sztucznym językiem predykowanym na 1, z naturalnym językiem i wytrącony z wynikającego z tego uciążliwości, podrażnienia lub irytacji, zwykle anonimowo (anonimowo) (tj. źle uwarunkowane, niezidentyfikowane ap i wersje denerwuje anonimowo), więc alter ego - Amos Annoy (red.)
george rowell
Uwaga: pole ikony wskaźnika mocy jest trochę dziwne i niekonwencjonalne? w porównaniu do użycia w terenie z danymi obrazu ikony przez inne aps - nawet te ze zmieniającymi się ikonami, takimi jak NM
George Rowell
2

Niestety -

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

nie wylicza wyczerpująco wszystkich ikon wskaźników ani ich wskaźników podrzędnych. Menu MI (wskaźnik przesyłania komunikatów) łączy się z kilkoma apsami komunikacji pod wskaźnikami. nie są wymienione. Brakuje również informacji o wskaźniku mocy, głośności i zegara.

qdbusjest prostszy w użyciu i d-feetzapewnia GUI, aby zrobić to samo, a także łatwo wyświetlać wartości właściwości.

Użyj qdbusw następujący sposób:

qdbus  --literal | sort

trzykrotnie kliknij, aby wybrać com.canonical.indicator.applicationw / nl na wyjściu

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

Skomponuj następne polecenie za pomocą bash historypolecenia powtarzania w górę (usuń tylko, | sort aby wyjść qdbus --literal) i naciśnij środkowy przycisk myszy, aby wykonać polecenie:

qdbus  --literal  com.canonical.indicator.application

Kliknij trzykrotnie ostatnią linię

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

Naciśnij w górę historię powtarzania, spację i środkowy przycisk myszy, aby skomponować:

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

Kliknij dwukrotnie, aby wybrać żądaną metodę na wyjściu, i naciśnij klawisz strzałki w górę, spacji i środkowego przycisku myszy, aby utworzyć polecenie i naciśnij klawisz Enter, aby je uruchomić. (\ kontynuacja linii jest dodana dla przejrzystości w tym przykładzie):

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

Powoduje to wyświetlenie tylko informacji o wskaźniku BT i NM (ładnie wydrukowano tutaj na wystawę)

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

Inne wskaźniki są określane jako inne com.canonical.indicator. ...interfejsy (wymienione na początku), jednak prawdopodobnie jest to konieczne, ale aps wskaźnika podmenu są nadal niezidentyfikowane:

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

chociaż jest tam dużo surowca (prawdopodobnie fragmenty ikonek), przycięte i zachowane wyjście to:

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

Uwaga: Liczby kończące 600, 550, 500, 450, 300, 250, 200 korelują od prawej do lewej, dopasowując aps do ich ikon wskaźników.

George Rowell
źródło
niestety apki nie mają numerów wersji do identyfikacji źle uwarunkowanych instalacji i wynikającej z tego degradacji systemu - ręczne wyszukanie szkodliwych wskaźników aps w / ich konkretnych wersji na zaatakowanych systemach jest pracochłonne - czy ktoś zna odpowiedni sposób ich zidentyfikowania kiedy brakuje ich menu About?
George Rowell,