|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 21 Jun 2007 18:09:06 To : Andrey Melnikoff Subject : Re: xkb -------------------------------------------------------------------------------- Jun 21 01:45 07, Andrey Melnikoff wrote: IA>>>> Можэт, пропатчить одну кривую gtk? AM>>> Может. Кто будет доносить до аффтароф? А если кто-то захочет AM>>> сделать педаль AM>>> именно на Ctrl+Я - он что должен будет делать ? ZK>> Извращаться. Потому что желание явно противоестественное. AM> Это для тебя противоестественное. Для меня вот cp866 в иксах - AM> противоестественно. Так. Давай по порядку. Про 866 пока можешь вообще забыть, так как этот глюк и в 1251 проявляется тоже, и как говорят - в KOI8R тоже. Так что будем обсуждать клавиатурный ввод безотносительно локали, ну может быть исключая юникод, и то только потому что я в юникоде это не проверял. Подозреваю что там то же самое. AM> Если у нас есть софт, в котором люди работают в 90% AM> времени с русской раскладкой - то и аксели надо делать в русской AM> раскладке. Hет, они должны работать _независимо_ от раскладки! Если перед нажатием хоткея пользователь должен задумываться какая у него включена раскладка - то весь смысл от этого хоткея теряется. Потому что смысл в _автоматизме_ нажатия нужных клавиш. AM> А alt+букоффа - их может оказаться мало. Сечешь? Или готов на каждый AM> чих свитчевать раскладку? Что значит мало? Почему ни в досе ни в виндах не мало? Если мало альтов, можно добавить alt-shift-буква ZK>> Традиционно, сочетания кнопок с Ctrl и Alt всегда работали вне ZK>> зависимости от ZK>> положения переключателя клавиатуры рус/лат. Да и сейчас в виндах ZK>> работают. И только у нас в линуксе глюк. AM> Мля. Захар. Ты хоть почитай исторические тугаменты чтоль. Читал. Hо это "исторические причины" не оправдывают имеющийся глюк. AM> Традиционно - комбинации клавиш Ctrl+букоффа AM> мапились соответственно таблице ASCII. AM> Педали Alt+буккофа - никуда не мапились. Запусти xev и посмотри как он реагирует на нажатие ctrl и alt вместе с русскими и латинскими буквами. В частности на то место, где он пишет keysym и его имя. В этом месте вообще ничего никуда не мапится. Однако для сочетания с ctrl выдается _латинский_ keysym, а для сочетания с alt - почему-то _русский_ keysym. Вопрос - почему? AM> потом начались писюки. AM> И bios научили сувать в шареный сегмент доса флаги клавиатуры AM> (в нашем случае евенты от gdk с AM> GDK_Control|GDK_Alt|GDK_KP_NumLock|...). AM> Всяческие извращены, которые надыбали как лезить в клавиатуру AM> напрямую - и тут началось.. А ведь Иксы работают именно по аналогии с писишным биосом! Еще раз запусти xev и посмотри. Выдается keysym и состояние флагов. Hе я это придумал, а авторы иксов. А ты, когда говорил о том, что куда мапится, по всей видимости имел в виду функции XLookupString и XmbLookupString. Они-то действительно мапят сочетания букв с контролом в управляющие символы, а сочетания с альтом не мапят вообще никуда. Также кстати как не мапят и клавиши со стрелками. Hо то, что они выдают на них пустое место - не мешает программам на gdk понимать стрелки. Значит они keysym читают, а не только результат работы этих двух функций? Ты лучше меня внутренности gdk знаешь - можешь это подтвердить или опровергнуть. Кстати - есть ли для gdk функциональный аналог xev, показывающий ее внутренние сообщения? AM> Здесь весь вопрос в том - что именно надо сделать с gdk - сломать её AM> совсем, чтоб она и для дефолтной раскладки давала эвент AM> GDK_Control+GDK_язык_букофа, и заставлять буржуев пользоваться AM> встроенной функцией для проевращения этого евента в их любимое AM> ^lat-буковфа. AM> Или наоборот - расширить понятие клавиатурного евента и гнать там AM> сразу GDK_Control+GDK_язык_букофа и отдельно ^lat-буккофа. Если gdk не имеет доступа к keysym - то задача хорошего решения не имеет, только два плохих. Hо как-то ведь gdk клавиши со стрелками упраления курсором читает? Значит есть шанс на хорошее решение. Hадо бы исходник xev найти и посмотреть как он до keysym добирается... --- Msged/LNX 6.1.1 * Origin: mobile point - Compaq Armada 1750 + Siemens ME45 (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3288467abbd7.html, оценка из 5, голосов 10
|