如何在不卸载指示消息包的情况下从指示小程序中删除信封?

如何在不卸载指示消息包的情况下从指示小程序中删除信封?

我厌倦了指示器小程序(也称为消息菜单)中的信封,因为我不使用它,所以我想摆脱它,但我没有 root 访问权限,所以我无法通过卸载指示器消息包来删除它。还有其他方法可以禁用此小程序吗?

指示器小程序不提供选择显示或不显示哪个指示器的方法吗?

答案1

如果您只想隐藏消息菜单,您可以将其中的所有应用程序列入黑名单。您可以通过将所有应用程序链接复制到本地黑名单目录来实现这一点。以下是使用命令行执行此操作的方法:

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

第一次创建黑名单目录时,您需要重新启动会话(注销并重新登录),然后消息菜单就会自动隐藏。

答案2

http://ubuntuforums.org/showthread.php?t=1470786根据这个,你可以从面板中删除 indicator-applet 并在启动应用程序中添加 gnome-volume-control-applet,从而进入类似 karmic 的小程序

答案3

根据 Riccardo Murri 的回答 (2010 年 9 月 8 日 13:19),我检查了代码并发现只有以 结尾的模块才会从( ).so加载。INDICATOR_DIR/usr/lib/indicators/3

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

所以

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

在 10.04 版中,Lucid 帮我解决了这个问题。

答案4

查看 indicator-applet-0.3.7 的源代码,似乎您不能:每个已安装的模块 /usr/lib/indicators/3都加载到某个“INDICATOR_DIR”(它在我的 10.04 机器上)。“INDICATOR_DIR”被定义为编译时常量,因此无法在已安装的系统上更改它。相关源代码位于 中的第 703-728 行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);
    }

作为一种解决方法,您可以(警告:未经测试!):

  1. 编译您自己的版本indicator-applet,指定不同的“INDICATOR_DIR”:如果您传递 --enable-localinstall./configure,那么“INDICATOR_DIR”将位于$libdir/indicators/2,您也可以 $libdir通过命令行选项设置为./configure

  2. 在您自己的 INDICATOR_DIR 中,只激活您想要的指标(只需符号链接系统范围的指标就足够了)

  3. 使用~/.gnomerc~/.xsession文件修改 PATH,以便您自己的indicator-applet二进制文件位于系统范围的二进制文件之前。

相关内容