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?
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.
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)
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:
Remove read permissions from the appropriate libsni-qt.so for the uid (user) skype is running as.
Start Skype, wait a little bit so it's loaded.
(The icon is gone because Skype couldn't load sni-qt.)
Note that installing the 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.
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.
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.
Removing the Skype panel icon in 12.04 without removing
sni-qt
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: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.
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"
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)
2. Not recommended: an ugly bash hack
For Ubuntu 11.04 Natty only:
Via command-line-interface (fast) -- the OMGubuntu community came up with this answer:
in a terminal, type
This will output something similar to:
We want to remove Skype from this whitelist, so copy/paste this output in a new command and remove the 'Skype' entry, like so:
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 package will enable you to add your Skype account to empathy -- enabling you to control your Skype status with the elegant me menu.
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.
Remove the
sni-qt
package from your system, and it should go away, I think.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.