Adds KStatusNotifierItem support to the Shell
Branch: master
Clone or download
azzar1 and 3v1n0 interfaces: Explicitly convert raw data to strings
As strings are guaranteed to use UTF-8 in the GNOME platform, generic file APIs
like g_file_load_contents() return raw data instead. Since gjs' recent update to
mozjs60, this data is now returned as Uint8Array which cannot simply be treated
as string - its toString() method boils down to arr.join(',') - so use gjs' new
ByteArray module to explicitly convert the data.

Fixes: #150
Latest commit 7bd97d4 Oct 24, 2018

AppIndicator/KStatusNotifierItem support for GNOME Shell

This extension integrates Ubuntu AppIndicators and KStatusNotifierItems (KDE's blessed successor of the systray) into GNOME Shell.


  • Show indicator icons in the panel.
  • Reveal indicator menus upon click.
  • Double clicking an icon will activate the application window (if implemented by the indicator).
  • Middle mouse click an icon to send a 'SecondaryActivate' event to the application. Support needs to be implemented in the application. Info 1, Info 2.

Missing features

  • Tooltips: Not implemented in libappindicator nor in Unity and I've yet to see any indicator using it for anything relevant (KDE ones maybe?). Also, the GNOME designers decided not to have tooltips in the shell and I'd like to honor that decision.
  • Oversized icons like the ones used by indicator-multiload are unsupported. They will be shrunk to normal size.

Known issues

  • ClassicMenu Indicator takes ages to load and has been reported to freeze the shell forever. This is probably caused by the insane amount of embedded PNG icons. Try at your own risk.


Normal users are recommended to get the extension from

Alternatively, you can check out a version from git and symlink ~/.local/share/gnome-shell/extensions/ to your clone:

ln -s $PWD ~/.local/share/gnome-shell/extensions/
gnome-shell-extension-tool -e

You may need to restart GNOME Shell (Alt+F2, r, ) after that.

Guidelines for bug reports

Unfortunately, this extension is not completely bug free and will probably never be. In order to successfully resolve remaining issues, you need to provide some data:

  • Your distribution, Shell version and extension version (something like "latest git" or "latest from" is sufficient).
  • The indicator that caused the bug (if applicable).
  • Instructions how to reproduce it. This is the single most important point. Bugs which cannot be reproduced cannot be fixed.

Bug reports which do not provide the necessary information may be closed as "invalid" without prior notice.

Release process

This section serves as reminder for the current maintainer and as instruction set for an eventual sucessor.

  • The maintainer decides when to release a new version.
  • Versions are tagged (and signed). Version numbers sould be kept in sync with the versions submitted to This implies that version numbers are integers which will be incremented with each release.
  • The maintainer will tag a new version and generate a zip file using make.
  • The zip file will be tested to ensure that nothing was missed when packaging it.
  • Only if it passed, it is uploaded to and the tag is pushed.

This release process has been in place since v9.