В интерфейсе каждой операционной системы существует такое понятие, как область уведомлений.
Там присутствуют различные индикаторы и переключатели, например, индикатор громкости.
Большинство индикаторов следуют рекомендациям, но только не Skype. Таллинские Редмондские программисты настолько суровы, что имеют своё мнение о том, как должны выглядеть их иконки в панели индикаторов. Впрочем, одной строки кода достаточно, чтобы привести их иконки в соответствие.
Проблема "очеловечивания" Skype в том, что все иконки зашиты глубоко внутри приложения, хотя звуки для уведомлений доступны всем желающим в папке /usr/share/skype. Нет возможности просто взять и положить нужные иконки в ~/.local/share/icons. Я, как наверное и многие другие пользователи Skype, относился к этим явно выбивающемуся из общего стиля иконкам как к неиpбежному злу.
До тех пор, как на одном из компьютеров, при обновлении с 32-х разрядной системы на 64-х разрядную, Skype вообще перестал проявляться в панели индикаторов. Небольшое исследование показало, что виной этому отсутствие библиотеки sni-qt, волшебный образом превращиющей QSystemTrayIcon в StatusNotifierItems.
А это значит, что между проприетарным Skype и панелью индикаторов находится маленькая бибилиотека с открытым кодом.
Скачиваем:
1
|
apt
-
get
source
sni
-
qt
&&
cd
sni
-
qt
*
|
В каталоге src нас ждут два десятка файлов, в числе которых iconcache.cpp
Поиск слова "save" даёт ровно один результат:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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
)
)
;
continue
;
}
}
QString
pixPath
=
QString
(
"%1/%2/%3.png"
)
.
arg
(
m_themePath
)
.
arg
(
dirName
)
.
arg
(
key
)
;
if
(
!
pix
.
save
(
pixPath
,
"png"
)
)
{
qWarning
(
"Could not save icon as `%s`"
,
qPrintable
(
pixPath
)
)
;
}
|
Всё, что нужно сделать, это заменить
1
|
-
QPixmap
pix
=
icon
.
pixmap
(
size
)
;
|
на
1
|
+
QPixmap
pix
=
icon
.
pixmap
(
size
,
QIcon
::
Disabled
)
;
|
Это превратит все цветные иконки в серые. Примерно такие, какие нужны для темы humanity-dark.
Для humanity, темы по-умолчанию в версиях Ubuntu до 10.04, нужно перевести палитру на тёмную сторону силы.
Собираем и запускаем:
1
2
3
|
sudo
apt
-
get
build
-
dep
sni
-
qt
mkdir
build
&&
cmake
--
build
=
build
.
make
&&
sudo
make
install
|
Вот и всё. Иконка Skype более не мозолит глаза и вполне удовлетворительно выглядит.
Ищите хорошую букмекерскую контору? Я рекомендую mybet! Почитать о ней можно по адресу по адресу onlinebk.ru.