Esse problema existe porque, embora os AppIndicators facilitem a criação de um menu de indicadores, eles atrapalham a criação de um. Vejamos as diferenças entre o código python de exemplo usando o AppIndicator e o outro usando o GLib Menus como o código Bluetooth faz.
Primeiramente, você é instruído a fazer um gtk.Menu , esses são objetos de menu Gtk do estilo antigo que usam Gtk.Action e agora estão obsoletos. O AppIndicator pega o objeto gtk.Menu de você durante o processo set_menu(...) e o analisa, pressionando cada um dos menus que encontra no serviço de indicador criado usando libdbusmenu . Este processo de análise significa que qualquer coisa não suportada pelo AppIndicator é filtrada, não importa o que você faça.
Em seguida, vamos ver o menu Bluetooth. Isso é criado usando Gio.Menu objetos, estes são novos menus estilo Gnome usando o sistema GAction . Em seguida, registrou seu próprio serviço sem usar AppIndicator ou libdbusmenu e configurou o uso de uma propriedade x-canonical-type personalizada para criar o widget de comutação que é passado para libido para análise.
Todo este exercício é muito ruim, já que são todas as personalizações Unity da Canonical. Então, assim que a unidade for, não haverá appindicators de qualquer maneira.