netch80: (Default)
[personal profile] netch80
Есть виндовый лаптоп с 10кой. Как это принято у производителей лаптопов, в центре правой части стандартный numpad. Регулярно возникает ситуация типа нажимаешь Shift+PgUp - получаешь 9. Клавиши стрелочного блока есть, кроме Insert (злобный хьюлетт не сделал её даже как Fn+Del, хотя что им стоило), но расположены неудобно и непривычно. Диверсанты однако.
Поставил вопрос: хочу устранить логику "при NumLock=off, Shift+клавиша даёт цифру" (включая точку для Del).

Смотрел на Keyboard Layout Creator от MS - numpad там вообще не задействован. Смотрю в утёкшие файлы конфигурации стандартных раскладок - там эта часть вообще не настраивается. Похоже, логика стандартизована где-то в общем коде, не зависящем от раскладки :(

Попытался подвеситься на WH_KEYBOARD_LL. И тут оказалось, что не всё просто. Home стрелочного блока и Home цифрового блока даёт одинаково 36 (VK_HOME) при numlock=off. Home цифрового блока даёт 103 (VK_NUMPAD7) при numlock=on. Во flags таки младший бит даёт различие между двумя клавишами. Итого вариант, который вроде работает (проверил вживую): если вижу одну из 10 клавиш (центральная 5 не в счёт) и flags&1==0, ставлю 1 в младший бит flags и передаю дальше. Похоже на правду.

В Linux реализация заняла несколько строчек в конфиге, а тут - извращаться. Но победил.

Попутный вопрос: почему эта центральная 5 - VK_CLEAR в Windows и KP_Begin в XFree86? Откуда это и что должно было значить?
(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 11:56 am
Powered by Dreamwidth Studios