Como descobrir qual aplicativo está associado a um ícone de indicador?

10

É trivial fazer isso no Ubuntu 10.04. A questão é específica para o Ubuntu 12.04.

Uma composição usando o dbus com detalhes de implementação no acompanhamento está ausente por algum motivo, então um alter ego compôs a resposta (o processo trivial, mas um tanto trabalhoso, é explicado aqui ).

Esta resposta em relação gdbusé útil, mas esta resposta é super útil - (sobrecarga do sistema quiescente foi agora reduzido para um nível aceitável ~ 10%).

algumas referências pertinentes
(src: resposta para Qual é a diferença entre os indicadores e uma bandeja de sistema? :
Aqui é a documentação para indicadores:

Indicadores de aplicação | Ubuntu App Developer
libindicate Manual de
Referência libappindicator Manual de Referência

Além disso

ref: Como o aplicativo que cria um ícone de indicador pode ser identificado? (Este link redireciona inadequadamente para /ubuntu/184589/how-can-menu-bars-that-require-a-right-click-be-activated-like-ubuntu-versions )
marcador: Como alguém descobre qual aplicativo está associado a um ícone indicador no Ubuntu 12.04?
é uma pergunta séria por razões e problemas descritos abaixo e para os quais um investimento significativo foi feito e é necessário para fins de reparação.


revendo refs. para encontrar uma resolução orquestrada ...
(talvez um indicador ap. indicador seja necessário)


Isso não tem nada a ver (não é?) Com o botão direito.

Como o ícone de um indicador no Ubuntu 12.04 pode ser comparado ao programa responsável por sua manifestação no painel superior?

Uma lista de aplicativos em execução pode incluir todos os processos usando System Monitor.

Como o processo de correspondência correto é encontrado para um indicador?

Como são identificadas as aplicações do subindicador? Estes são os aps associados aos componentes de um menu suspenso de indicadores. (Essa deveria ser uma pergunta separada e, naturalmente, acompanha a progressão. Ela está incluída aqui, pois é óbvio que não há provisionamento para rastrear as ofensas sub ou indicadores aps. Facilmente.)

s misturados com alguns daemons esperados e tarefas em segundo plano, como o nm-applet - não apenas o Xorg e o compiz exigem tempo de CPU excessivo, mas também sua comitiva! exacerbando ainda mais o problema - nossas tarefas ligadas à computação não funcionam mais efetivamente em campo - vida útil da bateria reduzida, tempo de CPU reduzido para aplicativos personalizados etc. - e tudo isso precipitou com a análise do que está acontecendo com o aplicativo da bateria. indicador - essa foi e não é uma reflexão irreverente, retórica ou ociosa, mas tem consequências para a implantação credível do 12.04 para reduzir o impacto negativo de sua sobrecarga em um ambiente de produção) tempo de CPU reduzido para aplicativos personalizados etc. - e tudo isso precipitou com a análise do que está acontecendo com o aplicativo da bateria. indicador - essa foi e não é uma reflexão irreverente, retórica ou ociosa, mas tem consequências para a implantação credível do 12.04 para reduzir o impacto negativo de sua sobrecarga em um ambiente de produção) tempo de CPU reduzido para aplicativos personalizados etc. - e tudo isso precipitou com a análise do que está acontecendo com o aplicativo da bateria. indicador - essa foi e não é uma reflexão irreverente, retórica ou ociosa, mas tem consequências para a implantação credível do 12.04 para reduzir o impacto negativo de sua sobrecarga em um ambiente de produção)

(Eu tenho um problema com o indicador de bateria - algumas vezes tem% e outras vezes hh: mm - é necessário conhecer o ap. & V. Para obter mais informações sobre como controlar o mesmo. Idem: Existem problemas com outros aps de indicadores. : Conflito NM vs. iwlist / iwconfig, BT ap. Vs switch RF, Battery ap. Sem suspensão / suspensão por falta de tempo de execução da bateria, ... a lista continua)

Detalhes de:
Como posso encontrar IDs de indicadores de aplicativos?

sugere olhar para:
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

que resolve a bateria ap. identificação e, presumivelmente, nm é o NetworkManager para o ícone rf, mas o envelope, o dente azul e o indicador do alto-falante aps. ainda são um mistério. (Além disso, a ordem não está correlacionada.)

Lembre-se, no passado era simples simplesmente clicar com o botão direito do mouse para obter a Aboutopção de encontrar o ap. & v. informações.

navegando por:

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

examinado:
arquivo: /// usr / compartilhamento / indicadores
arquivo: /// usr / compartilhamento / indicadores / mensagens / aplicativos /
...

talvez? / presumivelmente? as informações solicitadas podem ser localizadas em
arquivo: /// usr / share / indicadores

Uma referência nos comentários foi dada a:
Qual é a diferença entre indicadores e uma bandeja do sistema?
citando dessa fonte ...

Infelizmente, os indicadores da área de trabalho ainda não estão bem documentados: não encontrei nenhum documento de especificação ...

Bem ... o documento real
https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Summary
não ajuda muito, mas suas informações existenciais fornecem uma percepção considerável ...

