Mahou: [Bug] Третья клавиатурная раскладка при конвертации линии

Created on 22 Jan 2017  ·  16Comments  ·  Source: BladeMight/Mahou

1. Summary

При запуске команды Convert line в taskbar появляется третья клавиатурная раскладка — ENG/US.

2. Expected behavior

Конвертация только между двумя клавиатурными раскладками — ENG и RU.

3. Actual behavior

Производится конвертация между тремя раскладками — ENG, RU и ENG/US.

4. Settings

Писал о них на Super User. Также. Вроде бы везде, где можно, убрал ENG/US.

Язык 1
Язык 2
Язык 3

5. Steps to reproduce

Набираю слово в ошибочной клавиатурной раскладке → запускаю хоткеем (F10, менял на явно неиспользуемый Ctrl+Shift+Alt+F10 — получил аналогичное поведение) команду Convert line → получаю актуальное поведение, не желаемое.

6. Environment

MAHOU DEBUG INFO

  • Mahou-v1.4.4.1
  • OS = [Microsoft Windows NT 6.2.9200.0]
  • x64 = [True]
  • .Net = [4.0.30319.42000]

    Mahou.ini:

!Unicode(✔), Mahou settings file
[Hotkeys]
HKCLKey=121
HKCLMods=Shift
HKCSKey=121
HKCSMods=Control
HKCLineKey=121
HKCLineMods=None
OnlyKeyLayoutSwicth=None
HKSymIgnKey=122
HKSymIgnMods=Shift + Control + Alt
HKConvertMore=122
HKConvertMoreMods=Shift + Control
[Locales]
locale1uId=1033
locale1Lang=English
locale2uId=1049
locale2Lang=Русский
LANGUAGE=EN
[Functions]
IconVisibility=True
CycleMode=True
EmulateLayoutSwitch=False
ELSType=0
CSSwitch=True
BlockCTRL=False
RePress=True
EatOneSpace=False
ReSelect=True
SymIgnModeEnabled=false
MoreTries=true
TriesCount=5
DisplayLang=false
DLRefreshRate=50
DLForeColor=#FFFFFF
DLBackColor=#000000
ExperimentalCSSwitch=false
Snippets=false
DTTOnChange=false
ScrollTip=false
UpdatesEnabled=true
Logging=true
[EnabledHotkeys]
HKCLEnabled=True
HKCSEnabled=True
HKCLineEnabled=True
HKSymIgnEnabled=true
[ExtCtrls]
UseExtCtrls=false
LCLocale=
LCLocaleName=
RCLocale=
RCLocaleName=
[Proxy]
ServerPort=
UserName=
Password=
[TTipUI]
Height=14
Width=24
Font=Georgia; 8pt
xpos=8
ypos=0
TransparentBack=false
[DoubleKey]
Use=false
Delay=350

Спасибо.

Bug New Feature Non Mahou Bug

All 16 comments

Вроде бы везде, где можно, убрал ENG/US

А еще есть:

  • Раскладка в Apply language settings to welcome screen, system accounts, new user accounts поменяйте ее на вашу кастомную раскладку.
  • Включите Let me set different input language for each app window

И перезагрузитесь/выйдете из системы, и проверьте как работает.

Отключив CycleMode(Циклич. режим) можно достигнуть переключения только по выбранным в настройках раскладках.

P.S. Баг появляется только в Convert line? И при ручной смене раскладки появляется 3-я?

И перезагрузитесь/выйдете из системы, и проверьте как работает.

Сделано:

1
2

Отключив CycleMode(Циклич. режим) можно достигнуть переключения только по выбранным в настройках раскладках.

Снял галочку с CycleMode → выбирал как верхний, так и нижний English (1033) → всё равно раскладка переключается на ENG/US.

ENG/US

P.S. Баг появляется только в Convert line? И при ручной смене раскладки появляется 3-я?

При выключенном Mahou ENG/US у меня никогда не появляется. При включённом появляется и при ручной смене раскладок.

Спасибо.

Странно, у них одиннаковый UID? Именно поэтому при запросе смены появляется оригинальная раскладка ENG/US, интересно есть ли способ их различать?

А можете сделать свою кастомную раскладку не из English US а из другого?

Взял за основу дефолтный Colemak и убрал оттуда все хоткеи с Ctrl+Alt, потому что я использую их для других целей. Вот мои раскладки:

Редактировал через Microsoft Keyboard Layout Creator → не нашёл и не нагуглил, где там изменять ID.

MCLC

Спасибо.

Странно, у меня прекрасно все работает, и 3-я не появляется.
2017-01-22 02-49-35-window
2017-01-22 02-49-44-window

Быть может все-таки что-то с раскладками?

P.S. Как же неудобно coleymak'ок писать после qwerty... 😆

