Aegel5 / SimpleSwitcher

Text Typing Assistant
GNU General Public License v3.0
107 stars 8 forks source link

Ошибка в блокноте Windows 11 при смене раскладки Shift+Shift #53

Closed hsb5 closed 8 months ago

hsb5 commented 10 months ago

Windows 11, самое свежее обновление от 10.01.2024 года принесло неожиданные проблемы. У меня настроена смена раскладки через Shift+Shift в вашей программе и до сегодняшнего дня всё было отлично! Но теперь при работе в блокноте, если нажать Shit+Shift выравнивание текста неожиданно начинает происходить по правому краю!!! как у арабов))) И вернуть это можно только закрытием блокнота и переоткрытием файла. Разумеется работать в блокноте стало невозможно (((( Причём таких проблем в других текстовых редакторах на компе с windows 11 я не наблюдаю. А также нет таких проблем на компе с windows 10, хотя она вчера тоже получила аналогичное глобальное обновление. Что-то в 11-ой винде в новом блокноте начудили... Можете учесть это в вашей программе, чтобы она срабатывала корректно? Очень на вас надеюсь, т.к. больше нет переключателей языков, позволяющих менять раскладку через Shit+Shift Скрин как это забавно выглядит приложил. Снимок экрана 2024-01-10 162716

гугл транслейт: Windows 11, the latest update dated January 10, 2024, brought unexpected problems. I have configured to change the layout via Shift+Shift in your program and until today everything was fine! But now, when working in a notepad, if you press Shit+Shift, the text alignment suddenly starts to occur to the right!!! like the Arabs))) And this can only be returned by closing notepad and re-opening the file. Of course, it became impossible to work in notepad (((( Moreover, I do not observe such problems in other text editors on a computer with Windows 11. And there are no such problems on a computer with Windows 10, although it also received a similar global update yesterday. Something strange happened in Windows 11 in the new notepad... Can you take this into account in your program so that it works correctly? I really hope for you, because... There are no longer language switches that allow you to change the layout via Shit+Shift I have attached a screenshot of how funny it looks.

Aegel5 commented 10 months ago

Здравствуйте. А если нажать Shift+Shift без SS, будет ли такой эффект?

hsb5 commented 10 months ago

Если отключить Simple Swither, то разумеется проблема исчезает. Но я бы хотел пользоваться этим переключателем )))) Он единственный, что мне подходит )

Aegel5 commented 10 months ago

У меня не повторяется ошибка - попробовал на windows 11 Shift+Shift - все работает хорошо. Такое ощущение, что у вас в системе появился язык, который пишется справа налево и он почему то активируется. Нет лишних языков в системе?

hsb5 commented 10 months ago

Не рассказал важный момент: подключение к Windows 11 через штатный RDP клиент. Тогда ошибка воспроизведётся. (при подключении через rdp к windows 10 ошибки нет)

Aegel5 commented 10 months ago

SS стоит на удаленной ОС или на той, откуда подключаетесь?

hsb5 commented 10 months ago

Конечно же и там и там. Но очевидно, что фактически работает именно тот SimpleSwitcher, который установлен на удалённом компе. И всегда всё работало стабильно. Сломалось именно после самого последнего обновления 11-ой винды. Установленный локально SimpleSwitcher никогда не умел переключать раскладки на удалённых компах, да и другие аналогичные программы так не умеют насколько я знаю.

hsb5 commented 10 months ago

и сломалось только и исключительно в блокноте 11-ой винды, в остальных программах 11-ой винды к которой я подключаюсь по RDP такой ошибки не наблюдается

Aegel5 commented 10 months ago

Установленный локально SimpleSwitcher никогда не умел переключать раскладки на удалённых компах

SS умеет так делать с включенной опцией Allow Remote Keys. Как вариант можно добавить клиент rdp в exception (на лок SS) и пользоваться этим механизмом (на удаленном SS)

А если нужно, чтобы исправлял именно SS откуда подключаетесь, то тут уже сложнее. rdp может накладывать свои ограничения и нужно разбираться во всем этом. Как минимум проверьте, что языки на обоих компах полностью совпадают, так как rdp использует именно локальную раскладку, насколько я помню. Так же проверьте, что нет скрытых языков (на обоих компах) - это частая проблема и похоже она у вас и вылезла. Что-то типа этого: https://www.outsidethebox.ms/19024/

Aegel5 commented 10 months ago

Я подумал, что "Allow Remote Keys" более предпочтительный способ. Попробуйте его, так как я собираюсь сделать его по умолчанию в след версии.

hsb5 commented 10 months ago
  1. Изначально сильно сомневался, что у меня откуда-то внезапно сам взялся арабский )))) Но всё же проверил и никаких "сторонних и дополнительных" языков кроме русского и английского (US) не обнаружил. Да и изначально это было меловероятно, т.к. проблема наблюдается не во всей системе - а только в одном единственном конкретном приложении "Новый блокнот".
  2. "добавить клиент rdp в exception (на лок SS)" - вообще ничего не понял. Никаких настроек добавления RDP и других программ в исключения внутри simple Switcher не нашёл.
  3. " "Allow Remote Keys" более предпочтительный способ. Попробуйте его, т.к. я собираюсь сделать его по умолчанию в след версии" - Но как его заставить работать? Пробовал включать прогу а) только на удалённом компе, б) только на локальном компе - и там и там переключение раскладки не срабатывает на удалённом компе. Работает только если программа запущена и на локальном и на удалённом компе. Указанную вами настройку "Allow Remote Keys" разумеется везде включал.

