如何删除 Skype 面板图标?

har*_*ppu 27 panel indicator skype

当我使用 Docky Skype 指示器时,绿色 Skype 图标在所有灰色图标旁边看起来不太好 - 从系统托盘中删除该图标会很好。

这可能吗?如何在 Ubuntu 12.04 或其他早期版本中执行此操作?

ish*_*ish 19

在 12.04 中删除 Skype 面板图标而不删除sni-qt

  • 如果你不在乎sni-qt,删除图标就像做一样简单apt-get remove sni-qt sni-qt:i386
  • 安装 Skype 提供的 deb 不是解决方案;Ubuntu 版本所做的只是捆绑了相同的 Skype deb,但sni-qt依赖于启用图标。

一个简单的 conf 文件调整或安装/删除一个包是不行的,我们需要在这里弄脏。

  • sni-qt 由这些共享库提供:

    /usr/lib/i386-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so
    /usr/lib/x86_64-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so
    
  • 在保留sni-qt可供其他应用程序使用的同时删除 Skype 图标的一种有保证的方法是防止 Skype 加载这些共享库。

  • 这可以通过以下两种方式之一完成:文明方式和蛮力 bash-hacker 方式。


1.强烈推荐:使用apparmor防止Skype加载sni-qt

  • AppArmor 是一个内置于 Linux 内核的安全框架,它为程序可以访问和不能访问的内容设置权限。它在 Ubuntu 中默认启用。

  • Skype 的示例配置文件包含在 app-armor 配置文件中;我修改了ONLY,以实现我们的禁用面板图标的目标-其他安全功能已被删除。

  • 您可以查看粘贴在这里的配置文件。第 24-25 行是对我们很重要的位。

警告:此配置文件不提供任何其他类型的安全性 - Skype 将正常运行。请在此处查看更完整的 Skype AppArmor 配置文件,如果您想进一步保护 Skype,可以使用该配置文件。

如何安装

  • 要安装,请退出 Skype(如果它正在运行),然后使用 打开终端Ctrl-Alt-T,然后键入/粘贴以下内容以将粘贴的配置文件安装到您的 apparmor 配置文件目录中。(/etc/apparmor.d/usr.bin.skype如果你愿意,你也可以手动粘贴它)

    sudo wget -O/etc/apparmor.d/usr.bin.skype http://pastebin.com/raw.php?i=2EYME5eF

  • 然后键入sudo /etc/init.d/apparmor reload以重新加载所有配置文件,包括我们刚刚添加的 Skype 配置文件。等待几秒钟...

  • 要检查配置文件是否已启用,请键入 sudo apparmor_status | egrep "mode|skype"

    • 结果应如下所示:Skype 应在“强制模式”之后但在任何其他模式之前:
      21 个配置文件处于强制模式。
      /usr/bin/skype
      22 个配置文件处于投诉模式。
      
  • 启动 Skype,面板图标有望消失!

如何将此行为添加到我自己的 Skype AppArmor 配置文件中?

  • 只需在配置文件开头附近添加这些行,就在包含之后(它们只是阻止 Skype 读取/加载 sni-qt 库)

    拒绝 /usr/lib/i386-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so r,
    拒绝 /usr/lib/x86_64-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so r,
    

2. 不推荐:丑陋的 bash hack

  • 我只会给出伪代码来防止新的陷入陷阱,但是一个简单的 bash 脚本执行以下操作也足以禁用面板图标:
    1. 从适当的 libsni-qt.so 中删除运行 uid(用户)Skype 的读取权限。
    2. 启动 Skype,稍等片刻,以便加载。
    3. (图标消失了,因为 Skype 无法加载 sni-qt。)
    4. 恢复对 libsni-qt.so 的权限。

  • 问题是“使用 apparmor 阻止 Skype 加载 sni-qt”不适用于从默认 Ubuntu 存储库安装的 Skype。尝试运行 'skype' 时,我只是得到了 /usr/bin/skype 权限被拒绝的信息。另一件事是此应用程序没有图标。使用 Ubuntu 13.04。我能得到任何帮助吗? (2认同)
  • 更新应用程序后,Skype 不会因为权限再次启动:`/usr/bin/skype: 8: exec: /usr/lib/skype/skype: Permission denied`。而且这个图标问题好像只是暂时的bug,现在好了,抱歉。仍然需要帮助。谢谢。 (2认同)

小智 11

仅适用于 Ubuntu 11.04 Natty

  1. 通过命令行界面(快速)——OMGubuntu 社区提出了这个答案

    在终端中,键入

     gsettings get com.canonical.Unity.Panel systray-whitelist
    
    Run Code Online (Sandbox Code Playgroud)

    这将输出类似于:

     ['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'scp-dbus-service']
    
    Run Code Online (Sandbox Code Playgroud)

    我们想从这个白名单中删除 Skype,所以在一个新命令中复制/粘贴这个输出并删除“Skype”条目,如下所示:

     gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'hp-systray', 'scp-dbus-service']"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过图形用户界面(更易于访问),正如 conf-use 在回答这个问题时所建议的那样。只需按照他/她的建议做相反的事情。

现在,下次登录时,Skype 图标将消失。


注意安装pidgin-skype 安装 pidgin-skype 软件包将使您能够将您的 Skype 帐户添加到同理心——使您能够使用优雅的 me 菜单控制您的 Skype 状态。

  • 请注意,虽然这有效,但它适用于 11.04 而不是 10.10 或 10.04 (7认同)
  • 不适用于 Unity 2D。Skype 不在我的白名单中:['JavaEmbeddedFrame', 'Mumble', 'Wine', 'hp-systray'] 但它仍然会显示在面板上。 (3认同)