如何删除 Skype 面板图标?

如何删除 Skype 面板图标?

当我使用 Docky Skype 指示器时,绿色的 Skype 图标与所有灰色图标相比看起来并不好看 - 最好将该图标从系统托盘中移除。

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

答案1

在 12.04 中删除 Skype 面板图标没有移除sni-qt

  • 如果你不关心sni-qt,删除图标很简单,只需apt-get remove sni-qt sni-qt:i386
  • 安装 Skype 提供的 deb 并不是解决方案;Ubuntu 版本所做的只是捆绑相同的 Skype deb,但建立sni-qt依赖关系以启用图标。

简单的配置文件调整或者安装/删除软件包是无法解决问题的,我们需要采取一些实际行动。

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

    /usr/lib/i386-linux-gnu/qt4/插件/systemtrayicon/libsni-qt.so
    /usr/lib/x86_64-linux-gnu/qt4/插件/systemtrayicon/libsni-qt.so
    
  • 删除 Skype 图标的有效方法同时sni-qt可供其他应用程序使用是为了防止 Skype 加载这些共享库。

  • 可以通过两种方式实现:文明方式和暴力攻击黑客方式。


1. 强烈推荐:使用装甲阻止 Skype 加载sni-qt

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

  • app-armor 配置文件中包含一个 Skype 示例配置文件;我对其进行了修改仅有的为了实现禁用面板图标的目标 - 其他安全功能已被删除。

  • 您可以查看个人资料粘贴在这里。第 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 黑客

  • 我只会提供伪代码来防止新人陷入陷阱,但是执行以下操作的简单 bash 脚本足以禁用面板图标:
    1. 从适当的 libsni-qt.so 中删除 skype 所运行的 uid(用户)的读取权限。
    2. 启动 Skype,等待一会儿,直到它加载完毕。
    3. (该图标消失是因为 Skype 无法加载 sni-qt。)
    4. 恢复 libsni-qt.so 的权限。

答案2

对于 Ubuntu 11.04纳蒂仅有的:

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

    在终端中输入

     gsettings get com.canonical.Unity.Panel systray-whitelist
    

    这将输出类似以下内容的内容:

     ['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'scp-dbus-service']
    

    我们要从白名单中删除 Skype,因此将此输出复制/粘贴到新命令中并删除“Skype”条目,如下所示:

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

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


请注意,安装洋泾浜语 安装 pidgin-skype该软件包将使您能够将您的 Skype 帐户添加到 empathy 中——从而使您能够使用优雅的“我”菜单控制您的 Skype 状态。

答案3

我的系统上没有图标/usr/share/icon/skype.png。托盘图标不是用于启动的,而是用于报告状态的。它显示您的在线状态(在线、离开、dnd 等),还会报告是否有新消息传入。因此,它是动态的。

它似乎嵌入在 Skype 二进制文件中,无法更改。我非常希望纠正这个问题,因为我也讨厌那个绿色斑点。

答案4

据我所知,您无法从系统托盘中删除 Skype,但您可以做的是,如果您没有任何使用它的软件,则删除系统托盘,或者将此处的 Skype 图标替换/usr/share/icon/skype.png为您想要的:。

相关内容