[Comm] Re: Terminal Server - 1C

Max A Mazin =?iso-8859-1?q?=5F=5FMah=5F=5F_=CE=C1_mail=2Eru?=
Пт Янв 21 15:49:40 MSK 2005


В сообщении от 21 Январь 2005 13:15 Michael Shigorin написал(a):
> On Fri, Jan 21, 2005 at 11:36:04AM +0300, Max A Mazin wrote:
> > > Максим, может, набросаете вопрос/ответ для faq по rdesktop?
> >
> > Я себе плохо представляю, как это запихать в формат FAQ. В
> > принципе там не FAQ, а именно "правила". Постараюсь, даже
> > сегодня. Кину сюда (?).
>
> Вопрос: как пользоваться rdesktop?  Что делать с <...>?
> Ответ: см. документацию, сайт, а также ниже; проблема с
> ракладками вызвана <...>, решение (объезд) -- <...>.

В том-то и дело, что я не знаю, чем вызвана эта проблема.

> PS: <...> -- это "я не знаю", а не "опущено цензурой". :)

Вот то, что родилось (можно дополнять и исправлять и применять в качестве 
документации, если это поможет):

На данный момент (2005-01-21) в rdesktop есть неприятная ошибка,
приводящая к неправильному реагированию на нажимаемые клавиши. По
крайней мере это замечено при наличии нескольких раскладок клавиатуры, в
том числе и русской.

Проявляется ошибка при вводе (в основном) небуквенных символов. Вместо
ожидаемого результата можно увидеть совсем другой. Например при вводе
";" нажатием <Shift>+4 в русской раскладке можно увидеть символ "ж".

Такое поведение не зависит от совпадения или не совпадения раскладок в
терминальной сессии Windows и в Linux, а также от совпадения или не
совпадения способов переключения раскладок в этих ОС.

Анализируя поведение rdesktop можно придти к выводу, что у него где-то
внутри переключаются "режимы" ввода и таких режимов два. Причем в каждом
из режимов раскладка правильная только для одного из языков. Вот
примерная таблица, описывающая реакцию на нажатие кнопок:

Кнопки       | 1*| 2 | 3*| 4 | 5*| 6*| 7 | 8*| ;*| '*| ,*| .*| / | \ |
----------------------------------------------------------------------
режим 1 en   | ! | @ | # | $ | % | ^ | & | * | : | " | < | > | , | / |
режим 2 en   | ! | " | # | ; | % | : | ? | * | : | " | < | > | ? | | |
правильно en | ! | @ | # | $ | % | ^ | & | * | : | " | < | > | ? | | |
----------------------------------------------------------------------
режим 1 ru   | ! | Э | ? | ж | % | Ж | , | * | Ж | Э | Б | Ю | б | . |
режим 2 ru   | ! | " | ? | ; | % | : | ? | * | Ж | Э | Б | Ю | , | / |
правильно ru | ! | " | ? | ; | % | : | ? | * | Ж | Э | Б | Ю | , | / |

Как видно, реакция на некоторые кнопки адекватна всегда, но есть случаи,
когда это не так. Остаются вопросы, почему это происходит и как эти
режимы переключать. На первый вопрос у меня ответа нет, но на второй
вопрос можно попытаться дать ответ.

Замечено, что нажатие <Ctrl>+<Shift> и <Shift>+<Ctrl> ведет себя по
разному (например <Ctrl>+<Shift>+"Влево" перемещает курсор на слово
назад, а <Shift>+<Ctrl>+"Влево" выделяет предыдущее слово, как и
должно), при этом при нажатии <Shift>+<Ctrl>+<any key> меняет
вышеуказанный режим (если раскладка клавиатуры производится комбинацией
клавиш <Ctrl>+<Shift>, раскладка не меняется). Вот комбинация
<Shift>+<Ctrl>+<any key> и является "сменщиком" режима.

FAQ

Q. Почему при вводе некоторых символов я получаю не тот символ, которого
ожидал?
A. У rdesktop'а есть два "режима" реагирования на вводимые символы,
которые не совпадают с ожидаемой раскладкой (не спрашивайте меня
"почему?").

Q. Как мне переключить "режим"?
A. Нажать <Shift>+<Ctrl>+<any key>. Замечание: <Shift> должен нажиматься
первым.

Q. Какие символы выводятся в зависимости от режима?
A. Есть примерная таблица соответствия, которая может быть не полной:
Кнопки       | 1*| 2 | 3*| 4 | 5*| 6*| 7 | 8*| ;*| '*| ,*| .*| / | \ |
----------------------------------------------------------------------
режим 1 en   | ! | @ | # | $ | % | ^ | & | * | : | " | < | > | , | / |
режим 2 en   | ! | " | # | ; | % | : | ? | * | : | " | < | > | ? | | |
правильно en | ! | @ | # | $ | % | ^ | & | * | : | " | < | > | ? | | |
----------------------------------------------------------------------
режим 1 ru   | ! | Э | ? | ж | % | Ж | , | * | Ж | Э | Б | Ю | б | . |
режим 2 ru   | ! | " | ? | ; | % | : | ? | * | Ж | Э | Б | Ю | , | / |
правильно ru | ! | " | ? | ; | % | : | ? | * | Ж | Э | Б | Ю | , | / |

Кнопки, помеченные "*" работают верно в любом из режимов.
-- 
Max A Mazin                                            (__Mah__ на mail.ru)


Подробная информация о списке рассылки community