Как стать автором
Обновить

Комментарии 81

По просьбе Для ленивых, добавил в UPD2 перенос кнопки для снятия Скриншотов на кнопку Windows.
Когда-то я писал программу Keyboard Maniac, она дает приятный интерфейс для настройки Keyboard Layout ключа (раздел «Раскладка клавиатуры»). За одно и скан коды можно узнать. Способ воистину для ленивых.
Если интересно поищите версию 4.28, она бесплатна.
именно об этой программе я и подумал когда читал статью :) уже года 2 пользуюсь. спасибо вам за нее!
К сожалению со sleep/wake такая шЮтка почему-то не проходит. Менял 63 E0 на 5F E0.
возможно в вашей клаве другой скан-код на эту кнопку.
Снимите свой скан указанной программой. и напишите итоги
«расскажу как без дополнительного установленного ПО»… «вы можете используя программу „KeyboardTest“ от разработчика»
Сам юзаю Keytouch для Logitech Wave в линуксе :)
Придирка не засчитана -) я написал "… а если у вас супер новая клавиатура с кнопками космического происхождения...". Так, как сейчас выходят множества модификаций разных клав, с новыми кнопками, скан-коды которых еще не известны, в таких случаях нужно ПО для определения этого скан-кода. Та что теоретических ПО мы для непосредственного Ремаппинга не используем.
А что делать, когда KeyboardTest не реагирует на то, что мне надо? Вот хочу кнопки громкости переназначить на «следующий/предыдущий трек». А прога не реагирует на их нажатия :(

P. S. А громкость этими кнопками регулируется без проблем.
Media Keys в таблице Scan Code
А может, в случае с громкостью клавиатура вообще не посылает никаких скан-кодов, а напрямую вызывает функции ОС через драйвер клавиатуры? Потому таким способом и не получится переназначить — только через драйвера.
Вообще, интересный подходв реализации ремаппинга был уличен мной как раз в дровишках логитека, правда, для мыши. Стандартными средствами SetPoint мало что можно было сделать, но, если покопатьсся в XML, можно переназначить что угодно куда угодно, даже можно назначить разные функции кнопок на разные программы. Возможно, для клавиатур у логитека тоже нечто похожее есть.
В точку! В ноутбучной проге, что автозагружается и разные Advanced HotKeys ловит отрубил «Advanced Volume» и скан-коды начали ловиться.

Вот только «BIOS Key code», который, как я понял, и нужен, выдаёт нули. «Windows Key code» тут никак не подойдёт?
Windows key code наверняка можно использовать, но надо найти чем. попробую найти значения
Вот это попробуйте, если вы с логитеком боритесь
Спасибо, удобная штука. Отобразила изменения, которые я до этого вручную внёс в реестр (кнопки громкости из приведённой выше таблицы), которые, кстати, ничего не изменили.

Выбрал «Type Key», он считал «00_100» для всех трёх кнопок управления громкостью: up, down и mute. Добавил, что не знает такой кнопки и предложил сходить на сайт за обновлениями.

Вот такая вот ерунда :)

