Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Проблемма с клавиатурой в Thinstation 2.1

Ответить
Настройки темы
Проблемма с клавиатурой в Thinstation 2.1

Новый участник


Сообщения: 48
Благодарности: 1

Профиль | Отправить PM | Цитировать


Сделал терминалы на базе Thinstation 2.1 rc1
Подключаюсь к серверу Win2003

при переключении языка ввода по левому Alt+Shift может возникать эффект залипания клавиши Alt. Нормально работает только при отчётливом алгоритме переключения, т.е.:
- нажимаем Alt
- нажимаем Shift
- отпускаем Shift
- отпускаем Alt

Так же может возникнуть эффект залипания левой клавиши <Win> (она же <Start> - слева от Alt).

Лечится нажатием залипшей клавиши.


Я выявил следующие закономерности:
эффект залипания наблюдается, если при компиляции образа включать package keymaps-en_us

если включать package keymaps-ru - вдобавок вообще перестаёт работать клавиша с русской точкой <.>

если НЕ включать вообще никакой пакет из раздела Keyboard layouts, эффекта залипания не происходит, но при этом отрубаются курсоры, NumPad и шесть кнопок над курсорами (Ins, Del, Home....etc)
Вероятно, для терминала пакеты раскладок не нужны - на сервер просто отправляется код клавиши? А раскладки нужны только для работы в режиме лёгкой станции (blackbox, icewm + FireFox)?
Из-зи чего тогда отрубается половина клавишь?

К сожалению, я только начинаю осваивать Linux.
Если знающие люди подскажут хотябы в каком направлении копать и что читать, думаю, с проблемой разберусь.
Отчёт напишу, разумеется

Отправлено: 03:10, 13-06-2005

 

Аватара для ruslandh

info man howto


Сообщения: 6958
Благодарности: 384

Профиль | Сайт | Отправить PM | Цитировать


Barvinok
Это-то как раз ясно
Истина скрывается в нюансах

-------
Поспешай не торопясь


Отправлено: 22:59, 21-06-2005 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Доброго времени суток. Сам столкнулся с такой проблемой (кстати, решение еще не найдено?), есть версия, что в rdesktop где-то прячется баг.

Поведение rdesktop:

При "правильном" переключении раскладки по альт-шифт:
1. Нажимаем альт. Генерируется событие (прерывание) "нажат альт"
2. Нажимаем шифт. Генерируется событие "нажат шифт"
3. Отпускаем шифт. Генерируется событие "отпущен шифт"
Здесь винда понимает, что нужно переключить раскладку. И переключает ее.
4. Отпускаем альт. Генерируется событие "отпущен альт"

При "неправильном" переключении альт-шифт происходит следующее:
1. Нажимаем альт. Событие "нажат альт"
2. Нажимаем шифт. Событие "нажат шифт"
3. Отпускаем альт. Что видим? Винда переключила раскладку,
как будто мы отпустили шифт. Возможно, здесь в rdesktop баг, и
он посылает сообщение "отпущен шифт"

4. Отпускаем шифт. Снова винда переключает раскладку, значит снова "отпустили шифт".

Замечаем, что после "неправильного" переключения раскладки у винды
остается ощущение, что клавиша альт все еще прижата (например, при нажатии "H" вываливается справка, как по Alt+H). Лечится повторным нажатием клавиши альт.

Проверил поведение штатного виндового десктоп-клиента. Оно адекватно: он в обоих случаях, при "правильном" и "неправильном" переключении, переключает раскладку один раз и не оставляет залипнутым альт.

Как это лечить, я пока не выяснил, буду колупать дальше (скорее всего, с использованием сниффера) и надеюсь на вашу поддержку

-------
С уважением, Figaro
http://romik.web.ur.ru


Отправлено: 18:29, 28-06-2005 | #22


Новый участник


Сообщения: 48
Благодарности: 1

Профиль | Отправить PM | Цитировать


Figaro
Чувак, ты вкуриваешь..
Но ты не обратил внимание на один нюанс: если не включать при компиляции НИКАКИХ раскладок клавиатуры, то залипания не происходит.
Значит проблемма кроется не в rdesktop, а в интерференции между rdesktop и раскладками (IMHO).

