Pull to refresh

Вкладки для линуксового скайпа. А вдруг я ещё не всем с ними надоел?

Reading time 2 min
Views 5.9K
Если вы не пользуетесь скайпом для линукса, можете смело листать хабр дальше.

Для тех, кто не знаком с эпопеей переписываний с нуля данной утилиты, небольшое видео того, как это работает:

Для остальных же сообщаю, что оно переписано уже в четвёртый раз, теперь на C++ и Qt.
О том, что поменялось, и где всё это счастье взять, можно узнать под катом.


Предыдущая версия была неплоха, но имела ряд принципиально неустранимых недостатоков:
  • периодически заставляла Xorg кушать 100% CPU
  • не работал drag&drop файлов в окно чата
  • периодически табы просто напросто не открывались
  • иногда случались потери фокуса ввода, из-за чего приходилось сворачивать окно или переключать вкладку

Неустранимыми они были по той простой причине, что утилита работает в отдельном процессе и издевается над окнами скайпа через X11. Для исправления недостатков было необходимо подгружать свою библиотеку в адресное пространство скайпа, что означает отказ от использования C#, т. к. таскать за собой 32-битный моновский рантайм и 32-битные биндинги к Gtk на 64-битных системах было бы весьма странно. Вспоминать C++ было очень лениво, а потому всё это оказалось отложенным в долгий ящик.
Но тут наступила середина зимы, время, когда студент делает что угодно, кроме того что нужно, а потому идея в очередной раз взять и переписать таки воплотилась в жизнь.

На текущий момент оно малость сыровато, но уже юзабельно.

Пакет для Ubuntu можно раздобыть у меня в PPA.
Репозиторий для Debian тут. GPG-ключ репозитория можно найти по той же ссылке, добавлять в sources.list строкой
deb http://download.opensuse.org/repositories/home:/keks-n/Debian_6.0/ ./

Буду рад, если кто-нибудь соберёт RPMки. Пока можете натравить alien на deb-пакет, благо зависимостей в нём не прописано никаких, ибо они ровно те же, что и у скайпа (XLib, QtCore, QtGui).
Перед установкой не помешает вручную удалить старую версию.

Изменения потом будут отражаться вот на этой страничке, но пока она даже не приведена в соответствие с новой версией.

Исходники можно раздобыть тут. Перед сборкой нужно запустить «qmake -spec linux-g++-32».

Специально для желающих открыть мне глаза на возможности KWin сообщаю: меня они не устраивают, почему — описано в предыдущих постах.

UPD:
Спасибо за багрепорты. Пока что вот небольшой список найденных багов:
1) для получения фокуса ввода сообщения бывает нужно нажать чуть выше поля набора.
2) несовместимость с sni-qt (костыль для UИITY, издевающийся над кутэшным классом иконки в трее).
3) некоторые таскбары не реагируют на изменение иконки, а UrgencyHint я выставить забыл
4) Иногда содержимое таба не ресайзится
5) Иногда вообще не открывает таб
6) Какие-то мутные проблемы с KWin
7) Почему-то нормально не работает на генту и арче. Мистика.

UPD: Поправил (вроде бы) проблемы с Unity и пару багов. Обновляйтесь.
Tags:
Hubs:
+74
Comments 104
Comments Comments 104

Articles