P. S. Logitech Internet 350 Keyboard
ну блин, не обязательно считывать, там же есть кнопки Volume Up,Down,Mute пробуйте их.
их все равно обрабатывает подпрограмма в биос. а потом передает в ОС.
О! Спасибо, не знал, что можно так просто. Я тоже мучаюсь с тем, чтобы ctrl+shift слева нажимать, приходится немножко руку выворачивать :)
Боже, убей тех, кто ставит левый Fn заместо Ctrl
Fn к сожалению не переназначить…
а так бы можно их физически местами переставить если б программно все было как надо
О горе мне… я только этим и горел читая пост… :(
проблема в том, что обработка Fn дальше биоса не уходит. Так что вариант один, как мне кажется, патчить БИОС. Однажды мне сказали, что видели подобное решение, но сам я не встречал.
У меня Samsung Q320. Особенность местных клавиш Fn — они не работают без установки программы Magik Beyboard. То есть клавиши Fn судя по всему обрабатываются в этом буке программно. Только вот незадача — в программу зашиты стандартные комбинации клавиш и изменить их нельзя. А остальные программы не видят клавиши Fn.
програмно обрабатывается скан-код выдаваемый операционой системе сочетанием клавиш Fn+(другая-кнопка). Отдельно нажатие Fn не передаётся и отловить его врядли получится. Буду рад если окажется, что я ошибаюсь, но это маловероятно.
Кстати говоря, на моём ноутбуке (Toshiba) он же только и видит мультимедийные клавиши.

Mini how-to от меня:

1. В свой скрипт (можно в тот пример, что создаётся при первом запуске) добавляем строчку
#InstallKeybdHook

2. Открываем окно AHK (щёлкаем по иконке в трее) и жмём Ctrl+K.

3. Перед нами список событий клавиатуры. Новые добавляются вниз, обновление по F5.

Для Fn получили:
Virtual Key = 0xFF
Scan Code = 174 (0xAE)

Для Play/Pause:
Virtual Key = 0xFF
Scan Code = 177 (0xB1)

Для Stop:
Virtual Key = 0xFF
Scan Code = 112 (0x70)

Не знаю, кому это может быть интересно, но тем не менее:
Virtual Key 0xFF, согласно этому списку, означает мультимедийные клавиши.
Из Keyboard Scan Code Specification (онлайн), Appendix C: USB Keyboard/Keypad Page (0x07), видно, что SC 112 — это некий Keyboard F21, а SC 174 и SC 177 находятся в зарезервированной области.

Не пойму, зачем было использовать свои сканкоды для Play/Pause и Stop, когда для этого уже существуют отдельные Virtual key = 0xB3 и 0xB2.
Точнее, последняя фраза должна звучать так:
Не пойму, почему для Play/Pause и Stop (ну и Next, Prev тоже) нельзя было сразу назначить правильные Virtual Key Code.

В AHK это можно сделать так:

sc177::
Send {vkB3}
return

или так:

sc177::
Send {Media_Play_Pause}
return

Но если я не хочу держать перманентно запущенный AHK, этот вариант мне не подходит.
К сожалению с яблоклавой все еще сложнее, т.к. сканкодов вообще нет…
Хм, а у меня на msi wind u100 fn и ctrl меняются местами прошивкой биоса.
на моем Lenovo Y450 (Win 7) удалось при помощи нижеописанной SharpKeys сделать как НАДО :) моя счастлив, мне говорили, что это невозможно
Мне тоже говорили что обе \ имеют один код =) не верь никому пока не проверишь сам.
правда замечен один нехороший глюк — не работает сочетание Ctrl(то есть теперь Fn)+W
странно, мой новопереназначенный Шифт из топика, справляется с функциями Шифта полностью, то есть Шифт+все работает как нужно.
странно, но все работает, если сочетание нажимать быстро. если держать клавишу зажатой — не работает
у меня работает. но скорее всего что то перехватывает состояние этой клавиши у вас. так как у клавиши не один скан-код, если поковырятся в спецификации то будет ясно что при нажатом и отпущенном состоянии одна кнопка имеет два разных скан-кода. А на уровней драйверов клавиатур наверняка есть вычисления press hold и release
скан-код нажатой через SharpKeys уже не переназначается
Дело привычки.
Скорее отзвуки идиотизма
Причем здесь идиотизм?

Согласен, что backslash рядом с левым шифтом — это идиотизм, но Ctrl сделать ближе к пальцам левой руки — нет.
Заебали ваши предрассудки.
В этой клаве к счастью Fn справа =) они наверное свои ошибки осознают, но полностью от идеи отказываться не хотят. =)
Часто в настройках биосов ноутов (по крайней мере, в Асусах регулярно наблюдал) Fn и Ctrl можно поменять местами.
А я утилитку написал для этого, удобно профили менять для разных программ. Вот только с играми не дружит.
О боже, зачем же так сурово?
У самого клавиатура Logitech Classic 200, мне не нравилось, что над стрелкой вверх расположен инсерт, который нафиг ненужен нигде, а не End. Я переткнул клавиши на клавиатуре, и в системе с помощью утилитки KeyTweak. Не нужно лезть в реестр. После ремапа утилитку можно удалить, для работы она не требуется.
insert это как оказалось тоже дело привычки, и на практике процентов 20 людей используют не CTRL+V а именно SHIFT+INS
Хороший пост.
В итоге у вас, слева, есть два шифта размером с обычную кнопку. Конечно, удобней чем было, но видимо все равно ужасно неудобно, я прав?
да нет, на обычной клаве возможно было бы неудобно, а на этой тонкой, действительно если не смотреть на эти две кнопки, кажется что она одна и не испытываешь неудобств.
Есть очень удобная прога не требующего постоянного наличия в системе или авторана

забыл ссылку — SharpKeys 3

teutonick.ru/download/sharpkeys3.zip