Если что накапаешь - пиши обязательно: этой проблеммой масса людей изводится!
Я, к сожалению, линукс только начал изучать. Что то путное смогу сказать не раньше, чем через пол-года.

Отправлено: 03:11, 29-06-2005 | #23

Drug_


Сообщения: n/a

Профиль | Цитировать


Забавно, дошел до туда же что и Barvinok, пытаюсь "заработать" стрелки и клавиши повыше или отключить залипание.

Отправлено: 12:24, 29-06-2005 | #24


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Сайт | Отправить 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"
4. Проверить, как замечательно работает rdesktop

Ясно, что каждого так делать не заставишь, поэтому 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"
Вот пока и все, что удалось найти

-------
С уважением, Figaro
http://romik.web.ur.ru


Отправлено: 18:31, 29-06-2005 | #25


Новый участник


Сообщения: 48
Благодарности: 1

Профиль | Отправить 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'"
Ошибку не выдаёт, но отказывается запускать rdesktop, сволочь

Вариант с комадой из второй консоли тоже не сработал:
Код: Выделить весь код
-sh: xmodmap: not found

Отправлено: 19:31, 01-07-2005 | #26


Новый участник


Сообщения: 48
Благодарности: 1

Профиль | Отправить 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
скомпилировать и положить в соответствующий каталог Thinstation.
Кажись, должно сработать.

Так же я заметил попытки забороть эту проблемму в файле \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
Но, поскольку трабла в Х-сервере, решить её с помощью rdesktop не удалось. Я так думаю!

Отправлено: 19:51, 01-07-2005 | #27


Новый участник


Сообщения: 48
Благодарности: 1

Профиль | Отправить 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
В полученном файле en_us.xkb ищем слово "Meta" - оно там встречается один раз в строке
Код: Выделить весь код
key <LALT> {         [           Alt_L,          Meta_L ] };
3. Удаляем нафиг Meta_L
Получаем строку
Код: Выделить весь код
key <LALT> {         [           Alt_L     ] };
4. Сохраняем изменения и компилим файл обратно в бинарник:
Код: Выделить весь код
xkbcomp -xkm en_us.xkb
и заменяем нашим бинарником исходный в дистре Thinstation.
5. Компилим Thinstation и юзаем терминал без гиммороя.
Фсё

Последний раз редактировалось Barvinok, 07-07-2005 в 16:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:47, 07-07-2005 | #28


Новый участник


Сообщения: 48
Благодарности: 1

Профиль | Отправить PM | Цитировать


Пожалуй, напишу в FAQ на SourceForge...
А то не только в России люди мучаются.

Нужно будет полечить ещё следющие баги:
при нажатом CapsLock буквы <ю б ь х> и возможно ещё какие-то печатаются строчными (с Shift нормально)

При компиляции с русской раскладкой не работает <. ?> (русская точка-английский вопрос).
Буду разбираться.

Последний раз редактировалось Barvinok, 07-07-2005 в 14:56. Причина: Добавление


Отправлено: 14:49, 07-07-2005 | #29


Аватара для ruslandh

info man howto


Сообщения: 6958
Благодарности: 384

Профиль | Сайт | Отправить PM | Цитировать


Barvinok
Удачи !!!

-------
Поспешай не торопясь


Отправлено: 12:10, 02-08-2005 | #30



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Проблемма с клавиатурой в Thinstation 2.1

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
thinstation и экран загрузки DadushkaElf Сетевые технологии 2 02-11-2008 11:53
Прочее - ThinStation: не подымается X sysZero Общий по Linux 2 22-04-2008 11:43
RDP/Citrix/Term - Thinstation почему-то не видит thinstation.conf.user mitiya Сетевые технологии 2 29-03-2008 01:49
Thinstation и Cirruss Logic Derik Общий по Linux 0 16-04-2007 13:37
Проблема с Thinstation. Отзовитесь кто пользует Skochmar Сетевые технологии 2 14-04-2006 16:30




 
Переход