当我使用 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,面板图标应该就会消失!
如何将此行为添加到我自己的 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 脚本足以禁用面板图标:
- 从适当的 libsni-qt.so 中删除 skype 所运行的 uid(用户)的读取权限。
- 启动 Skype,等待一会儿,直到它加载完毕。
- (该图标消失是因为 Skype 无法加载 sni-qt。)
- 恢复 libsni-qt.so 的权限。
答案2
对于 Ubuntu 11.04纳蒂仅有的:
通过命令行界面(快速)——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']"
通过图形用户界面(更易于访问),正如 con-f-use 在回答这个问题时所建议的那样. 只需做与他/她建议相反的事情即可。
现在下次登录时 Skype 图标将消失。
请注意,安装洋泾浜语 该软件包将使您能够将您的 Skype 帐户添加到 empathy 中——从而使您能够使用优雅的“我”菜单控制您的 Skype 状态。
答案3
我的系统上没有图标/usr/share/icon/skype.png
。托盘图标不是用于启动的,而是用于报告状态的。它显示您的在线状态(在线、离开、dnd 等),还会报告是否有新消息传入。因此,它是动态的。
它似乎嵌入在 Skype 二进制文件中,无法更改。我非常希望纠正这个问题,因为我也讨厌那个绿色斑点。
答案4
据我所知,您无法从系统托盘中删除 Skype,但您可以做的是,如果您没有任何使用它的软件,则删除系统托盘,或者将此处的 Skype 图标替换/usr/share/icon/skype.png
为您想要的:。