Всего лишь установили, переназначили, ребут и можете сносить…
Не требует знания ключей реестра
я уже потерял надежду переназначить Ctrl на место Fn на своем Lenovo Y450, а эта программа все сделала! спасибо
Fn поменяла??? Интереесно… на моей тошибе не захотела…
я эту прогу указал в посте, правда не указывал версию
Прости, не заметил ((
Надо попробовать переназначить 2 бесполезных кнопки "€" и "$" над кнопками управления курсором на своем Aspire 5720
"… и перезагрузите ПК"

Хорошо б снабдить все компьютеры с виндой системой обратной связи, чтоб после каждой перезагрузки, вызванной идиотизмом разработчика ОС, по одному программисту М$ сгорало в специальной печи, с трансляцией видео на рабочие места остальных.
ну сейчас мода такая, мак ос теперь тоже после каждого чиха рестартится. А помню было время…
Ландо винда, среди убунтоидов полно советчиков, полагающих, что после изменения настроек иксов или установки какого-либо модуля ядра надо обязательно перезагрузиться… И ведь не ленятся свой бред на видео записываьи на «твойтруба» публиковать
У меня ноутбук, и время от времени я его использую с разными внешними клавиатурами. Можно ли переназначить клавиши для конкретной клавиатуры? Было бы очень полезно.
ну для этого наверняка есть какие-то утилиты. Ну или попробуйте спецификации почитать, может это как-то через реестр оформить можно
могу конечно посоветовать сделать настройки для каждой клавы.
Создать конфиг изменяемых сканов в отдельный reg-файл как у яказал в посте. и обозвать из например:
Standart.reg
Logitech_illum.reg
Genius_Slim_KB-100.reg
и т.д. и запускать тот рег который соответствует вашей подключенной клавиатуре.
А меня бесит когда Enter как почти как Shift, когда над ним делают клавишу с /
Луч циакринового поноса дизайнерам Logitech?
есть еще такая программа, как MKey
программа хорошая, только разрабатываться перестала…
есть в ней косяк — она регулирует громкость только фронтальных колонок
не-не-не, ее разработка возабновлена(моей радости не было предела, как узнал), и более того жив форум и автор прислущивается к багтреку и фичер-риквесту
да, действительно
поставил 1.1.6

после того, как перешёл с apollo на foobar2000 (в которой есть родные хоткеи), использовал mkey как OSD-индикатор громкости, но вот есть проблема, что через mkey меняется только фронтальный выход осталась, так что выключил пока, до лучших времён :)
А я всегда мечтал о 2-х клавиатурах, подключенных к одной машине. На одной непосредственно работаешь, а на второй — шорткаты клякаешь. Вот это мило бы было. Эххх(
Я, конечно, понимаю, что прошло 10 лет, но, может быть, эта мечта всё ещё актуальна.
Когда-то задался для себя этой целью и нашёл программу HIDMacros. Она как раз отлично справлялась с двумя клавами: на одной можно было поставить шорткаты на клавиши так, что те теряли изначальное предназначение, при этом на другой у клавиш оставался прежний смысл. Даже пользовался какое-то время так двумя клавиатурами, но потом надоело.
Есть, правда, ложка дёгтя: программа больше не развивается автором, а на новых осях уже не работает (личный опыт: на WinXP x86 работала, на Win7 x64 уже нет). Хотя вместо неё автор мутит LuaMacros. Но ей лично я не пользовался, поэтому ничего уже сказать не могу.
Для линукса:
1. Запустить xev, чтобы узнать код клавиши
2. Cоздать файл ~/.xmodmaprc и записать в него

keycode = Shift_L
add shift = Shift_L

3. Выполнить xmodmap ~/.xmodmaprc

немного не в тему, но спрошу:
можно ли как нибудь в линуксе назначить на произвольную клавишу действия копировать/вставить.
п.с. искал очень долго, так и не нашел.
п.п.с. клавиатура a4 kbs-26 — мультимедийная, дров естественно нет :(.
Через настройки wm можно замепить на кнопку с известным кодом запуск скрипта с нужным действием. Пару лет назад в kde3 я это делал через связку dbus+klipper, в wmii через найденный где-то демон на руби.
Все это к мышке тоже относится? Хочу переназначить дополнительные кнопки мыши на клавиатурные кнопки.
если вы пройдете на сайт Sharpkeys там я вчера видел подобную программку лоя мышек. попробуйте.
НЛО прилетело и опубликовало эту надпись здесь
для пользы дела забыли сказать что программа называется
Microsoft Keyboard Layout Creator
НЛО прилетело и опубликовало эту надпись здесь
Огромное спасибо автору — пришел конец мучениям с шифтом :)
Эх… занимался я этим… почему же не захотел писать статью?)

А меня sharp keys (да, я не люблю копаться в реестре с теми нулями) да и она очень адекватно сделана, хотя и требует net зачем-то. Совсем офигели.)

Я с радостью перенес Win чтобы нажимать WIN+R одной рукой,
и поселил чертов caps подальше…

А также сделал себе кнопку, которая в русской раскладке вставляет сразу запятую без шифта. (MS Keyboard layout creator + sharpkeys для переноса Insert который вечно сам нажимался..)
Левая кнопка "\" очень ценна для уркаинского языка потому что на енй по умолчанию располагается буква "Ґ", которую фиг найдешь иначе.
В украинской версии клавиатур логитек на этой клавише твердая буква г
у меня тоже лоджитек, и каждый раз видель слеш возле левого шифта – для меня открытие
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории