27

As I use the Docky Skype indicator, and the green Skype icon doesn't look good next to all the grey ones -- it would be nice to remove the icon from the system tray.

Is this possible? How can I do it in Ubuntu 12.04 -- or other earlier versions?

0

5 Answers 5

19
+50

Removing the Skype panel icon in 12.04 without removing sni-qt

  • If you don't care about sni-qt, removing the icon is as simple as doing apt-get remove sni-qt sni-qt:i386
  • Installing the Skype-provided deb is not a solution; all the Ubuntu version does is bundle the same Skype deb but make sni-qt a dependency to enable the icon.

A simple conf-file tweak or installing/removing a package isn't going to do it, we need to get down and dirty here.

  • sni-qt is provided by these shared libraries:

    /usr/lib/i386-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so
    /usr/lib/x86_64-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so
    
  • A guaranteed way to remove the Skype icon while leaving sni-qt available for other apps to use is to prevent Skype from loading these shared libraries.

  • That can be done in one of two ways: a civilized way and a brute-force bash-hacker way.


1. Highly recommended: Use apparmor to prevent Skype from loading sni-qt

  • AppArmor is a security framework built into the Linux kernel which sets permissions for what a program can and cannot access. It's enabled by default in Ubuntu.

  • An example profile for Skype is included in the app-armor profiles; I have modified that ONLY to achieve our goal of disabling the panel icon - other security features have been removed.

  • You can view the profile pasted here. Lines 24-25 are the bits that matter to us.

WARNING: This profile DOES NOT provide any other kind of security -- Skype will run normally. Please see here for a more complete Skype AppArmor profile that you can use if you want to secure Skype further.

How to install

  • To install, exit Skype if it is running and then open a terminal with Ctrl-Alt-T, and type/paste the below to install the pasted profile into your apparmor profiles directory. (You can also manually paste it to /etc/apparmor.d/usr.bin.skype if you wish)

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

  • Then type sudo /etc/init.d/apparmor reload to reload all profiles, including the skype one we just added. Wait for a few seconds...

  • To check that the profile was enabled, type sudo apparmor_status | egrep "mode|skype"

    • The result should show something like the below: Skype should be after "enforce mode" but before any of the other modes:
      21 profiles are in enforce mode.
      /usr/bin/skype
      22 profiles are in complain mode.
      
  • Start Skype, and the panel icon should hopefully be gone!

How can I add this behavior to my own Skype AppArmor profile?

  • Just add these lines near the beginning of the profile, right after the includes (they simply prevent Skype from reading/loading the sni-qt libraries)

    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. Not recommended: an ugly bash hack

  • I will only give pseudocode to prevent the new from falling into traps, but a simple bash script which does the following is enough to disable the panel icon too:
    1. Remove read permissions from the appropriate libsni-qt.so for the uid (user) skype is running as.
    2. Start Skype, wait a little bit so it's loaded.
    3. (The icon is gone because Skype couldn't load sni-qt.)
    4. Restore permissions to libsni-qt.so.
6
  • 1
    +50 Because this works for other software as well.
    – MarkovCh1
    Jun 12, 2012 at 14:51
  • Excellent! This is the perfect addition to Skype-Wrapper without having to remove the sni-qt package. +1000 to you my friend. Cheers!
    – Gabriel
    Aug 4, 2012 at 22:35
  • 2
    The problem is that "Use apparmor to prevent Skype from loading sni-qt" does not work with Skype installed from default Ubuntu repositories. When trying to run 'skype' I just get information that for /usr/bin/skype permission is denied. Another thing is that there is no icon for this application. Using Ubuntu 13.04. Can I get any help?
    – kcpr
    May 13, 2013 at 21:47
  • 2
    After updating the application the Skype do not start because of permission again: /usr/bin/skype: 8: exec: /usr/lib/skype/skype: Permission denied. And this icon problem seemed to be just temporary bug, it's ok now, sorry. Help still needed. Thanks.
    – kcpr
    May 13, 2013 at 22:13
  • What helped me was to remove sni-qt:i386 from my 64-bit system. It's needed by Skype, but not by - for example - Spotify. Anyway it's another option of dealing with this problem, but different then this suggested by izx, which seems to be the best.
    – kcpr
    May 22, 2013 at 15:51
11

For Ubuntu 11.04 Natty only:

  1. Via command-line-interface (fast) -- the OMGubuntu community came up with this answer:

    in a terminal, type

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

    This will output something similar to:

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

    We want to remove Skype from this whitelist, so copy/paste this output in a new command and remove the 'Skype' entry, like so:

     gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'hp-systray', 'scp-dbus-service']"
    
  2. Via graphical user interface (more accessible), as proposed by con-f-use in answering this question. Simply do the opposite of what s/he proposes.

Now upon next login the Skype icon will be gone.


Note that installing the pidgin-skype Install pidgin-skype package will enable you to add your Skype account to empathy -- enabling you to control your Skype status with the elegant me menu.

6
  • 7
    note that while this works it's for 11.04 NOT 10.10 or 10.04 May 16, 2011 at 9:56
  • If you want a graphical tool you could install gconf sudo apt-get install gconf-tools and then run gconf-editor doing the inverse of whats described here: askubuntu.com/questions/43280/…
    – con-f-use
    May 17, 2011 at 13:00
  • Thank you con-f-use. Did you mean dconf instead of gconf? gconf-editor is installed by default but does not display unity configuration entries for me.
    – Olivier
    May 17, 2011 at 16:31
  • d-conf shows the unity panel whitelist
    – robin0800
    May 17, 2011 at 17:23
  • 3
    Doesn’t work for Unity 2D. Skype is not on my white list: ['JavaEmbeddedFrame', 'Mumble', 'Wine', 'hp-systray'] but its will still show up on the panel.
    – Mood
    Aug 4, 2011 at 5:55
3

There is no icon in /usr/share/icon/skype.png on my system. The tray icon is not for starting, but for reporting the status. It shows your online status (online, away, dnd, …) and also reports if new messages are incoming. As such, it’s dynamic.

It seems to be embedded in the Skype binary with no way to change it. I would very much like to be corrected on this, as I despise that green blob as well.

2

Remove the sni-qt package from your system, and it should go away, I think.

6
  • 6
    Also I thought that this package was vital for other programs that wanted to use the upper panel (like Dropbox and WeatherIndicator). I don't want to go around uprooting the soil for the entire garden when I should be able to just pull out a weed. Apr 5, 2012 at 3:33
  • No, Dropbox has proper integration with the indicator APIs, as does the weather indicator. The sni-qt package is only used by Qt applications which use the standard Qt tray icon API, rather than using the Unity Indicator APIs.
    – dobey
    Jun 6, 2012 at 1:46
  • You need both apt-get remove sni-qt:i386 and apt-get remove sni-qt
    – antitoxic
    Jun 10, 2012 at 21:10
  • This introduces some crashes for me. Bad idea.
    – MarkovCh1
    Jun 11, 2012 at 0:04
  • @Syzygy how? It being there or not has no bearing on whether applications will crash. If you removed it and got crashes, then most likely it's simply an issue in the program itself.
    – dobey
    Jun 11, 2012 at 1:01
-1

As of what I know, you can't remove Skype from the systray but what you can do is either to remove the systray if you haven't any software that use it or replace the icon of Skype which is here : /usr/share/icon/skype.png by what you want.

1
  • well, not the answer I hoped to get, but thank you nevertheless, better then nothing ;)
    – harppu
    Oct 16, 2010 at 10:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .