|
|
| Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Проблемма с клавиатурой в Thinstation 2.1 |
|
|
info man howto Сообщения: 7,884
|
Профиль | Сайт | Отправить PM | Цитировать Barvinok
Это-то как раз ясно ![]() Истина скрывается в нюансах ![]() |
|
------- Отправлено: 23:59, 21-06-2005 | | #21 | |
|
Для отключения данного рекламного блока вам необходимо зарегистрироваться на нашем форуме. Сделать это можно по этой ссылке. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
|
Новый участник Сообщения: 23
|
Профиль | Сайт | Отправить PM | Цитировать Доброго времени суток. Сам столкнулся с такой проблемой (кстати, решение еще не найдено?), есть версия, что в rdesktop где-то прячется баг.
Поведение rdesktop: При "правильном" переключении раскладки по альт-шифт: 1. Нажимаем альт. Генерируется событие (прерывание) "нажат альт" 2. Нажимаем шифт. Генерируется событие "нажат шифт" 3. Отпускаем шифт. Генерируется событие "отпущен шифт" Здесь винда понимает, что нужно переключить раскладку. И переключает ее. 4. Отпускаем альт. Генерируется событие "отпущен альт" При "неправильном" переключении альт-шифт происходит следующее: 1. Нажимаем альт. Событие "нажат альт" 2. Нажимаем шифт. Событие "нажат шифт" 3. Отпускаем альт. Что видим? Винда переключила раскладку, как будто мы отпустили шифт. Возможно, здесь в rdesktop баг, и он посылает сообщение "отпущен шифт" 4. Отпускаем шифт. Снова винда переключает раскладку, значит снова "отпустили шифт". Замечаем, что после "неправильного" переключения раскладки у винды остается ощущение, что клавиша альт все еще прижата (например, при нажатии "H" вываливается справка, как по Alt+H). Лечится повторным нажатием клавиши альт. Проверил поведение штатного виндового десктоп-клиента. Оно адекватно: он в обоих случаях, при "правильном" и "неправильном" переключении, переключает раскладку один раз и не оставляет залипнутым альт. Как это лечить, я пока не выяснил, буду колупать дальше (скорее всего, с использованием сниффера) и надеюсь на вашу поддержку ![]() |
|
------- Отправлено: 19:29, 28-06-2005 | | #22 | |
|
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать Figaro
Чувак, ты вкуриваешь.. Но ты не обратил внимание на один нюанс: если не включать при компиляции НИКАКИХ раскладок клавиатуры, то залипания не происходит. Значит проблемма кроется не в rdesktop, а в интерференции между rdesktop и раскладками (IMHO). Если что накапаешь - пиши обязательно: этой проблеммой масса людей изводится! Я, к сожалению, линукс только начал изучать. Что то путное смогу сказать не раньше, чем через пол-года. |
|
Отправлено: 04:11, 29-06-2005 | | #23 | |
|
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Забавно, дошел до туда же что и Barvinok, пытаюсь "заработать" стрелки и клавиши повыше или отключить залипание.
|
|
Отправлено: 13:24, 29-06-2005 | | #24 | |
|
Новый участник Сообщения: 23
|
Профиль | Сайт | Отправить PM | Цитировать Радостно, что сниффер использовать не придется, а почти готовое решение проблемы описано вот тут: http://forum.opennet.ru/openforum/vs...ID1/57069.html. Насколько я понял, этот не баг, а такая иксовая особенность: интерпретировать нажатие альт+шифт как нажатие клавиши "мета".
Я тоже проверил, для нормальной работы thinstation нужно: 1. Запустить rdesktop (чтобы загрузились иксы) 2. Перейти во вторую свободную консоль (ctrl+alt+f2) 3. Там залогиниться (для дефолтной сборки пользователь root, а пароль pleasechangeme) и набрать команду Код:
DISPLAY=':0' xmodmap -e "keysym Alt_L = Alt_L" ![]() Ясно, что каждого так делать не заставишь, поэтому thinstation нужно пересобрать. Пересборкой thinstation я еще не занимался (нет времени), поэтому пока не нашел, чего можно исправить, но есть подозрение, что можно поправить в файле packages/rdesktop/etc/cmd/rdesktop.global с Код:
CMD_GLOBAL="rdesktop -k $KEYBOARD_MAP -f" Код:
CMD_GLOBAL="xmodmap -e 'keysym Alt_L = Alt_L'; rdesktop -k $KEYBOARD_MAP -f" ![]() |
|
------- Отправлено: 19:31, 29-06-2005 | | #25 | |
|
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать К сожалению не сработало.
При загрузке образа самой последней строкой идёт Код:
//etc/cmd/rdesktop.global: 1: Syntax error: Unterminated quoted string Код:
CMD_GLOBAL="rdesktop -k $KEYBOARD_MAP -f" CMD_GLOBAL="xmodmap -e 'keysym Alt_L = Alt_L'" Вариант с комадой из второй консоли тоже не сработал: Код:
-sh: xmodmap: not found |
|
Отправлено: 20:31, 01-07-2005 | | #26 | |
|
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать Собственно, я думаю проще перекомпилить саму раскладку, чем пытаться что-то править командами.
Мы выяснили, что проблемма заключается в раскладке X-сервера. Раскладка находится в \packages\keymaps-en_us\x-common\lib\kmaps\xkb\en_us.xkm (соответственно для каждой локали) Формат *.xkm - это раскладка, скомпилированная с помощью xkbcomp Дело за малым: нужно взять раскладку xkb, найти строки, типа Код:
keycode 0x40 = Alt_L Meta_L keysym Alt_L = Meta_L Код:
keycode 0x40 = Alt_L Alt_L keysym Alt_L = Alt_L Кажись, должно сработать. Так же я заметил попытки забороть эту проблемму в файле \packages\keymaps-en_us\rdesktop\lib\kmaps\keymaps\modifiers: Код:
Shift_R 0x36 Shift_L 0x2a Alt_R 0xb8 Mode_switch 0xb8 ISO_Level3_Shift 0xb8 Alt_L 0x38 Control_R 0x9d Control_L 0x1d # Translate Meta, Super and Hyper to Windows keys. # This is hardcoded. See documentation for details. # Translate Menu to the Windows Application key. # This one does not work either. Menu 0xdd |
|
Отправлено: 20:51, 01-07-2005 | | #27 | |
|
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать Господа....
Можете пожать мою мужественную руку.. Я сам до сих пор в эйфории.. но это оправдано: сырость побеждена! Проблемма залипающего Alt в Thinstation решена мною только что! Делаем следующие манипуляции: 1. Берём бинарник раскладки клавиатуры X-сервера из дистрибутива Thinstation, например \packages\keymaps-en_us\x-common\lib\kmaps\xkb\en_us.xkm 2. С помощью утилиты xkbcomp конвертируем его в текстовый формат: Код:
xkbcomp -xkb en_us.xkm Код:
key <LALT> { [ Alt_L, Meta_L ] };
Получаем строку Код:
key <LALT> { [ Alt_L ] };
Код:
xkbcomp -xkm en_us.xkb 5. Компилим Thinstation и юзаем терминал без гиммороя. Фсё |
|
Последний раз редактировалось Barvinok, 07-07-2005 в 17:48. Отправлено: 15:47, 07-07-2005 | | #28 | |
|
Пользователь Сообщения: 53
|
Профиль | Отправить PM | Цитировать Пожалуй, напишу в FAQ на SourceForge...
А то не только в России люди мучаются. Нужно будет полечить ещё следющие баги: при нажатом CapsLock буквы <ю б ь х> и возможно ещё какие-то печатаются строчными (с Shift нормально) При компиляции с русской раскладкой не работает <. ?> (русская точка-английский вопрос). Буду разбираться. |
|
Последний раз редактировалось Barvinok, 07-07-2005 в 15:56. Причина: Добавление Отправлено: 15:49, 07-07-2005 | | #29 | |
|
info man howto Сообщения: 7,884
|
Профиль | Сайт | Отправить PM | Цитировать Barvinok
Удачи !!! ![]() |
|
------- Отправлено: 13:10, 02-08-2005 | | #30 | |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
|