Pull to refresh

Comments 87

Полезно, спасибо! Добавлю в закладки чтобы не забыть.
Закладки в закладки. А вы, я смотрю, любитель рекурсии.
Я не запускаю свою «интереса ради» убунту даже раз в месяц, да и в той пиджин настроен на работу со скайпом, но почитать было интересно. Особенно про стены =) спасибо.
Кстати, я изредка использую ник kekekeks как альтернативный уже года 2-3.
Совпадение? =)
Тут был акк с моим основным ником, но его забанили -_-
Ваш стиль изложения мне определенно нравится.
А вот решение… менять X-сервер из-за одного кривого приложения — как-то не комильфо.
Он внутри основного висит. То биж, вот тот чёрный квадрат на старте — это и есть фреймбуфер X-сервера. Причём там переменная DISPLAY не меняется (через LD_PRELOAD перехватывается XOpenDisplay, и замена идёт только для скайпа), так что можно спокойно клацать по ссылкам в чате, и они откроются как положено.
Отлично, надо попробовать…
маленький оффтоп — не в курсе почему после рестарта (ubuntu 10.04.2 LTS) скайп не запускается и проблема решается только его переустановкой?
Спасибо за наводку, что пидгин можно со скайпом подружить. Теперь стало гораздо удобнее :)
Недавно просто пришлось пересесть на линукс…
У этого плагина есть набор ограничений с групповыми переговорами, делающих его для этих целей малоюзабельным. А я в основном для таких чатов скайп и держу.
Все таки ты это сделал )
Реально примелькались топики с вкладками на скайп.
Спасибо еще раз — юзабельно.
Я тоже думал на эту тему… И додумался до определённой схемы, которую, увы, не смог заимплементить — времени не нашлось, лень стало и всё такое.
А именно, в Qt есть классный класс QX11EmbedContainer (http://doc.qt.nokia.com/latest/qx11embedcontainer.html), который, судя по заверениям разработчиков (http://labs.qt.nokia.com/2005/08/10/playing-around-with-xembed/) даже корректно передаёт клавиши и их сочетания, даже если аппликуха не поддерживает XEmbed!
Так вот, если добавить к этому немного чёрной магии (вроде перехвата от X сервера всех сообщений о создании окна и фильтровать там скайпоокна) и табы — то может быть что нибудь получится…
Я забрасывал зимой скайпоокна в кутэшный контейнер, когда эксперементировал с XReparentWindow. Результат тот же, что и с GtkSocket: клавиатуру оживить так и не получилось. Можно попробовать, конечно, руками рассылать через XSendEvent, но могут возникнуть проблемы с фокусом и прочим.
Так говорю же, QX11EmbedContainer и XReparentWindow немного по разному действуют. Когда я просто забабахал одно чатоокно скайпа в такой контейнер — оно прекрасно работало, все события клавиатуры прекрасно отсылались.
Почитайте что пишут labs.qt.nokia.com/2005/08/10/playing-around-with-xembed/ — думаю можно вместо клика фокус переводить с помощью какой нибудь иксовой функции, которая будет вызываться по клику на таб (ну как было в первой вашей версии примерно сделано) — и всё будет работать
Надо будет поковырять. Единственное, придётся писать на плюсах (а я в последнее время сильно от них отвые), ибо стабильных биндингов для CLI нет.
Если хотите, могу возможно чем то подсобить. Сам бы не взялся, а помочь МБ помогу.
Вообще я давно хотел основательнее разобраться с Qt, а в больнице будет на это время. Думаю, неплохая возможность
И кстати на моей Kubuntu не завелось. Появилось чёрное окно, потом запустился скайп, потребовал доступа для СкайпТаба (который я дал) и… Всё. Открываю чаты пачками — открываются как и раньше. Чёрное окно как висит сиротливо — так и висит…

Надо попробывать всё ж эту методу.
void QX11EmbedContainer::embedClient ( WId id )

Instructs the container to embed the X11 window with window ID id. The client widget will then move on top of the container window and be resized to fit into the container.

The id should be the ID of a window controlled by an XEmbed enabled application, but this is not mandatory. If id does not belong to an XEmbed client widget, then focus handling, activation, accelerators and other features will not work properly.
Пока что у меня этот вызов вообще ничего не делает почему-то.
А я решил проблему плагином скайпа для Пиджина) Сам скайп запускается при этом, но видно его только в процессах)
UFO just landed and posted this here
А почему это так плохо? Та же баньша на шарпе написана и идёт в дефолтной поставке убунты в качестве штатного плеера.
Ага! mono нужно ставить?.. Черное окошко только получилось.

Без моно никаких скайпов?.. Не-не-не-не, Дэвид Блейн!

