We bring Skype icons to the general style of the system

    In the interface of each operating system, there is such a thing as a notification area .

    There are various indicators and switches, for example, a volume indicator. Most indicators follow the guidelines , but not Skype. Tallinn Redmond programmers are so harsh that they have an opinion on how their icons should look in the indicator panel. However, one line of code is enough to bring their icons in line.

    Skype icon before and after

    The problem of Skype “humanization” is that all the icons are sewn deep inside the application, although notification sounds are available to everyone in the / usr / share / skype folder. There is no way to just take and put the necessary icons in ~ / .local / share / icons. I, like probably many other Skype users, treated these icons, clearly out-of-style, as an inevitable evil.

    As long as on one of the computers, when upgrading from a 32-bit system to a 64-bit system, Skype generally ceased to appear in the indicator panel. A small study showed that this was due to the lack of the sni-qt library , which magically turns QSystemTrayIcon into StatusNotifierItems.
    This means that between the proprietary Skype and the dashboard there is a small open source library.

    apt-get source sni-qt && cd sni-qt*

    Two dozen files are waiting for us in the src directory, including iconcache.cpp.

    Searching for the word “save” gives exactly one result:
            QPixmap pix = icon.pixmap(size);
            QString dirName = QString("hicolor/%1x%1/apps").arg(size.width());
            if (!dir.exists(dirName)) {
                if (!dir.mkpath(dirName)) {
                    qWarning("Could not create '%s' dir in '%s'",
                        qPrintable(m_themePath), qPrintable(dirName));
            QString pixPath = QString("%1/%2/%3.png")
            if (!pix.save(pixPath, "png")) {
                qWarning("Could not save icon as '%s'", qPrintable(pixPath));

    All you need to do is replace

    -        QPixmap pix = icon.pixmap(size);
    +        QPixmap pix = icon.pixmap(size, QIcon::Disabled);

    This will turn all the colored icons into gray. Roughly the ones you need for the humanity-dark theme.
    For humanity, the default theme in Ubuntu versions prior to 10.04 is to switch the palette to the dark side of the force .

    We collect and run:
    sudo apt-get build-dep sni-qt
    mkdir build && cmake --build=build .
    make && sudo make install

    That's all. The Skype icon is no longer an eyesore and looks quite satisfactory.

    Patch file for those who want to try apt-build --patch mono.patch install sni-qt
    sni-qt_0.2.6-0ubuntu1_i386.deb for those who want to get everything at once.

    Also popular now: