如何删除Skype面板图标?
当我使用Docky Skype指示灯时,绿色Skype图标在所有灰色图标旁边看起来不太好 – 从系统托盘中删除图标会很不错。
这可能吗? 我怎么能在Ubuntu 12.04或其他早期版本中做到这一点?
在不删除sni-qt
情况下删除12.04中的Skype面板图标
- 如果您不关心
sni-qt
,删除图标就像执行apt-get remove sni-qt sni-qt:i386
一样简单apt-get remove sni-qt sni-qt:i386
- 安装Skype提供的deb不是解决方案; 所有Ubuntu版本都捆绑了相同的Skype deb,但使
sni-qt
成为启用图标的依赖项。
一个简单的配置文件调整或安装/删除包不会这样做,我们需要在这里潦倒和肮脏。
-
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配置文件中; 我已经修改了仅用于实现禁用面板图标的目标 – 其他安全function已被删除。
-
您可以查看此处粘贴的个人资料。 第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"
sudo apparmor_status | egrep "mode|skype"
- 结果应该显示如下:Skype应该在“强制模式”之后,但在任何其他模式之前:
21个配置文件处于强制模式。 在/ usr / bin中/ SKYPE 22个档案处于抱怨模式。
- 结果应该显示如下:Skype应该在“强制模式”之后,但在任何其他模式之前:
-
启动Skype,面板图标应该会消失!
如何将此行为添加到我自己的Skype AppArmor配置文件中?
-
只需在配置文件的开头附近添加这些行,就在include之后(它们只是阻止Skype读取/加载sni-qt库)
deny /usr/lib/i386-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so r, deny /usr/lib/x86_64-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so r,
2.不推荐:丑陋的bash hack
- 我只会给伪代码以防止新的内容陷入陷阱,但是执行以下操作的简单bash脚本也足以禁用面板图标:
- 删除适当的libsni-qt.so的读取权限,因为uid(用户)skype正在运行。
- 启动Skype,等一下,这样就可以了。
- (图标消失了,因为Skype无法加载sni-qt。)
- 恢复libsni-qt.so的权限。
仅适用于Ubuntu 11.04 Natty :
-
通过命令行界面(快速) – 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图标将消失。
请注意,安装pidgin-skype 包将使您能够添加您的Skype帐户以换位思考 – 使您可以通过优雅的菜单控制您的Skype状态。
我的系统上的/usr/share/icon/skype.png
没有图标。 托盘图标不是用于启动,而是用于报告状态。 它显示您的在线状态(在线,离开,dnd,…),并报告是否有新消息传入。 因此,它是动态的。
它似乎嵌入在Skype二进制文件中,无法改变它。 我非常希望能够对此进行纠正,因为我也鄙视那个绿色斑点。
从您的系统中删除sni-qt
软件包,它应该消失,我想。
据我所知,您不能从系统托盘中删除Skype,但如果您没有使用它的任何软件或替换此处的Skype图标,您可以做的是删除系统托盘: /usr/share/icon/skype.png
按你想要的。