@Kristinita У меня таки получилось воспроизвести ошибку, для ее исправления пойдите в настройки раскладок в параметрах, а дальше:

2017-02-02 11-15-56-window

И здесь удалите другие раскладки, чтобы осталась только желаемая(:

2017-02-02 11-16-00-window

До выше описанного в Mahou:

2017-02-02 11-26-46-window

После:

2017-02-02 11-15-01-window

не нашёл и не нагуглил, где там изменять ID.

Изменить ID раскладки не можно, т.к. это не совсем полонценная раскладка, а дополнение к раскладке на которой основана, здесь HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts можно поменять привязку к раскладке, найдите свою раскладку(должна быть в почти что в конце списка и должна заканчиваться на 409, т.к. за основу взят ENG/US), и папку переименуйте окончание на другой ID(HEX) например 419(Русская раскладка):

qq

Теперь эта раскладка будет появляться в выборе раскладок у русского языка:

2017-02-03 12-05-56-window

Но есть одно но, раскладка не будет переключаться по Alt+Shift а только по Win+Space(т.к. Alt+Shift меняет язык, а язык у обоих раскладок русский, поэтому ничего не меняется, а Win+Space меняет раскладку). В Mahou:
2017-02-03 12-07-17-window
Насчет различения раскладок в Mahou, я думаю добавить натуральные названия раскладок(а не языков, как сейчас), после чего их можно будет легко визуально различить.

@Kristinita Нашел способ различать раскладки!! Нужно не сокращать ID(HWND & 0xffff), а использовать оригинальный(HWND) и тогда все будет ОК. В новом релизе будет вот так:
2017-02-03 12-48-01-window

Готово: Mahou-v1.4.4.4.

Готово: Mahou-v1.4.4.4.

@Kristinita Ну а лучше последнюю версию(v1.4.4.9 на момент сообщения)

@BladeMight, спасибо! С этой проблемой вроде бы всё. Но привыкаю сейчас переключать раскладки левым Ctrl, и нередко получается, что хоткеи Ctrl+key непроизвольно нажимаются.

Хоткеи

Можно и как-нибудь уменьшить время переключения раскладки?

Наверное, лучшее решение — переключать посредством CapsLock, поскольку это не служебная клавиша, однако так удобно её вместо BackSpace использовать — CapsLock::BackSpace в AutoHotkey.

Спасибо.

Можно и как-нибудь уменьшить время переключения раскладки?

При переключении Ctrl _не удерживается_, удерживаете его Вы, так что уменьшите время отпуска клавиши. Я пробовал очень быстро двумя руками, указательными пальцами - все нормально работает.

@BladeMight , переключаю сейчас раскладки клавишей Caps_Lock. Т.к. она не служебная, проблемы вроде бы исчезли. Единственная проблема — раньше я применял скрипт CapsLock::BackSpace, теперь придётся опять тянуться мизинцем до клавиши Backspace. На какую клавишу функция Backspace настроена лично у Вас?

И опубликуйте ответ здесь, чтобы как минимум 25 баллов от меня получить.

Спасибо.

На какую клавишу функция Backspace настроена лично у Вас?

У меня она не на что не настроена, Я пользуюсь самим Backspace и нажимаю на него безымянным пальцем, т.к. он почти всегда на нем или на Enter или на клавишах что вокруг них.

Но если хотите ближе то наверное удобно будет поставить на кнопку правые Alt, Win или Apps(Menu), т.к. они ближе, и не так часто используются как левые. И еще плюс можно быстро нажимать Ctrl + Backspace который назначен на одну из них.

Тип: Дополнительная информация 📓

1. История

Использую Mahou неделю после длительного перерыва.

В первые дни появлялся этот баг. Решался просто — что-нибудь ввожу и вызываю Convert last line. Однако баг возникал столь часто, что намного легче было не использовать Mahou.

Далее попробовал это решение → как ни странно, помогло. 4 дня проблема вообще не появлялась.

Вчера перезагрузил Windows → сегодня проблема возникла снова. Снова проделал то, что рекомендовали на Super User → пока баг не проявляется; посмотрим, что будет дальше.

2. Программное обеспечение

  1. Windows 10.0.18363 Pro N for Workstations 64-bit EN
  2. Mahou 2.9.0.1
  3. Пользовательские клавиатурные раскладки на основе Colemak

Спасибо.

@Kristinita

Далее попробовал это решение

Можно побыстрее сделать на AHK гор. клавишу:

engLayout := 0x409 ; https://www.autoitscript.com/autoit3/docs/appendix/OSLangCodes.htm
#f7::
DllCall("User32.dll\UnloadKeyboardLayout", "UInt", engLayout)
return

ДеРегистрирует эту раскладку из системы, т.е. появилась английская раскладка, нажал Win+F7 - всё исчезла :)

Was this page helpful?
0 / 5 - 0 ratings