如何删除Skype面板图标?


27

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

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

Answers:


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示例配置文件;我已对其进行了修改,实现了禁用面板图标的目的-其他安全功能已被删除。

  • 您可以查看此处粘贴的配置文件。第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的权限。

1
+50因为这也适用于其他软件。
MarkovCh1 2012年

优秀!这是完美的补充,Skype-Wrapper而无需卸下sni-qt包装。+1000,我的朋友。干杯!
加百利

2
问题是“使用apparmor阻止Skype加载sni-qt”不适用于从默认Ubuntu存储库安装的Skype。当尝试运行“ skype”时,我只是获得有关/ usr / bin / skype权限被拒绝的信息。另一件事是此应用程序没有图标。使用Ubuntu 13.04。我可以帮忙吗?
kcpr

2
更新应用程序后,由于再次获得许可,Skype无法启动:/usr/bin/skype: 8: exec: /usr/lib/skype/skype: Permission denied。而且这个图标问题似乎只是暂时的错误,现在可以了,抱歉。仍然需要帮助。谢谢。
kcpr

帮助我的是从64位系统中删除sni-qt:i386。Skype需要它,但不是(例如)Spotify。无论如何,这是处理此问题的另一种选择,但与izx建议的有所不同,这似乎是最好的。
kcpr

11

仅对于Ubuntu 11.04 Natty

  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 安装pidgin-skype软件包将使您能够将Skype帐户添加到移情中-使您可以使用优雅的me菜单控制Skype的状态。


7
请注意,尽管此方法适用于11.04而非10.10或10.04
Uri Herrera

如果您需要图形工具,则可以安装gconf sudo apt-get install gconf-tools,然后gconf-editor执行与此处所述相反的操作:askubuntu.com/questions/43280/…–
con-f-use,

谢谢您的使用。您是说dconf而不是gconf吗?gconf-editor是默认安装的,但不会为我显示统一的配置条目。
奥利维尔,

d-conf显示统一面板白名单
robin0800 2011年

3
不适用于Unity 2D。Skype不在我的白名单上:['JavaEmbeddedFrame','Mumble','Wine','hp-systray'],但仍会显示在面板上。
心情

2

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

它似乎已嵌入到Skype二进制文件中,无法对其进行更改。我非常想对此进行更正,因为我也鄙视该绿色斑点。


2

sni-qt我认为,从您的系统中删除该软件包,它应该消失了。


5
我还认为,该软件包对于想要使用上面板的其他程序(例如Dropbox和WeatherIndicator)至关重要。当我应该能够拔除杂草时,我不想四处寻找整个花园的土壤。
superjudge3 2012年

不可以,Dropbox可以与指示器API正确集成,天气指示器也可以。sni-qt软件包仅由使用标准Qt托盘图标API的Qt应用程序使用,而不是使用Unity Indicator API。
dobey 2012年

你既需要apt-get remove sni-qt:i386apt-get remove sni-qt
抗毒

这给我带来了一些崩溃。馊主意。
MarkovCh1 2012年

@Syzygy怎么样?是否存在与应用程序是否崩溃无关。如果将其删除并崩溃,则很可能只是程序本身的问题。
dobey 2012年

-1

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


好吧,不是我希望得到的答案,但是还是谢谢你,总比没有好;)
harppu 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.