Re: [gnome-cyr] Почему у меня постоянно бъются темы?
- From: =?koi8-r?q?=E1=CC=C5=CB=D3=C5=CA_=EC=C0=C2=C9=CD=CF=D7?= <avl l14 ru>
- To: gnome-cyr gnome org
- Subject: Re: [gnome-cyr] =?koi8-r?q?=F0=CF=DE=C5=CD=D5_=D5_=CD=C5=CE=D1?==?koi8-r?q?_=D0=CF=D3=D4=CF=D1=CE=CE=CF_=C2=DF=C0=D4=D3=D1_=D4=C5=CD?==?koi8-r?q?=D9=3F?=
- Date: Sat, 12 Jul 2003 02:13:20 +0400
Sergey V. Udaltsov пишет:
Угумс. Вот и руководь, а не задавайся вопросом "хочу ли я это делать
ваааще". :)
Я надеюсь, я еще сохранил право определять направления развития:)
:)
Руководитель отличается от прочих тем, что принимает и обрабатывает
мнения, а затем распределяет нагрузку в соответствии с "инициатива
наказуема".
Видите ли, Вячеслав - не разработчик (ну, насколько я представляю его позицию). И в этом отношении ничем не рискует - он может генерить идеи в любом количестве - я даже не могу попросить его взять в руки компилятор. Но в этом случае позволю себе относиться чуть с большей "критичностью" к этим идеям. Вас я, конечно, попросить покодировать могу - но только попросить:)
И покодирую.
Вот дойдем до красивой и стройной модели да и начнем...
Это уже второй вопрос. Естественно такую функциональность в core
запихивать не стоит. А вот посмотреть во что выливается API с учетом
возможности написания такого плагина вполне можно.
Это значит, что само core должно предоставлять функцию переконфигурирования xkb. Этого-то мне делать и не хоца.
не совсем так.
требуется только возможность отключать уже сконфигуренные группы.
enable_group(index)
disable_group(index)
где index - номер группы от 1 до 4.
И тогда уже исходить не из того, писать или не писать плагин, а из того,
стоит ли такая возможность самого плагина трудов в core.
Во-во. Тут даже дело не в трудах (на сегодня gswitchit чисто организационно почти готов к такой жизни) - а в концепции. Которая мне не очень нравится (как руководителю проекта).
надо придумать такую концепцию, чтоб была красива и не мешала воплощать
необходимый функционал.
я не стою горой за данные функции, но давайте смотреть, что мы можем
сделать.
2)Решить, что будет в core, а что вылетает в плагины
Прямо так жестко? Введем "Бритву Любимова" (сорри за фамильярность, но в истории так принято) и будем отсекать:)
а как же иначе? это концептуальный вопрос. иначе кодить нечего...
3)Решить, какие плагины нужно делать, а какие оставить на
third-development (просто сделать их написание принципиально возможным
путем внесения нужной функциональности в API)
А-а. А может - просто узнать, кто реально собирается работать над 3rd party plugins и собрать с них пожелания? Может, так эффективнее будет? Чем реализовывать и поддерживать код, который никто не будет использовать.
Опять умный тезис хотел процитировать, да подумал, что хватит. Не на
кафедре. :)
3-d party образуется там, где есть твердая основа и нужно только
немножко дописать/дорисовать/попатчить.
Сейчас такой основы нет, так что и спрашивать бесполезно. С другой
стороны плагины будут писаться и нами, но в порядке очереди. Вот эту
очередь и стоит выстроить. Хотя бы по зависимостям, а еще лучше и по весу.
5)Написать TODO и ROADMAP
Второй уже есть:)
Для себя, подробней и на русском.
Нельзя рассчитывать на помощь других, не имея четкого плана.
6)Кодить
Ой, ждать-то как долго:)
:(
*список раскладок* (я понимаю, что ограничение на 4 раскладки, но
закладывать это в дизайн странички как то недальновидно)
Можно заложить. Изменение протокола xkb практически вряд ли осуществимо.
Ну хотя бы подумать на эту тему. Ну плохо же разворачивать классический
список в шеренгу...
* редактировать раскладку
Можно убрать "редактировать" - достаточно первых двух. Или вы собрались редактировать именно соотвествие клавиш и символов?(???)
Нет. горячую клавишу. Забегая вперед - усекаем.
*свойства раскладки *
* горячая клавиша для переключения в эту раскладку
Этого не будет. Могу обещать. Было. Прямо не реализуется. Точнее, реализуется таким геморром, что делает затею бессмысленной - быстрее и проще пробить патчи в XFree на добавление нового метода переключения. Тем более - Иван теперь может коммитить туда, если switchtcut разумен.
Усекаем.
* дефолтная раскладка (нужна в апплете и... вообще нужна :).
Бессмысленная установка без апплета. В параметрах апплета. xkb-properties-capplet славен тем, что все его установки доступны даже при отсутствии апплета на панеле (and I want to keep it that way). Эта установка работать не будет.
Не забывайте, что конфигуратор внедряется в гном. Дефолтная раскладка,
это очень важный параметр. Он обязательно должен быть доступен для гнома
и без апплета.
Он 100% нужен для rule-based engine. Одно из action - установить группу
по дефолту.
* с указанием parent виджета для встраивания в приложения.
(экстра, вполне можно потом)
Не нужно совсем. Я об этом думал - ни апплет, ни капплет никакой бонобо-ценности не имеют. Тому, кто придумает жизненный пример использования капплета - приз в лице пинты Гиннесса:) Апплет еще можно пробовать куда-то встраивать - но я не верю в то, что abiword или gaim реально на это пойдут. А ваять кучу бонобовского кода (вообще, бонобо - тот еще подарок, как любая компонентная модель, выраженная в С) just for a sake of it - нахрен.
усекаем.
Да, еще - в xkb-properties-capplet нужно сохранить кнопку advanced - для всех тех "экзотических" настроек, которые предоставляет xkb. Я видел людей, которым, например, нравится сопоставлять русскую раскладку с горящим ScrollLock.
ну и ладненько.
Все пишется сразу, никаких плагинов, с совещаниями в гноме и т.д.
Это понятно. Кстати, Вячеслав прислал эскиз настроек параметров для апплета. Если кто-нибудь подумает про капплет - будет совсем не плохо.
*Логирование*
М-м. Вообще-то, оно есть. И даже конфигурится кое-как. Проблема в том, что в гноме нет log4j (как жаваписец очень ее люблю). Поэтому особой гибкости не обещаю - создавать побочным продуктом log4j не хочу. Может, посмотрю на log4c - но вводить внешнюю зависимость от достаточно экзотичной либки только для логирования - стремновато. Короче, очень богатой конфигурируемости сегодня нет - и как-то вряд ли предвидится...
ну ввести несколько флагов и сделать фильтр.
Проблем при настройке монитора без логов будет очень много, кроме того
логи (веренее их обработка) отлично заменят xprop.
Логи безусловно нужны. Вопрос в минимально необходимом уровне гибкости.
минимально, это флаги 1,2,3,4
и движок 0 ->4 при 4 в лог идут все записи, при 0 - ничего. при 2 ->
записи с флагами 1 и 2.
* набор action (установить раскладку по умолчанию, установить
конкретную раскладку и т.д.)
Давайте уж в терминах xkb, коль скоро говорим о разработке. Вы про раскладку - или про группу? Раскладку, вообще говоря, установить нельзя:)
группу.
* роутинг событий через плагины в соответствии с очередью (может,
регистрировать из плагина события, к которым их подключать?)
Смысл уточнять события? Какой-то уж очень fine performance tuning. Чтобы окупить такое изменение, нужно на руках иметь десяток наличных плагинов. Меня учили, что нет ничего вреднее преждевременной оптимизации:)
Да, кстати, плагины должны иметь возможность сказать CANCEL обработке события. Дескать, я обработал - а остальные пусть не трогают. Так, как это сделано в gtk для событий X.
тож правда. усекаем.
* Список текущих раскладок с вкл/откл чекбоксом (идея Славы, только
в терминах и понятиях гнома гнома :)
Вот это я не понял.
Зато я понял из дальнейшего контекста, что предполагается включать и
выключать сконфигуреные раскладки в control-center.
Тоже годится.
Воля ваша, а я бы флажки _временно_ (до stable релиза) прибил.
До какого предела? Вообще - или выбор картинки руками?
вообще.
1) все эти локальные соответствия, картинки в апплете и прочее ломкое дело.
Жестко. Зачем?
Флажки в гноме есть? табличка соответствий между флажками и группами в
гноме есть?
Флажки ко всем группам есть?
Получается весьма неполная функция.
2) картинка - красиво, но малоинформативна. у текста есть цвет надписи,
цвет фона, жирность, курсив которыми можно рулить из плагинов легко и
непринужденно (через соответствующие action) , а что делать с картинкой?
Зачем это все рулить? Есть тема гнома. В ней указано, как рисовать label. И все. Не нужно выходить за рамки темы. Гномовцам не понравится - и правильно.
Например, чтобы показать, что функция автокоррекции вводимого текста
включена. Фон надписи поменять можно?
3) Устаканится action лист - станет ясно, что можно сделать с их
индикацией в случае флажков.
Вот тады менять и будем.
ну ладно.
4) Кодить, кодить, кодить будет проще... :)
Да и сейчас это не очень сложно:)
rule-based engine надо или дорабатывать до универсального вида и
впихивать в core или делать в виде плагина.
Что значит "до универсального вида". Я надеюсь, Вы не заставляете меня изобретать емакс и использовать лисп?
это значит, что engine должен обеспечивать достаточно интересную
функциональность в рамках тех дел, которые делаются в апплете.
в апплете есть плагины, есть wm_class, есть приходящие события типа
переключение группы, переход фокуса окна, . Все это должно проходить
через rule engine и разводится в плагины, пропускаться или выполнятся.
То, что у Вячеслава, чистый плагин. Если же делать по другому - правила
Правило - простое. WM_CLASS->group number. В gconf кладется в виде
/apps/gswitchit/Windows/WM_CLASS.0
/apps/gswitchit/Windows/groupNumber.0
это вырожденное правило. Без уточнения виджета его нельзя будет
использовать.
Мозилла будет скидывать каждый раз в английский? опенофис?
только gmplayer, то там может быть русский, а текст и не участвует.
и т.д.
Может, когда-то добавится
/apps/gswitchit/Windows/secondaryGroupMask.0
Это все action list.
Должен быть
/apps/gswitchit/rule/WM_CLASS.0
/apps/gswitchit/rule/action_id.0
/apps/gswitchit/Windows/action_data.0
и далее switch на action_id
и если сказано отдать в плагины - прогон по плагинам.
если сказано поставить дефолтную группу - поставить ее
если сказано поставить конкретную группу - аналогично.
Маску групп поменять - действуем.
Плагины в таком случае тоже регистрируются правилами. Нажал чекбокс
"активизировать плагин" и плагин через API прописал пару правил для
передачи нужных ему событий на себя. Отжал - отписался. Резко упрощается
конфигурирование плагинов, оптимальность некотрая.
Это возможно. Правда, плагины (такого типа) начинают становиться какими-то очень одинаковыми. Может, в этом случае, все-таки лучше один конфигуратор для правил?
Конфигуратор должен отражать задачу пользователя. А правила абстрактны.
Иожно написать несколько плагинов с разными видами гуя, которые будут
формировать правила по своим шаблонам.
Получается выход один - правила, а входов много - конфигураторы.
Переключение происходит по кругу. И в нем постоянно сидят "мертвые
души". Так что использовать будут.
А-а. Так вы просто про смену маски вторичных раскладок per WM_CLASS. Это меня не пугает, это можно обсудить:)
ага. стало быть я предложил плохую реализацию.
а что такое маски вторичных раскладок?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]