Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
add comment

5 Answers 5

up vote 16 down vote accepted
+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.
share|improve this answer
1  
+50 Because this works for other software as well. –  Syzygy Jun 12 '12 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 '12 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 '13 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 '13 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 '13 at 15:51
add comment

For Ubuntu 11.04 Natty only:

In the case that you are running 11.04 Natty Narwhal, there are two options.

  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 the opposite question (43283). 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.

share|improve this answer
7  
note that while this works it's for 11.04 NOT 10.10 or 10.04 –  Uri Herrera May 16 '11 at 9:56
    
Thanks Uri - I edited accordingly. –  Olivier May 17 '11 at 12:39
    
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 '11 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 '11 at 16:31
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 '11 at 5:55
show 2 more comments

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.

share|improve this answer
add comment

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

share|improve this answer
5  
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. –  superjudge3 Apr 5 '12 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 '12 at 1:46
    
You need both apt-get remove sni-qt:i386 and apt-get remove sni-qt –  antitoxic Jun 10 '12 at 21:10
    
This introduces some crashes for me. Bad idea. –  Syzygy Jun 11 '12 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 '12 at 1:01
show 1 more comment

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.

share|improve this answer
    
well, not the answer I hoped to get, but thank you nevertheless, better then nothing ;) –  harppu Oct 16 '10 at 10:21
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.