UFO just landed and posted this here
То есть, моно виновато тем, что распространено меньше того же питона. Ок.
UFO just landed and posted this here
W: Не удалось получить httр://ppa.launchpad.net/keks9n/main/ubuntu/dists/maverick/main/source/Sources.gz 404 Not Found
httр://ppa.launchpad.net/keks9n/main/ubuntu/dists/maverick/main/binary-amd64/Packages.gz 404 Not Found
:(
Оно под natty. Можно просто поменять в sources.list, там никаких сверхъестественных изменений в библиотеках быть не должно.
Извините, сейчас нет времени в этом разбираться, поэтому быстрее спросить у Вас. А возможно ли использовать этот Xephyr в качестве полной обертки над стандартными иксами? Или ещё лучше, можно ли безболезненно их подменить стандартные иксы вот этими?
Я просто уже очень давно пытаюсь справиться с тем, что под нвидиевскими картами, судя по всему, невозможно штатными средствами сделать так, чтобы один монитор был в ландшафтной ориентации, второй в портретной и при этом одновременно работал бы компиз.
Эм. Xinerama оно точно умеет, насколько я знаю. Но тогда придётся два кефира запускать на полный экран и уже поверх них запускать компиз.
А вообще это страшный костыль, но можно, да.
Окей, понял, спасибо. Ближе к выходным тогда покопаюсь

Костыль-то страшный, но альтернатив как-то нет. Либо штатная xinerama + полное отсутствие какого бы то ни было ускорения на одном из мониторов вообще, либо twinview + оба монитора горизонтальные, либо открытые дрова + неработающая cuda, а это уже критично. И так уже 4 года продолжается, техподдержка нвидии ссылается на косяки в X11, разработчики иксов ссылаются на то, что нвидия слишком ленивая.
В общем, без костылей это просто никак не сделать, к сожалению
Скорейшего выздоровления! Берегите себя ;)
UFO just landed and posted this here
Тормозит что именно? Вывод htop покажите, пожалуйста.

С раскладкой вообще странно — настройки клавиатуры должны клонироваться через xmodmap. Стрелочки при этом работают?
Проблема с раскладкой повторяется. В итоге оно вобще захватило мышь и клавиатуру и решило что основному X серверу они не нужны)

Ставил из ppa.

Что можно сделать чтоб подробнее диагностировать? может что инть из исходников собрать?
после перезапуска совсем сломалось — Unable to launch Xephyr, see console log for details:
UFO just landed and posted this here
>Так же буду рад, если кто-нибудь сделает пакеты для других дистров.
Для того чтобы собрать пакеты (по крайне мере rpm-ки), надо решить эту проблему:
+ /usr/bin/make install DESTDIR=/home/abuild/rpmbuild/BUILDROOT/skypetab-0.1.1-7.1.i386 INSTALL_ROOT=/home/abuild/rpmbuild/BUILDROOT/skypetab-0.1.1-7.1.i386
mkdir -p /opt/skypetab/
mkdir: cannot create directory `/opt/skypetab/': Permission denied

Сделайте пожалуйста так, чтобы можно было поставить программу не в корень дистра, а в папку сборки…
Перезалил архив, теперь должно цеплять DESTDIR. Там Makefile собран на коленке просто -_-
Тут выявили проблемы с подгрузкой dispfix.so на 64-хбитных системах. Скайп-то 32-хбитный. Фиксы будут завтра.
Жду с нетерпением
А как понимать сентенцию насчёт количества контактов во втором пункте списка противопоказаний? («Если Вы [sic] настроили себе мост в Pidgin [sic] и теперь все 3.5 [sic] скайпоконтакта у Вас [sic] в этом списке, то этот пост не для Вас [sic]»).
В том плане, что их так мало, что даже не дтягивает до четырёх )
А какая разница? Если 50+ контактов и настроен «мост в Pidgin», что-то изменится?
Видимо топикстартер считает, что мост в Пидгин удобен только для небольшого количества контактов.
Если не пользуетесь скайпоконфами, то ничего не изменится.
а как быть с таким выводом?

Unhandled Exception: System.Exception: Unable to open the session message bus. ---> System.ArgumentNullException: Argument cannot be null.
Parameter name: address
at NDesk.DBus.Bus.Open (System.String address) [0x00000] in :0
at NDesk.DBus.Bus.get_Session () [0x00000] in :0
— End of inner exception stack trace — at NDesk.DBus.Bus.get_Session () [0x00000] in :0
at SkypeTab.SkypeApi.CheckRunning () [0x00000] in :0
at SkypeTab.MainClass.Main (System.String[] args) [0x00000] in :0
Кидаться тухлыми овощами в NDesk.
Появилась идея всё же таки поиздеваться над XWindowReparent и форвардить ему события, полученные от X-сервера.
Вы таки будете смеяться, но XReparentWindow в комбинации с XSetInputFocus спасает отца русской демократии. Пойду всё это теперь переписывать.
Убейте меня кто-нибудь, я идиот. Полгода бился над проблемой и проглядел самое простое и очевидное решение. Сейчас переписываю по уму.
Sign up to leave a comment.

Articles