$XLat: автопереключение клавиатуры (ракладок >2)

Хотите говорить о Far и не знаете, куда обратиться?
Post Reply
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

$XLat: автопереключение клавиатуры (ракладок >2)

Post by Maximus5 »

Win7 x64/x86, Far2 x64/x86 b1105
Раскладка США, ошибочно вводится текст, зовем XLat.
Текст конвертится в русский, но ошибочно выставляется
раскладка 'США по Двораку' вместо 'RU'

Установлены раскладки клавиатур: США, США по Двораку, Русская

PS. С русского на сша - нормально.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: При XLat клавиатура не переключается на русский

Post by DrKnS »

США, США по Двораку, Русская
Ну, если посмотреть в код:
xlat.cpp wrote:PostMessage(hFarWnd,WM_INPUTLANGCHANGEREQUEST, INPUTLANGCHANGE_FORWARD, 0);
Так что - ничего удивительного. Рассчитано на En+Ru.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: При XLat клавиатура не переключается на русский

Post by Skirda »

Вставлю свои 5 копеек :D
На сколько мне известно, связка WM_INPUTLANGCHANGEREQUEST+INPUTLANGCHANGE_FORWARD это пока единственный способ заставить консоль переключить раскладку (т.е. пустить ее по кругу, циклически).
Если кто-то что-то знает больше - Wелкам!
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10803
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 219 times
Been thanked: 357 times

Re: При XLat клавиатура не переключается на русский

Post by HaRT »

Skirda wrote:Если кто-то что-то знает больше
А как же тогда плагин Something выставляет выбранную раскладку?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: При XLat клавиатура не переключается на русский

Post by Skirda »

код покажи
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 10803
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 219 times
Been thanked: 357 times

Re: При XLat клавиатура не переключается на русский

Post by HaRT »

Skirda wrote:код покажи
zg в своё время выложил тут: http://plugring.farmanager.com/downld/f ... _1_0_2.zip
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: При XLat клавиатура не переключается на русский

Post by Skirda »

HaRT wrote:А как же тогда плагин Something выставляет выбранную раскладку?
Something то выставляется, но вот суть XLat`а несколько иная - конвертнуть "туда-сюда", а переключалка - хмм... ее и отключить можно :-)
В принципе можно добавить параметр в Qwerty.reg, что-то типа "Layout"="HKL, перечисленные через ';'"... т.е. xlat будет "крутиться" только в пределах перечисленных в Layout значениях.
Если есть у кого желание - отправляйте на мантис такую хотелку. :twisted:
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: При XLat клавиатура не переключается на русский

Post by Тигрёнок »

А у меня та же проблема, но только раскладки стоят обычная английская и русская машинопись.
Изменение текста под Far2 (build 1437) происходит, а вот изменение раскладки - нет.
Однако на той же системе под Far 1.75 (build 2616) всё работает. То есть, это проблема FAR, а не установленных раскладок.
Съешь мыша – стань настоящим клавишником!
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: При XLat клавиатура не переключается на русский

Post by zg »

Тигрёнок wrote:Изменение текста под Far2 (build 1437) происходит, а вот изменение раскладки - нет.
чему равно HKEY_CURRENT_USER\Software\Far2\XLat\Flags?
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: При XLat клавиатура не переключается на русский

Post by Тигрёнок »

zg wrote:чему равно HKEY_CURRENT_USER\Software\Far2\XLat\Flags?
Я пробовал и изначально вбитое в файл Qwerty.reg "Flags"=dword:00000005 (уж не знаю, что там значит поднятый второй бит - не документировано нигде), и "Flags"=dword:00000001 (так было в Far 1.75). Эффекта нет. И даже "Flags"=dword:00000003 попробовал. Звук есть, а переключения раскладки всё равно нет.
Съешь мыша – стань настоящим клавишником!
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: При XLat клавиатура не переключается на русский

Post by Skirda »

а вот такое есть (и чему равно): HKEY_CURRENT_USER\Software\Far2\XLat\Layouts?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: При XLat клавиатура не переключается на русский

Post by Тигрёнок »

Skirda wrote:а вот такое есть (и чему равно): HKEY_CURRENT_USER\Software\Far2\XLat\Layouts?
Я пробовал следующие варианты:
"Layouts"="04090409;04190419"
"Layouts"="0409;0419"
"Layouts"="0409;00010419"
Последнее число я нарыл тралением реестра. Фикегознает что оно значит.
Съешь мыша – стань настоящим клавишником!
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: При XLat клавиатура не переключается на русский

Post by Тигрёнок »

Уточнение.
1) Не работает только если используемая раскладка - русская машинопись (с майкрософтовской-то работает - только кто ж её юзает?)
2) Не работает только переключение на русский с английского, а в обратную сторону - срабатывает.
Т.е. дело именно в том, что FAR вычитывает из HKEY_CURRENT_USER\Software\Far2\XLat\Layouts.
Однако я ума не приложу, чего бы ему туда хорошего написать...

P.S. А как же 1.75 без этого ключа обходится?
Съешь мыша – стань настоящим клавишником!
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: При XLat клавиатура не переключается на русский

Post by Skirda »

Тигрёнок wrote:Т.е. дело именно в том, что FAR вычитывает из HKEY_CURRENT_USER\Software\Far2\XLat\Layouts.
Однако я ума не приложу, чего бы ему туда хорошего написать...
changelog:

Code: Select all

svs 28.09.2009 20:59:21 +0300 - build 1149

1. Mantis#0001070: XLat: переключение раскладки клавиатуры при наличии в системе более 2 раскладок 
   Добавлен [HKEY_CURRENT_USER\Software\Far2\XLat]"Layouts" - строка, перечисляющая через ';' HKL раскладок, которые нужно "крутить"
   Например, "Layouts"="04090409;04190419" (или "Layouts"="0409;0419")
   Если указано меньше двух, то механизм "отключается" и раскладки крутятся как и раньше.
   Far для "Layouts" считывает первые 10 значений, остальные, если есть, игнорируются (думаю - за глаза хватит :-).
Тигрёнок wrote:P.S. А как же 1.75 без этого ключа обходится?
Алгоритм другой
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: При XLat клавиатура не переключается на русский

Post by Тигрёнок »

Убил злобный "Layouts" - всё заработало.
Мерси!

P.S. Но вообще говоря, про это хорошо бы в Qwerty.reg написать в комментариях. Или по умолчанию закомментировать "Layouts". Ведь фиг догадаешься...
Съешь мыша – стань настоящим клавишником!
Post Reply

Return to “Обсуждение Far Manager”