Amos Annoy
fonte
e essa aplicação é ...?
Amos Annoy
"O indicador BT é geralmente usado pelo Blueman (ou similar)" - mas como eu sei exatamente? talvez eu esteja usando "ou similar"? isso não ajuda - você pode me dizer exatamente como examinar meu sistema para determinar sem ambiguidade exatamente qual aplicativo está associado a cada indicador? O serviço de painel de unidade é responsável pela manifestação do referido ambiente, mas como são determinadas as aplicações que estão preenchendo, associadas a cada indicador?
Amos Annoy
quando os aps corretos. são coisas direcionadas, como: bluetooth-applet --help (bluetooth-applet:25165): BluetoothApplet-WARNING **: Applet is already running, exitingpode ser feito - o que é o indicador de mensagens ap.? presumivelmente recupera seu conteúdo para o menu suspenso de:file:///usr/share/indicators/messages/applications/
Amos Annoy
A resposta que você citou está desatualizada, eu a atualizei, espero que ajude.
Jorge Castro
TQ - espero que sim - ter uma boa idéia da estrutura do indicador #
633 Amos

Respostas:

3

O Serviço de Indicador de Aplicativo possui uma API interna que permitirá obter uma lista de todos os indicadores, incluindo seus endereços DBus. Você pode fazer isso usando esta linha de comando:

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

Você receberá algo não muito útil, pois está no formato psuedo-JSON. Se você escrever um script, poderá inseri-lo em um analisador e trabalhar com ele. Se você estiver curioso para fazer isso apenas uma vez, basta ler o texto. Você está procurando um campo assim: :1.XXX esse é o endereço DBus para o indicador.

Depois de ter o endereço do indicador, você pode perguntar ao DBus qual é o PID desse indicador. Você solicita o PID :1.123como este:

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

Depois de ter o PID agora, você pode solicitar /procinformações sobre o processo. Por exemplo, se você deseja saber o comando usado para iniciar o número do processo, 1você pode:

cat /proc/1/cmndline

Boa sorte!

Ted Gould
fonte
doce! - não sabia que gdbusestava esperando uma interface de alto nível! - embora ainda não seja uma API (indicador do painel de aplicativos) - não deve ser difícil "torná-lo assim" - espero que seja um acordo iminente - PS super docinho
Amos
2

1ª iteração

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

produzindo:

[  -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ª iteração

(com ícones confirmando associação)

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

produzindo:

hapi.png

aqui está o hapi.html (sem fundo preto da célula):

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

Confirmado: [crud] são dados da imagem do ícone conforme 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
fonte
Idealmente, em vez de HTML, um script bash que preenche o painel indicador com um identificador de ícone HAPI integrado ap, que inclui a versão dos aps residentes, facilitaria o isolamento de informações específicas da versão, nuances e funcionalidade idiossincrática.
George Rowell
rants rolantes manifestam-se de duas maneiras - a segunda maneira é aqui com linguagem artificial baseada na 1ª, com linguagem natural e precipitada de um conseqüente incômodo, irritação ou aborrecimento, geralmente de forma anônima (irritantemente) (ou seja, versões e aplicativos não-condicionados e não identificados) irrite de forma anónima), assim, o alter ego - Amos irritam (ed)
George Rowell
Nota: o campo do ícone indicador de energia é um pouco instável e não convencional? em comparação com o uso do campo ícone w / dados de imagem por outros aps - mesmo aqueles com ícones em mudança, como NM
george Rowell
2

Infelizmente -

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

não enumera exaustivamente todos os ícones de indicadores ou seus subindicadores. O menu MI (indicador de mensagens) faz interface com vários aps de comunicação de subindicadores. não estão listados. Também faltam as informações de energia, volume e indicador de relógio.

qdbusé mais simples de usar e d-feetfornece uma GUI para fazer o mesmo, além de listar facilmente os valores das propriedades.

Use da qdbusseguinte maneira:

qdbus  --literal | sort

clique três vezes para selecionar com.canonical.indicator.applicationw / nl na saída

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

Componha o próximo comando com o comando bash historyuparrow repeat (exclua | sort para deixar apenas qdbus --literal) e pressione o botão do meio do mouse para concluir o comando:

qdbus  --literal  com.canonical.indicator.application

Clique três vezes na última linha

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

Pressione o histórico de repetição para cima, a barra de espaço e o botão do meio do mouse para compor:

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

Clique duas vezes para selecionar o método desejado na saída e pressione seta para cima, barra de espaço e botão do meio do mouse para criar o comando e pressione enter para executá-lo. (a continuação da linha é adicionada para maior clareza neste exemplo):

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

Isso gera apenas as informações dos indicadores BT e NM (bastante impressas aqui para exposição)

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

Os outros indicadores são referenciados como as outras com.canonical.indicator. ...interfaces (listadas no início), no entanto, essa provavelmente é a ferramenta obrigatória, mas os indicadores de submenu ainda não foram identificados:

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

embora exista muito ruído (provavelmente os bits da imagem do ícone), a saída removida e aparada é:

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

Nota: Os números finais 600, 550, 500, 450, 300, 250, 200 correlacionam-se da direita para a esquerda, combinando os aps com seus ícones indicadores.

george rowell
fonte
infelizmente, os aps não estão qualificados com seus números de versão para identificar instalações mal condicionadas e consequente degradação do sistema - é trabalhoso manualmente rastrear aps indicadores ofensivos com suas versões específicas em sistemas comprometidos - Alguém conhece uma maneira conveniente de identificá-los quando os menus Sobre estão ausentes?
George Rowell