Неправильная конвертация символа ñ (испанский->русский)
Mahou 2.9.0.1 d2f32d6 Конфигурация Mahou.ini.gz
Я использую следующую конфигурацию языков (чтобы по Alt-Tab переключать только две раскладки):
- русский
- английский
- раскладка США
- раскладка Испанская

Проблема состоит в том, что конвертация из раскладки США происходит верно, а из испанской нет
- (en) jkl; -> олдж
- (es) jklñ -> олдё
- (es) º -> \ (должно быть ё)
@Winand Это необычная проблема...
Коды клавиш у Испанской раскладки изменены(отличаются от русской и английской), и поэтому для Mahou это выглядит так как будто ты "реально нажимаешь другие клавиши", а не те что "изменены их коды". Т.е. когда нажимаешь ё в русской/английской раскладке её код - 192, а в испанской - 220. Из-за этого проблема, при вводе на испанской Mahou запоминает клавиши "как нажимались на испанской раскладке", с изменённым расположением, а потом при вводе этих же клавиш на русскую "они не подходят" т.к. они по другому расположены в русской.
Сейчас попробую что-то придумать...
@Winand Добавил в eb6a31e, теперь можно указывать отличия кодов клавиш(соответственно к обычным QWERTY, En-US/Русской и т.д.) для каждой раскладки через файл LayoutKeyCodeReplace.txt, см. wiki.
Для полноценной правильной работы замен в конвертациях последнего слова/линии/слов - LayoutKeyCodeReplace.txt достаточно с таким содержанием:
>1034
[221]=[187]
[192]=[186],[186]=[219],[219]=[189],[189]=[191],[191]=[220],[220]=[192]
<1034
Для конвертации выделенного текста нужен другой подход, т.к. там конвертация идёт по символам можно использовать Исправление для QWERTZ клавиатур и таким LayoutReplaces.txt будет для Русской/Испанской раскладок:
Ñ|Ж
Ж|Ñ
ñ|ж
ж|ñ
ª|Ё
Ё|ª
º|ё
ё|º
?|_
_|?
¿|+
+|¿
Ç|/
/|ç
-|'
'|-
¡|=
=|¡
ç|\
\|ç
+|ъ
ъ|+
`|х
х|`
*|Ъ
Ъ|*
подробнее см. Wiki
Хотя в этом режиме есть проблема с символами -,+,* т.к. они присутствует в обоих раскладках на разных местах и в этим местах коды клавиш отличаются, так что невозможно определить с какой раскладки он при конвертации выделения...
Также символ акцента ``` в испанской раскладке проблемный для конвертации выделения т.к. он не печатает "символа", а в русской "х" печатается так что при конвертации выделения нужно учитывать это и поставить какую-то правильную замену чтобы избежать потери символа "х" после второй конвертации этого выделенного текста.
Также можно настроить и автозамену для испанской(хотя для испанского даже словарей нет... пока есть только рус./англ.), но это посложнее... в основном из-за необычности замен клавиш, они в испанской раскладке заменены не A<=>Z, а A=>Z=>X=>C=>V=>A, т.е. цикл побольше чем просто 2 клавиши.
Да.. OEM клавиши у разных раскладок в разных местах находятся ES, US
Установил 9610fb8. Коды меняются только при переводе из испанской. А обратно? Сейчас так:
º → ё ⇝ ñ → ж ⇝ → х ⇝ ' → - ⇝ - → . ⇝ ç → \ ⇝ º

Может в моей конфигурации что-то иначе настроено?

Содержимое LayoutKeyCodeReplace.txt
>1034
[221]=[187]
[192]=[186],[186]=[219],[219]=[189],[189]=[191],[191]=[220],[220]=[192]
<1034
@Winand Ну не знаю... У меня похожим образом работает если вообще убрать испанскую раскладку из системы, но оставить в настройках Mahou.ini при включенном "Переключать между раскладками" и одной из раскладок Испанск.
Попробуй Включить "Переключать между раскладками" и поставь 2 раскладки в Испанскую и Русскую, применить и проверить.
Вот почти полностью со стандартными настройками даже работает, только включил Переключать между раскладками и раскладки 1 и 2 настроил на рус./исп. (хотя у меня он и так работает нормально):
bundle.zip
Да, теперь я понимаю. У меня такие настройки:

Но весь смысл в том, чтобы переключаться и между англ/рус и между исп/рус. В зависимости от того, какую из иностранных раскладок я выбрал последней. И для большей части клавиш mahou с этой задачей справляется:)
Но весь смысл в том, чтобы переключаться и между англ/рус и между исп/рус. В зависимости от того, какую из иностранных раскладок я выбрал последней.
Но Mahou види ВСЕ раскладки поэтому он будет переключать между всеми если эта галочка не включена, и у меня так тоже работает нормально, т.к. эти правила подмены кодов срабатывают когда раскладка меняется "НА" и "С" раскладки 1034, т.е. испанской.
Если эмулируется Alt+Shift, как я понимаю, переключение происходит так же как в Windows. У меня специально добавлен один иностранный язык с двумя раскладками, чтобы переключение происходило между русской и одной иностранной раскладкой (которую надо мышкой выбрать в языковой панели в системном трее или через хоткеи). Увы, в mahou выбирается жёстко только две раскладки, и я обхожу это через флажок эмуляции Alt-Shift.
Увы, в mahou выбирается жёстко только две раскладки, и я обхожу это через флажок эмуляции Alt-Shift.
Неплохой вариант. Можно также поставить 2 основные и добавить одно сочетание клавиш для смены 3-ю.