| Если вы не пользуетесь скайпом для линукса, можете сразу ткнуть сюда и посмотреть на |
За прошедшую неделю были произведены следующие изменения:
- Достигнута совместимость с Unity
- Достигнута совместимость с kwin и, похоже, со всеми остальными оконными менеджерами (этот ваш awesome почему-то не хочет разворачивать окно во весь экран, но, думаю, его можно донастроить как надо).
- Потеряна и вновь возвращена (спасибо тов. Restorer за то, что нашёл корень проблемы и предоставил фикс) совместимость с Gentoo
- Решён ряд проблем, связанных с фокусом ввода
- Добавлено переключение табов по Ctrl+Tab/PgDown/PgUp
- Добавлена возможность выбрать, какие типы окон встраивать во вкладки
- Устранено «мерцание» при открытии новой вкладки
- Исправлена тянущаяся ещё с прошлогодних версий проблема производительности, связанная с тем, что статус наличия новых сообщений проверялся опросом X-сервера на предмет _WM_NET_NAME и проверкой наличия * в начале (на третий день Зоркий Глаз увидел, что у
сарая нет стеныQWidget есть isWindowModified)
Скачать бесплатно без регистрации без СМС
Исходный код.
PPA для Ubuntu. По свидетельствам очевидцев для 6-го Debian-а подходит версия из PPA для Lucid.
Установка на Ubuntu:
sudo add-apt-repository ppa:keks9n/skypetab
sudo apt-get update
sudo apt-get install skypetab-ng
В случае с Debian нужно будет добавить «deb http://ppa.launchpad.net/keks9n/skypetab/ubuntu lucid main» в sources.list и импортнуть ключ репозитория через apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 41A6E3C3.
Внимание: по пока не установленным причинам на некоторых 64-битных версиях дистров (как минимум на Ubuntu 10.04) нормально не грузится интеграция с GTKшной темой. В результате случается падение при открытии разговора. Лечится установкой другой темы оформления в настройках скайпа.
Fedora, OpenSUSE
Много букв о Unity и Canonical
Введение
В тот забавный момент, когда они начали пихать Unity в выходящие версии Ubuntu, у меня была вполне рабочая связка из CairoDock и AWN (ее можно увидеть на видео по ссылке выше), и я не понял, зачем мне нужно то же самое, но тормозное, глючное и при падении тащащее за собой в небытие compiz поделие. В результате при обновлении мне пришлось потратить 15 минут на то, чтобы вычистить Unity из системы, а все связанные с ним проблемы обошли меня стороной. SkypeTab же всегда разрабатывался на этом соответствующем стандартам X11 окружении (Cairo-Dock их местами даже лучше поддерживает, чем панель Xfce) и с его работой особых проблем не было. Теперь же мне пришлось столкнуться с таким забавным развлечением как «портирование на Unity». Никаких приятных эмоций я при этом, поверьте, не испытал.
Сравнительный анализ трея и indicate
Начнем издалека. Не так давно мне тут один персонаж впаривал, что стандарт трея X11 устарел и не нужен, а индикаторы — наше все. Давайте посмотрим, как работают области уведомлений в X11 и в Unity.
Для того, чтобы добавить иконку в стандартный трей вам надо создать окно, найти трей (около 2 строк кода) и пнуть его, чтобы он увидел это окно. После чего он его в себя встраивает, вам приходят все сообщения о движении мыши, а на самой иконке можно хоть фильм показывать, хоть через OpenGl 3D-анимацию крутить. Просто, прозрачно, функционально, работает уже много лет.
В Unity используется некая система под названием indicate, работающая через D-Bus (можете сказать «пока» значкам в области уведомлений при вх��де через VNC под тем же юзером). Правый клик (о движении мыши вообще молчу) поймать возможности нет, сложную анимацию отобразить тоже нельзя. Прогресс просто налицо. Синдром NIH (Not Invented Here) в терминальной стадии. Из плюсов можно отметить сделанное на ней messaging menu, которое при отсутствии мультипротокольного мессенджера бывает весьма полезно в хозяйстве.
О том как каноникал совместимость труба шатал
Естественно, разработчики долгое время (индикаторы появились довольно давно) их игнорировали. Каноникал это задевало и они решили отключить трей вообще, однако, поскольку разработчики теперь начали игнорировать не только индикаторы, но и несовместимость с Ubuntu в целом (и они правы, почему должен переписываться софт, если кому-то приспичило сделать свой трей, причём без преферанса и поэтесс?), а наложить свои кривые патчи на проприетарные штуки типа Skype несколько проблематично, пришлось изобрести костыль в виде белого списка приложений, для которых трей все-таки был. Однако, данный костыль проблему не решал. Всё равно ведь использовался трей. Тогда кому-то пришёл в голову просто гениальный план: а давайте сделаем патч на Qt, чтобы QSystemTrayIcon показывал иконку не в трее, а как индикатор, а левый клик будем эмулировать через дополнительный пункт меню. Сказано — сделано, и вот уже искомые патчи на Qt готовы и вошли в дистрибутив. В недавно вышедший Qt 4.8 они, естественно, не вошли, да и в грядущий Qt 4.9 тоже не войдут, т. к. разработчикам Qt тоже не понятно, почему в их коде должны появляться костыли из-за того, что каноникал у себя нечто такое ни с чем не совместимое соорудило.
Заключение
Вот во всём этом мне пришлось разбираться, чтобы понять, почему на Unity у меня сломалось разворачивание из трея. Поскольку выяснилось, что у скайпа иконки в трее теперь совсем нет, пришлось городить перехват QObject::connect, что стабильности работы не прибавило.
Скажу немного о интеграции SkypeTab с messaging menu. Откладывается она по той простой причине, что интерфейсы D-Bus, через которые работает indicate, документированы чуть менее чем никак, а сама libindicate упакована так, что о поддержке пропагандируемого самой же Canonical Multiarch нет и речи, ведь стандарты существуют чтобы их нарушать. Т. е. нормально на 64-битных системах в 32-битном коде данную библиотеку использовать нельзя. Никак. Я, конечно, что-нибудь придумаю, и оно даже будет работать. Примерно до выхода 12.04. Ибо кто знает, какие ещё «прогрессивные» изменения нас ожидают.
