Created attachment 3863 [details] firefox-cross-desktop.patch После положительного ответа на вопрос "Хотите стану умолчательным браузером?" в KDE он им не становиться. Патч взят из пакета MozillaFirefox http://download.opensuse.org/repositories/mozilla:/Factory/openSUSE_Factory/src/
У меня в gnome вроде всё работает.
Created attachment 3864 [details] Пример кода для KDE3/4 на sh Патч SuSE-специфичный. Его нужно изменить для ALT
(В ответ на комментарий №1) > У меня в gnome вроде всё работает. Забыл написать, что это в KDE*
(В ответ на комментарий №3) > Забыл написать, что это в KDE* Что это за shell-скрипт? Прошу сделать патч, который я могу приложить к исходникам. Также прошу учесть в патче, что такой скрипт добавит зависимость на KDE в firefox. Этого нужно избежать для пользователей, не использующих KDE.
(В ответ на комментарий №4) > (В ответ на комментарий №3) > > Забыл написать, что это в KDE* > Что это за shell-скрипт? Я вроде по-русски точно описал. > Прошу сделать патч, который я могу приложить к исходникам. Я не умею JS, поэтому привел пример на SH, чтобы тебе было легче исправить оригинальный патч. > добавит зависимость на KDE в firefox. Не надо ничего добавлять.
(В ответ на комментарий №5) > Я вроде по-русски точно описал. Я так понял, что вместо /usr/bin/kwriteconfig ты предложил вызывать этот скрипт. > Я не умею JS, поэтому привел пример на SH, чтобы тебе было легче исправить > оригинальный патч. У меня нет ни одной машины с KDE. Патч в слепую я буду писать долго.
(В ответ на комментарий №6) > Я так понял, что вместо /usr/bin/kwriteconfig ты предложил вызывать этот > скрипт. Нет. Патч поправить, чтоб делал то же, что и скрипт. Т.е., в патче только для 1-го kde и путь к kwriteconfig прибит гвоздями. Т.е. то место, где shellObj.initWithPath("/usr/bin/kwriteconfig");, 2 раза сделать для каждого kwriteconfig 1. вычислить путь к каждому kwriteconfig 2. проверить, лежит ли он на диске 3. если лежит, добавить ему одни и те же аргументы и выполнить Разница только в путях к kwriteconfig и гвоздями их лучше не прибивать
Но, если очень хочется попроще, то можно и прибить гвоздями Выполнить одно и то же для каждого элемента списка: /usr/bin/kwriteconfig /usr/lib/kde4/kwriteconfig Пути вроде устаканились. Если поломается, скажу, когда наткнусь.
Ой, наврал /usr/bin/kwriteconfig /usr/lib/kde4/bin/kwriteconfig
(В ответ на комментарий №7) > Нет. Патч поправить, чтоб делал то же, что и скрипт. Тогда всё будет сложнее. > 1. вычислить путь к каждому kwriteconfig Вот только вывод от команды в JS делается не так тривиально, как кажется. Сейчас я за это не возьмусь. Всё что сейчас могу сделать для вас это положить приведённый вами скрипт в firefox-support-kde, и вызывать его из JS.
(В ответ на комментарий №9) > Ой, наврал > /usr/bin/kwriteconfig > /usr/lib/kde4/bin/kwriteconfig Ну или так. Это хоть и уродливо, но реализуемо.
Конечно, правильнее было бы сделать так как сделано для GNOME (я про xulrunner-support-gnome), но раз никто не может осилить один модуль, то можно и захакать.
(В ответ на комментарий №12) > xulrunner-support-gnome Я смотрел, там прилично работы. Да и куски раскиданы, обернутые #ifdef GNOME , а это уже фигово :-(
(В ответ на комментарий №13) > Да и куски раскиданы, обернутые #ifdef GNOME , а это уже фигово :-( ifdef есть в основном коде только для того чтобы проверить наличие GNOME-specific поддержки. Вся остальная поддержка делается отдельными компонентами.
firefox-3.5.3-alt0.20090918 -> sisyphus: * Sun Sep 20 2009 Alexey Gladkov <legion@altlinux> 3.5.3-alt0.20090918 - New snapshot (3.5.3 20090918). - Set firefox as default KDE/KDE4 browser (ALT#21509). - Update desktop file (ALT#21510). - Update requires (ALT#21533).
Не работает ни для одного KDE
(В ответ на комментарий №16) > Не работает ни для одного KDE Эвенты шлются ?
(В ответ на комментарий №17) > Эвенты шлются ? Какие куда? Где видно? Нужно, чтоб команды выполнялись. Если не работает, значит не выполняются или выполняются не те, которые нужно.
(В ответ на комментарий №18) > (В ответ на комментарий №17) > > Эвенты шлются ? > Какие куда? Где видно? > Нужно, чтоб команды выполнялись. Если не работает, значит не выполняются или > выполняются не те, которые нужно. Вот я и хочу понять, дёргаются или нет утилиты. Этот код я правил в слепую, поэтому понятия не имею, рабочий он или нет.
(В ответ на комментарий №19) > поэтому понятия не имею, рабочий он или нет. Попробуй создать скрипт /usr/bin/kwriteconfig или /usr/lib/kde4/bin/kwriteconfig и написать в нем любую отладку
(В ответ на комментарий №20) > Попробуй создать скрипт /usr/bin/kwriteconfig или > /usr/lib/kde4/bin/kwriteconfig и написать в нем любую отладку Мне предётся выставить ещё KDE_FULL_SESSION. Кстати, когда ты пробовал firefox, эта переменная была выставлена ?
Естественно. Завел специально нового польователя и запустил KDE4 c FF
По ссылке посмотри MOzillaFireFox. Может, патч обновился. А то я в данный момент не могу скачать
Дык! Нет в пакете этого патча
(В ответ на комментарий №24) > Дык! Нет в пакете этого патча Какого "этого" ?
(В ответ на комментарий №25) > Какого "этого" ? Никакого не нашел. Как он называется?
Торможу. Я ж в xulrunner смотрю
Я ж написал пример команды. Если это вдруг выполниться, то KDE* вообще перестанет открывать ссылки http*
Created attachment 3932 [details] firefox-cross-desktop.patch
Created attachment 3933 [details] firefox-kde.patch Теперь просто эти 2 патча нужно. Не забудь вместе с этим #21678
(В ответ на комментарий №30) > Created an attachment (id=3933) [details] > firefox-kde.patch Этот патч не будет работать: ifeq ($(MOZ_WIDGET_TOOLKIT), gtk2) -CPPSRCS = nsGNOMEShellService.cpp +CPPSRCS = nsUnixShellService.cpp nsGNOMEShellService.cpp nsKDEShellService.cpp REQUIRES += \ mozgnome \ ^^^^^^^^^^^^^^ thebes \ $(NULL) +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre endif Таким образом ShellService хочет поддержку гнома. Возможно, достаточно доустановить xulrunner-gnome-support. Собственно до запуска kwriteconfig дело не доходит в первом патче т.к. var shellSvc = Components.classes["@mozilla.org/browser/shell-service;1"] .getService(Components.interfaces.nsIShellService); обламывается. Это и есть ShellService, который должен уметь работать c GNOME и KDE одновременно. Пока пробую его заставить работать...
Наврал ... у меня сервис не грузится потому что у меня нет ни KDE, ни GNOME.
firefox-3.5.3-alt0.20091010 -> sisyphus: * Sun Oct 11 2009 Alexey Gladkov <legion@altlinux> 3.5.3-alt0.20091010 - New snapshot (3.5.3 20091010). - KDE: Update patches (ALT#21509).