How to remove envelope from Indicator applet without uninstalling the indicator-messages package?

If you just want the messaging menu to hide you can blacklist all of the applications that are in it. You can do that by copying all the application links to your local black list directory. Here is the command line way to do that:

  mkdir -p ~/.config/indicators/messages/applications-blacklist
  cp /usr/share/indicators/messages/applications/* ~/.config/indicators/messages/applications-blacklist

The first time you create the blacklist directory you'll need to restart your session (log out and back in) and then the messaging menu should hide itself.


http://ubuntuforums.org/showthread.php?t=1470786 according to this you can go to karmic like applet by removing indicator-applet from panel and adding gnome-volume-control-applet in startup application


Based on Riccardo Murri's answer (Sep 8 '10 at 13:19) I have checked the code and noticed that only modules that end in .so are loaded from INDICATOR_DIR (/usr/lib/indicators/3).

if (!g_str_has_suffix(name, G_MODULE_SUFFIX)) {
   return FALSE;
}

So

cd /usr/lib/indicators/3; sudo mv libmessaging.so libmessaging.so.disabled

did the trick for me on 10.04, Lucid.


Looking at the source of indicator-applet-0.3.7, it seems you cannot: every installed module in some "INDICATOR_DIR" (it's /usr/lib/indicators/3 on my 10.04 box) is loaded. The "INDICATOR_DIR" is defined as a compile-time constant, so there is no way to change it on a installed system. The relevant source is at lines 703--728 in applet-main.c:

    /* load 'em */
    if (g_file_test(INDICATOR_DIR, (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR))) {
            GDir * dir = g_dir_open(INDICATOR_DIR, 0, NULL);

            const gchar * name;
            while ((name = g_dir_read_name(dir)) != NULL) {
                    /* ... some lines omitted for brevity ... */
                    if (load_module(name, menubar)) {
                            indicators_loaded++;
                    }
            }
            g_dir_close (dir);
    }

As a workaround, you could (warning: untested!):

  1. compile your own version of indicator-applet, specifying a different "INDICATOR_DIR": if you pass --enable-localinstall to ./configure, then "INDICATOR_DIR" will be located in $libdir/indicators/2 and you can also set $libdir via command-line options to ./configure.

  2. within your own INDICATOR_DIR, only activate the indicators you want (just symlinking the system-wide ones should suffice)

  3. use a ~/.gnomerc or ~/.xsession file to modify PATH so that your own indicator-applet binary comes before the system-wide one.