Комментарии 54
Да, в виндах без AutoHotkey вообще никак. Раскладку тоже меню по CapsLock, есть варианты более суровые, через WinAPI, но остановился на самом простом:
$Capslock::Send {alt down}{shift down}{shift up}{alt up}
+Capslock::Capslock
Возможно, в японской раскладке или системе ввода IME есть более продвинутые средства ввода, которые это позволяют.
Если скан-кодов вообще нет, значит, клавиатура ничего не шлёт по нажатию этих кнопок.
Не подскажете программу, которая может слушать то, что посылается в клавиатуру?(USB)
Не подскажете программу, которая может слушать то, что посылается в клавиатуру?(USB)
Wireshark в том числе и с USB работает.
По поводу ревесить, может быть так, что скрипты пишутся в память клавиатуры, и по нажатию отдаётся запрограммированный поток сканкодов. Т.е. сама по себе кнопка не шлёт вообще ничего. У меня в Aivia Osmium именно так. Был G-Unit, но было это давно и разбирался с этой клавиатурой недолго, поэтому точнее не подскажу.
Например, я себе повесил на ненужный Scroll Lock клавишу Mute, очень удобно.
Подробнее можно прочитать здесь:
http://www.howtogeek.com/howto/windows-vista/disable-caps-lock-key-in-windows-vista/
https://geektimes.ru/post/75290/
Соответственно орфография и грамматика будет соответствующая.
Для переключения по Caps Lock использую Punto Switcher, но бывает иногда (раз в 2 недели) такой баг, что включается режим больших букв и в такой момент всё можно поправить. Зайти в меню punto switcher, выключить переключение по Caps Lock, нажать Caps Lock и вернуть как было.
Хочется ваш способ попробовать, но боюсь, что иногда будет вылезать такой же баг с большими буквами и тогда придется делать выход из системы или еще что-то магическое
— В режиме EN, дополнительное переключение осуществляется по CAPS Lock, но как в таком случае, включить постоянный CAPS Lock в этой раскладке?
— В режиме EN нет отображения режима раскладки, это так и должно быть? Хотя, я понимаю, что, по сути, он ведь не меняется при переключении CAPS Lock-ом.
— Ну и самое главное, в FAR manager действия, назначенные по Alt+F7 (поиск файла, но на самом деле, там масса хоткеев, завязанных в частности на комбинациях с alt) например, теперь доступны исключительно только по Left-Alt комбинациям (это понятно, почему), хотя в США (НЕ международной) раскладке это можно было делать c любым ALT. Я так понял, что США раскладке не делается различий между ними (т.е. нажатие на любой ALT расценивается как LEFT ALT). Но я привык работать в ФАР с правым ALT и США-раскладкой: (
И в этом варианте данные модификации сразу падают в ценности.
Вопрос — что нужно поменять в asm-файлах? Ну или, если нельзя сделать «слияние» alt как в США-раскладке, то можно ли просто «поменять» левый и правый ALT, что для это нужно изменить в исходнике?
2. Индикатором выступает лампочка, а ОС и программы думают, что раскладка никогда не меняется.
3. Если в раскладке присутствует ряд AltGr, то соотвественно, правый Alt им и становится. В обычных раскладках такого ряда нет.
Хорошая мысль! Только что поменял Alt'ы местами и в Far'е работает RAlt+F7. Просто замените VK_LMENU на VK_RMENU и наоборот. Можно оба сделать VK_LMENU.
Немного корявый install.bat — если инсталлировать несколько раскладок — то приходится править внутри SET id= и дополнительно константу 00do, которая является параметром реестра «Layout Id». Последний одинаковый параметр у нескольких раскладок не даёт их выбора из трея, видимо ctfmon просто теряется в дублях. Но это мелочи.
Ещё не совсем ясно назначение параметра реестра «Layout text» — в какой ситуации это будет отображаться (US+)?
Это будет более чистым решением, чем менять Alt'ы местами.
Заметил ещё пару вещей:
— При совместной работе с русской (стандартной) раскладкой punto switcher не хочет делать авто-переключение, если русский текст набирался латинницей, т.е. буквально набираем текст «ghj» — ps переключает язык и текст превращается в «про».
Если у нас альтернативная и Русская раскладки — ничего не происходит. Вероятно, ps не признает текущую (USA-undead) раскладку за нерусскую и не переключается. Казалось бы, мелочь, у меня в ps и так автопереключение выключено, но включено принудительное переключение по Break, когда набираешь текст, видишь, что не то, жмешь Break — ситуация исправляется, удобно. Однако и это тоже не работает.
— Далее уже багофича:
— PhotoShop CS при наборе текста (при редактировании изображения) вводит только латинницу, при переключении вместо кириллицы вводятся знаки вопроса.
— PMView в диалогах сохранения изображений аналогичная ситуация, (в том же фотошопе, в диалогах сохранения/открытия, однако, нет такой проблемы)
— Тем не менее, в очень древнем Cool95 такой проблемы нет. Естественно, все перечисленные программы — 32-битные.
Я компилировал и инсталлировал два варианта dll — c WOW64 = 0 и WOW64 = 1, копировал их в system32 и sysWOW64.
— Ну и, чтобы два раза не вставать, вот что я решил по индикатору:
Перепробовал несколько программок, и остановился на программе KeyboardLEDs © KARPOLAN, в ней есть режим отображения состояния CAPS Lock (и не только) иконкой и/или OSD текстом.
Всё бы ничего, но OSD текст вещает исключительно то, что есть — именно «Caps Lock ON/OFF», в связи с чем проделаны небольшие изменения в exe, чтобы вместо выводился текст «RUS/LAT», не знаю, является ли это нарушением, но если кому то интересно, могут пользоваться совершенно свободно: https://drive.google.com/open?id=0B0jPU_spS-c3bExwcTZOOTRscU0
В архиве оригинальный пак с программой, в подпапке \kbdasm — изменённый exe и инфо по ручному патчу, пара картинок с демонстрацией.
В Photoshop CS3 (32-bit) на одном из компьютеров у меня кириллица вводится. Гибридная раскладка зарегистрирована как русская (0419), единственная в системе. Windows 7 64-bit. Раскладку достаточно поставить только в system32.
Попробовал PMView (32-bit), тоже не поймал баг.
Обычно знаки вопроса вместо кириллицы возникают тогда, когда раскладка поставлена в английской локали (0409). Но вот Фотошоп у меня всё равно текст нормально пишет.
В win8.1x64 дизасмил оригинальный файл kbdru.dll потом скомпилировал его обратно без всяких правок и прописал под другим именем в реестр, при нажатии «выбрать метод ввода» языковая панель закрывается с небольшим подвисанием компа.
Только вот теперь firefox раскладки переключает по alt+tab, хотя в системе настроено по ctrl+tab.
Насчёт Firefox'а не уверен, что с ним делать, мне несколько раз приходилось его «уговаривать», так как он в раскладку лезет самостоятельно.
Есть мысль: Firefox у вас 32-битный на 64-битной Windows 8? Попробуйте сделать версию раскладки для WOW64 и поместить в C:\Windows\SysWOW64\
Проблема с сочетаниями AltGr + буква в том, что куча приложений использует такие сочетания, например, тот же фотошоп. В результате всё ломается.
В том же Фотошопе: если вводим текст, AltGr+W пишет нужный символ. Вне режима ввода это действует, как Ctrl+Alt+W (закрыть все окна). По-моему корректное поведение.
Не знаю, как вам, а мне не нравится, когда функция зависит от того, где находится курсор. И не все приложения аккурантно отличают, где находится фокус. Я уже не помню деталей. Помню только, что меня поведение раздражало достаточно, чтобы ограничиться в своих раскладках сочетаниями вроде AltGr+;, то есть без букв.
Перепробовал кучу вариантов, у всех один косяк, были места где они не работали. Либо консольные приложения либо меню пуск, а тут наконец-то работающие везде решение!
Спасибо большое!!!
Пойду делать себе индикацию, не очень удобно по стейту капса смотреть.
В виде флагов стран, как привыкли на Punto Switcher, ну и на почти голом Win32 API для легковесности. Автор (Ron Wilson) написал оригинальный индикатор с помощью WM_TIMER, я переделал на клавиатурный хук (так правильнее). Экзешник в репозитории добавлен, а то ставить Windows SDK, это все настраивать, компилировать, это так себе занятие.
После того как в Windows 11 сломали переключение языков по Ctrl+Shift (если быстро/одновременно нажимать - нестабильно работает, важен порядок, ппц, 20 лет нормально работало) - наконец дошли руки до этого.
Из дополнений - т.к. штатно и без костылей оставить 1 раскладку при 2 языках в системе похоже невозможно - установил 2 идентичных копии раскладки с разными именами и на Ru и на En.
Ассемблер/дизассемблер клавиатурных раскладок Windows с помощью flat assembler