Итого: включение параметра "Allow Remote Keys" вообще никак не отразилось на удалённом компьютере. Программа не умеет переключать раскладки на удалённых компьютерах... или этот функционал сломан в текущей версии программы или я не догоняю как его включить (((

А может мы вообще не там копаем? У вас новый блокнот обновлён до версии от 12 января 2024 года? Новый - это тот, что через их майкрософт стор распространяется. Он теперь в 11-ой винде является блокнотом по умолчанию, а старый системный они в ближайшем будущем хотят полностью вырезать и новым заменить.

Aegel5 commented 10 months ago

Да, действительно, для rdp не требуется "Allow Remote Keys" а также не требуется добавление в exception - все работает "из коробки". Также локальная программа через rdp не может переключать удаленные раскладки (в других клиентах могла). Касательно вашей ошибки: нет идей, отчего такое случается. Как я уже сказал, есть подозрение на "левый" язык. Попробуйте в Power Shell на удаленном компе ввести команду "Get-WinUserLanguageList" - что она выдаст? Еще можно попробовать повторить с включенным debug логирование (желательно на последней только что сбилжен версии), но сомневаюсь, что там будет что-то полезное.

В качестве временного хот-фикса могу посоветовать использовать например notepad++, хотя понимаю, что это не выход.

Aegel5 commented 10 months ago

А может мы вообще не там копаем? У вас новый блокнот обновлён до версии от 12 января 2024 года? Новый - это тот, что через их майкрософт стор распространяется. Он теперь в 11-ой винде является блокнотом по умолчанию, а старый системный они в ближайшем будущем хотят полностью вырезать и новым заменить.

Я просто ввожу "блокнот" в строке поиска и запускаю. Это тот блокнот? Версия: 11.2112.32.0

hsb5 commented 10 months ago

Я просто ввожу "блокнот" в строке поиска и запускаю. Это тот блокнот? Версия: 11.2112.32.0

В целом да, хотя тут всё несколько сложнее. По факту из поиска вы запускаете старый, но винда через алиас переопределяет этот вызов на "новый блокнот". Но ладно, не заморачивайтесь с этим. Вы верный блокнот по факту открыли, но как и ожидалось - у вас просто старая версия. Обновитесь до новой и я почти уверен на 100% что проблема у вас тут же воспроизведётся. Потому что на вашей версии "нового блокнота" у меня всё тоже работало корректно. Нужна версия: 11.2311.35.0

Как обновить Новый блокнот в Windows 11: Пуск - Поиск - Microsost store - откроется приложение майкрософтовского магазина. В левом нижнем углу кнопка "Библиотека" - далее в правом верхнем углу выбрать "Проверить обновления", а затем нажать появившуюся рядом кнопку "Обновить всё". После этого, думаю, проблема легко воспроизведётся. Скорее всего она будет и локально, даже без RDP Снимок экрана 2024-01-16 005224 Снимок экрана 2024-01-16 005130

Aegel5 commented 10 months ago

Действительно - все воспроизводится и без rdp. Просто чудеса) Исправление тоже работает криво.

Aegel5 commented 10 months ago

Я потестил, даже без SS, если просто рандомно начать нажимать левый и правый Shift, а также левый Control, например, то внезапно становится правое выравнивание или наоборот левое. В общем, тут сложно пока понять, что исправлять. Видимо, этот блокнот перезагружается сообщениями и начинает вести себя неадекватно. Хорошо бы дождаться фикса от MS для начала.

hsb5 commented 10 months ago

То что воспроизвелось уже хорошо) я рад) я попробую погуглить, вдруг найду этот баг и он уже где-то в майкрософте зареген.... Раз это сходу поправить нельзя, попробуем сначала подождать, вдруг майкрософт поправит. Ну и я погуглю.

hsb5 commented 10 months ago

Сам не верю, но я нагуглил )))) теперь в новом блокноте горячие клавиши Ctl+правый Shift меняют то с какого края будет выравниваться текст: с левого на правый. Даже пока не понятно, баг это или фича ))) Ну а Simple Switcher видимо как-то задействует этот же функционал (или виндовс апи) и приводит к тому же результату. https://answers.microsoft.com/en-us/windows/forum/all/how-to-disable-shift-ctrl-shortcut-in-notepad-to/b1e38630-3f26-4046-9f56-3fabe0123c15

Если что ещё найду или будет мысли, то буду держать в курсе )

Aegel5 commented 10 months ago

Вот оно что. Я пытался найти закономерность и не нашел. А тут выходит, что Ctrl + Shift крест накрест стабильно это меняют. Но прикол в том, что нажимать рандомно шифты можно и с Alt и тоже будет меняться эта хрень.

Aegel5 commented 10 months ago

Из идей как это можно исправить со стороны SS: возможно сможет помочь механизм "consume keys" (не отдавать keys задетекченных хоткеев), который я уже давно хочу добавить. Но нужно будет пробовать.

hsb5 commented 10 months ago

Хорошо) буду ждать)

Aegel5 commented 9 months ago

Добавил небольшой fix в версию 5.222 - можно пробовать.

hsb5 commented 9 months ago

Помогло!!! Волшебство!!!!