Доводим до ума клавиатуру Keychron K3 Max

Обзоры, настройка и доработка разных компьютерных девайсов

Доводим до ума клавиатуру Keychron K3 Max

alex83 » 05 май 2025, 23:20

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


К ключевым плюсам данного девайса можно отнести следующее:
  1. Качество сборки и материалов, приятные тактильные ощущения, компактность, дизайн - всё это есть.
  2. Хороший выбор конфигураций (можно выбрать тип подсветки, тип свичей, хотсвап и раскладку).
  3. Продвинутое железо.
  4. Все виды подключений.
  5. Регулируемый угол наклона.
  6. Поддержка QMK/VIA. Возможность гибкой и простой настройки раскладок и макросов. Этот девайс - своего рода конструктор, позволяющий как угодно переставлять и назначать функции клавиш и даже менять исходный код и компилировать свою прошивку.
Более подробную информацию о фичах девайса можно получить на сайте производителя или официального поставщика.

Недостатки... Их в общем-то нет... Но только если новоиспеченный юзер является гиком. А вот для обычного юзера, который будет использовать девайс "как есть" их есть и от недостатков этих может сильно бомбить.
  1. Откровенно слабая АКБ на 1550мАч. Для такой заряженной механики с подсветкой - это вообще не о чем. Особенно это касается RGB варианта. Для RGB клавиатур нужна батарея удвоенной емкости. Учитывая компактные размеры, заменить эту батарею на что-либо более емкое вряд ли получится.
  2. Откровенно тухлая RGB-подсветка. Низкая яркость независимо от режима и никакая цветопередача, которая ещё и плывет при разряде батареи. Причем яркость занижена специально для обеспечения хоть какого-то приемлемого времени автономной работы от дохлого АКБ. Короче говоря, как это сейчас модно, подсветка несет непонятную и чисто декоративную функцию.
  3. Кейкапы из PBT и не просвечиваются совсем, поэтому работать в темноте без 10-фингерного метода не получится. Впрочем производитель об этом позаботился и формально предоставляет наборы просвечиваемых кейкапов из ABS-пластика, но стоят они очень дорого и купить их чрезвычайно сложно. Лютый дефицит, как во времена СССР.
    Но даже если удалось каким-то чудом раздобыть этот набор, то конкретно в данном девайсе он проблему не решит из-за низкой яркости подсветки. Для того, чтобы получить просвет на ABS-кейкапах придется либо править и компилить прошивку, либо что-то делать с кейкапами. Для RGB варианта клавиатуры нужны кейкапы с хорошей светорассеивающей и светопропускной способностью, чтобы с ними можно было работать на минимуме подсветки, т.к. в противном случае подсветка будет быстро жрать батарею.
  4. Проприетарные стабилизаторы, а это значит, что никакие наборы кейкапов, кроме как от производителя на данную клавиатуру не подойдут (см. пункт 3). На сайтах производителя и поставщика наглый .здешь, а точнее полуправда о том, что на стабилизаторах MX-кресты. Вот такая подляночка.

  5. Нет поддержки кириллицы. Её конечно можно нанести лазером, но на PBT-кейкапах она будет выглядеть подслеповато. Исключением может быть разве только нанесение с прокрашиванием. На ABS-кейкапах, если грамотно нанести, то будет хорошо.
  6. Если батарея полностью разряжена, то при подключении USB кабеля клавиатура не включится пока заряд не достигнет определенного уровня, что может занять довольно много времени. Т.е. если клавиатура вот совсем разрядилась, то использовать её сходу не получится. Возможно такое решение как-то связано с высоким потреблением подсветки RGB.
  7. Подсветка полностью отключаeтся без возможности включения, когда заряда батареи остается примерно 20%, а светодиод клавиши пробела начинает подмаргивать красным. Решение довольно радикальное, т.к. 20% - запас вполне достаточный.
  8. Индикация CAPS LOCK реализована зажиганием отдельного красного статичного светодиода, установленного рядом с RGB-светодиодом, что на не просвечиваемых капах нередко делает эту индикацию незаметной и неочевидной. Например, когда активирован какой-либо эффект подсветки. Ладно бы он ещё мигал, а так - совсем тухлая индикация.

  9. Отдельный светодиодный индикатор зарядки/разряда АКБ вынесен на заднюю стенку и сделан максимально незаметным и бесполезным.
  10. В некоторых режимах подсветки может возникать едва слышимый писк ШИМ-драйвера на максимальной яркости.
  11. Переключение раскладок Win/Mac сделано не хоткеями, а отдельным переключателем на задней стенке, куда неудобно тянутся, да ещё и радом с переключателем режимов, из-за чего их легко перепутать.
  12. Выключатель питания комбинированный, совмещен с переключателем режимов, расположен рядом с переключателем раскладок, не удобно, путано, клавиатуру отключает только когда переключен на режим кабеля и при этом кабель не подключен. Т.е. вы не можете поставить клавиатуру на зарядку, подключив к компьютеру, и при этом деактивировать её, чтобы команды с клавиш не уходили на компьютер. Гораздо более грамотным решением было бы избавится гот переключателя раскладок (переключать комбинацией клавиш), слева оставить переключатель режимов подключения, как есть, а справа разместить выключатель питания, который бы отключал клавиатуру независимо от того, какой режим активирован и подключен ли кабель.

  13. На цифровые клавиши подключений из коробки не нанесены соответствующие символы. Типа запоминайте, просто же. Мелочь, а неприятно.

Некоторые нюансы выбора:

  • Опция хотсвапа доступна только совместно с RGB-подсветкой, а простая белая подсветка ограничивает в выборе свитчей. Вилка неприятная. С одной стороны, данный девайс заточен на гибкость, а потому имеется резон взять его именно с хотсвапом, чтобы максимально раскрыть потенциал (модель K3MHn, где n - тип свичей (1 - red, 2 - blue, 3 - brown)). С другой стороны, RGB подсветка - вещь не практичная. Жрет АКБ, как не в себя. Если вы не ребенок, вам не нужен хотсвап, и нужно ехать, а не шашечки, то лучше поискать вариант с обычной подсветкой. В полной мере насладится RGB из коробки на этой клавиатуре все равно не получится.
    Более подробно ознакомится с моделями можно на сайте производителя или официального поставщика.
  • Вариант в ISO раскладке - дефицит.
  • По возможности желательно избегать покупки клавиатуры с нанесенной кириллицей(такие представлены на рынке). Наносят её, как правило, на отвяжись. Так что если есть возможность, то лучше нанести её по своим хотелкам и грамотно, благо сейчас услуги такого рода представлены в достаточном количестве.
Аватара пользователя
alex83
Имя: Александр

Настраиваем через WEB-конфигуратор

alex83 » 11 май 2025, 12:00

Ещё не так давно QMK-конфигураторы представляли собой обычные программы, инсталлируемые в систему, однако в последнее время весь этот софт переводится на WEB-рельсы. С одной стороны уходит проблема совместимости и поддержки софта под разные системы, а с другой идет привязка пользователей к сервисам, к интернету и к определенным браузерам, потому как не со всякими браузерами эти сервисы могут работать.
Хорошо, что всё это так или иначе опенсорц и даже если какой-либо сервис от.бнет, то появится/останется какой-либо другой.

Для работы с WEB-ланчерами:
  • Подключаем USB кабель и переводим девайс в подключение по кабелю.
  • Открываем браузер Chrom.
  • Для работы в ланчере Keychron переходим по адресу https://launcher.keychron.com/, нажимаем кнопку Connect и выбираем свою клавиатуру в списке.
  • Для ланчера QMK VIA переходим по адресу https://www.usevia.app/
    Там всё может быть сложнее, т.к. данное приложение может ничего не знать о вашей клавиатуре и не авторизовать её. В этом случае для начала работы нужно сделать несколько дополнительных манипуляций:
    • Скачиваем JSON-файл описания конфигурации вашей клавиатуры отсюда https://www.keychron.com/pages/firmware
      Это будет архив вида k3_max_ansi_rgb_v1.0.json.zip, который нужно распаковать.
    • В интерфейсе ланчера в верхнем меню кликаем шестеренку и двигаем переключатель Show Design tab.
      В результате в верхнем меню появится пиктограмма кисти. Кликаем на неё и нажимаем кнопку LOAD для загрузки JSON-файла. Выбираем файл с расширением json в папке распакованного архива.

    • В случае успешной загрузки появится окно выбора устройства, в котором будет ваша клавиатура. Нужно выбрать её и нажать подключить.
  • Далее открываем инструкцию по эксплуатации и читаем описание слоев и обозначений назначений клавиш. В комплекте инструкция на русском языке, вполне качественная и полезная.

У данной клавиатуры по умолчанию странная и неоптимальная раскладка, поэтому есть смысл немного её подкорректировать.
Что было сделано:
  • Поменяны местами пары клавиш home/end и page up/page down по аналогии со многими другими клавиатурами.
  • Поменяны местами клавиша Delete и клавиша переключения эффектов подсветки(лампочка).
  • Функция клавиши переключения эффектов подсветки изменена на включение/выключение подсветки по умолчанию, а через Fn переключение режимов подсветки вперед.
  • На клавишу PrintScreen назначен макрос LShift+LWin+S, а на слое активируемым через Fn на эту же клавишу назначен обычный PrintScreen.



Полезные ссылки:


________
Вложения
k3_max_ansi_rgb_v1.0.json.zip
JSON-файл описания конфигурации для QMK конфигуратора VIA
(1.88 Кб) Скачиваний: 26
Keymap.zip
JSON-файлы кастомной раскладки для конфигураторов VIA и Keychron
(2.13 Кб) Скачиваний: 21
Аватара пользователя
alex83
Имя: Александр

Просвечиваемые ABS кейкапы

alex83 » 21 май 2025, 02:34

Удалось достать оригинальный набор просвечиваемых ABS кейкапов. Сейчас таких уже не купить - сняты с производства. Поначалу я было подумал, что мне повезло, да ещё и кириллица уже нанесена. Но не тут-то было.


Отдельно в пакетике лежали ещё такие колпачки:


Сделаны они из прочного толстого ABS пластика. На первый взгляд показались каким-то дешманом, потому что покрашены какой-то порошковой краской, которая снизу осела в виде пыли. Ну реально выглядят довольно дешево и совсем не стоят своих денег, но когда поставил на клавиатуру, то понял, что смотрятся они очень даже неплохо, а эта порошковая краска, она такая шероховатая, делает клавиши довольно приятными и не оставляет на себе следов. На этом веселье закончилось.


При включении подсветки на полную яркость стало ясно, что свет они практически не пропускают. Пластик толстый, не прозрачный, с очень плохим светопропусканием и светорассеиванием. Ну и тупо не хватает яркости подсветки. Даже символы расположенные напротив светодиода просвечиваются настолько плохо, что даже в полной темноте их почти не видно.

Отдельно нужно отметить символы русской раскладки. Мало того, что у некоторых из них завален горизонт, так они ещё и нанесены в такой жопе, что свет от светодиода до них не доходит от слова совсем, в том числе и из-за особенности формы стемов свичей.
Когда хотят сделать нормальную подсветку русской раскладки, то гравировку делают таким образом:


В общем, покупка вышла неудачная и каких-то приемлемых альтернатив на данный момент не найти.
Придется увеличивать яркость подсветки, а это неминуемо скажется на времени автономной работы, которое ввиду откровенно дохлой батареи может сильно уменьшится.
Непонятен ажиотаж с Double Shot PBT кейкапами, вариантов которых очень много, но среди которых практически нет просвечиваемых, да и с нанесением русской раскладки у них серьёзные проблемы. Такие кейкапы актуальны там, где предъявляются повышенные требования к износу, например, для профессионального и промышленного оборудования, которое работает в жестких условиях на протяжении длительного времени, но на кой хрен они на бытовых клавиатурах, которые устареют и потеряют актуальность уже через пару лет...
Какие-то хотелки клавиатурных задротов, под которые подстраиваются производители. А по факту получается, что люди переплачивают деньги за подсветку и не могут её полноценно использовать.
Аватара пользователя
alex83
Имя: Александр

Увеличиваем яркость подсветки - Подготовка среды

alex83 » 23 май 2025, 21:23

Как уже упоминалось выше, у девайса искусственно заниженная яркость подсветки в целях продления времени автономной работы, а также разные другие несущественные недостатки ПО, которые тем не менее хотелось бы устранить. Для решения этих проблем требуется правка, перекомпиляция и перепрошивка firmware.

Вся информация по перепрошивке собрана из источников в интернете, список ссылок см. ниже.
Все действия на свой страх и риск.

Подготовка среды сборки
  1. Идем на гитхаб Кейкрона и находим в репозитории целевую клавиатуру. В данном случае сюда. В файлике readme.md заботливо представлены примеры и ссылки на инструкции. Инструкции по ссылкам читаем(в Хроме правой кнопкой мыши "Перевести на русский"), однако, инструкции эти хоть и подробные, но общие и скрывают некоторые нюансы неизвестные новичкам.
  2. Устанавливаем текстовый редактор кода. Рекомендую этот.
  3. Устанавливаем QMK Toolbox. Сам по себе тулбокс для этой задачи не потребуется, но потребуются драйверы, которые он устанавливает, поэтому можно скачать портабл-версию qmk_toolbox.exe. Запускаем файл от имени администратора и в меню Tools выбираем Install Drivers.
  4. Устанавливаем QMK MSYS на диск C, как он порекомендует в процессе установки.
  5. Запускаем приложение. Команду qmk setup вводить ненужно.
    Вводим последовательно следующие команды, дожидаясь выполнения каждой:
    1. Клонируем репозиторий Keychron к себе. В результате в домашней папке вашего пользователя появится каталог qmk_firmware, содержащий образ репозитория Keychron.
      Код: Выделить всё
      git clone https://github.com/Keychron/qmk_firmware.git

    2. Переходим в созданный каталог.
      Код: Выделить всё
      cd qmk_firmware

    3. Переключаемся на ветку wireless_playground, в которой лежит наша клавиатура.
      Код: Выделить всё
      git checkout wireless_playground

    4. Подтягиваем субмодули.
      Код: Выделить всё
      make git-submodule

    5. Устанавливаем утилиты. На вопрос программы о начале установки вводим 'y' и нажимаем интер. Если в процессе выполнения команды приложение закроется, то после перезапуска нужно будет ввести эту команду повторно для завершения установки, предварительно перейдя в каталог репозитория командой cd qmk_firmware. Если в конце сообщит, что не может установить драйверы, то ничего страшного.
      Код: Выделить всё
      util/qmk_install.sh

    6. На всякий случай проверяем установку. В выводе должно быть что-то похожее на скрин ниже, т.е. без каких-либо серьёзных проблем.
      Код: Выделить всё
      qmk doctor

    7. Пробуем скомпилить дефолтную прошивку для нашей клавиатуры. Перед двоеточием указывается путь к конкретной конфигурации(ANSI/RGB) клавиатуры относительно C:\Users\[ваш юзер]\qmk_firmware\keyboards. После двоеточия указывается раскладка. В данном случае дефолтная. Закончится процесс должен как на скрине ниже. Если всё так, то прошивка компилится и всё работает, как надо. Подготовка и настройка среды сборки прошивок завершена.
      Код: Выделить всё
      make keychron/k3_max/ansi/rgb:default

Полезные ссылки:
Аватара пользователя
alex83
Имя: Александр

Правка исходного кода, компиляция и загрузка прошивки

alex83 » 01 июн 2025, 00:10

Правка исходного кода
Яркость подсветки занижена программно путем задания ограничения тока драйвера SNLED27351, управляющего светодиодной матрицей.

Ток для каждого из 12 каналов матрицы задается путем прописывания в регистр CCS канала числа от 0 до 255 и может быть вычислен следующим образом:


В исходном коде данной клавиатуры данные значения заданы в заголовочном файле
C:\Users\[ваш юзер]\qmk_firmware\keyboards\keychron\k3_max\ansi\rgb\config.h

Открываем его в текстовом редакторе и ищем эти строки:
Код: Выделить всё
/* Set LED driver current */
#    define SNLED27351_CURRENT_TUNE \
        { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }

Здесь для каждого из 12 каналов задано значение 0x14 в 16-ричном виде, что соответствует 20 в десятичном, т.е. задано макс. значение 20 из 255. Умножаем на 0.175 - получаем ток 3,5мА. Получается, что подсветка практически выключена, т.е. она просто для галочки.
Допустим, мы хотим увеличить максимальный ток до 35мА. 35 делим на 0,175 - получаем 200. Переводим 200 в 16-ричный вид с помощью калькулятора виндовс - это 0xC8. Аккуратно прописываем это значение в файлике для всех каналов и сохраняем файлик. В принципе можно прописать и 0xFF. Ничего страшного не случится, но на максимуме подсветки батарею жрать будет сильнее. Лучше всего задать тот максимум, который будет отвечать требованиям комфортной работы на клавиатуре. Теоретически, если попытаться поканально задавать индивидуальный ток для каждого цвета, то можно подстроить баланс белого.


Компиляция прошивки
Теперь, когда исходный код изменен, нужно скомпилировать из него новое firmware.
Если не планируется править раскладку, то достаточно выполнить команду:
Код: Выделить всё
make keychron/k3_max/ansi/rgb:via

Раскладка :via - это дефолтная раскладка предусматривающая работу с WEB-ланчерами.
Если сделать просто :default, то клавиатура перестанет прогружаться в WEB-ланчерах.

Если же дополнительно планируется сделать кастомную раскладку, то сначала нужно её создать командой:
Код: Выделить всё
qmk new-keymap -km my_keymap_name -kb keychron/k3_max/ansi/rgb

В результате в C:\Users\[ваш юзер]\qmk_firmware\keyboards\keychron\k3_max\ansi\rgb\keymaps будет создана новая папка с именем my_keymap_name, внутри которой будет лежать файл keymap.c с раскладкой аналогичной дефолтной. Далее этот файл можно править под свои нужды. Как это делать, можно почитать всё там же в документации QMK.
Чтобы впоследствии клавиатура поддерживалась в WEB-ланчерах, нужно скопировать в папку новой раскладки файл rules.mk из папки раскладки via.
Далее компилируем прошивку с новой раскладкой. Выполняем команды:
Код: Выделить всё
make clean
make keychron/k3_max/ansi/rgb:my_keymap_name


Загрузка прошивки
  1. Переводим клавиатуру в режим прошивки firmware. Для этого переводим её в режим подключения по кабелю:
    - отсоединяем кабель, если подключен
    - зажимаем клавишу ESC
    - не отпуская ESC, подключаем кабель
    - ждем пару секунд и отпускаем ESC
  2. Выполняем команду
    Код: Выделить всё
    make keychron/k3_max/ansi/rgb:[my_keymap]:flash
    , где [my_keymap] используемая раскладка.
    Вывод команды должен быть похож на этот:

  3. После успешной прошивки клавиатура сразу готова к использованию.

Ну вот, совсем другой коленкор:

Полная гамма цветов и офигенная яркость.
Но батарею жрет не милосердно, хватит максимум часов на 12.
Да и проблему подсветки символов русской раскладки это не решило. Они конечно светятся, но сильно слабее, а постоянно на максимуме яркости держать клавиатуру я не собираюсь.



Полезные ссылки:





________________
Вложения
SNLED27351_V1.4_EN.pdf
(5.85 Мб) Скачиваний: 7
Аватара пользователя
alex83
Имя: Александр

Уходим от WEB-ланчера

alex83 » 09 июн 2025, 14:17

Зашел я как-то на WEB-ланчер Кейхрона, а там вот:

Не работает, сломан.
Собственно, это и есть главный недостаток WEB-лачеров перед десктоп-приложением.
Вам приспичило что-нибудь настроить, идете туда, а там ничего не работает по независящим от вас причинам.
Но в данном случае у нас QMK-совместимая клавиатура, а это значит, что и без WEB-ланчера всё можно настроить.
Вот по этому, если какой-либо производитель предлагает веб-ланчер для НЕ QMK совместимой клавиатуры, то нужно слать такого производителя куда подальше, потому что со 100% вероятностью веб-сервис этого производителя рано или поздно перестанет работать и ваше устройство станет неполноценным инвалидом. Учитывайте это при покупке.

Ко всему вышесказанному нужно также добавить, что при работе над прошивкой устройства, от ланчера нужно уходить обязательно, потому как устанете настраивать девайс после каждой перепрошивки.

Настраиваем дефолтный эффект и цвет
  1. Открываем файл конфигурации устройства
    qmk_firmware/keyboards/keychron/k3_max/ansi/rgb/config.h
    и находим там блок
    Код: Выделить всё
    #ifdef RGB_MATRIX_ENABLE

  2. Добавляем в этот блок следующие параметры:
    Код: Выделить всё
    // Эффект и цвет по умолчанию
    #    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR // эффект по умолчанию (просто свечение)
    #    define RGB_MATRIX_DEFAULT_HUE 33 // оттенок 0-255
    #    define RGB_MATRIX_DEFAULT_SAT 132 // насыщенность 0-255
    #    define RGB_MATRIX_DEFAULT_VAL 255 // яркость 0-255

    Параметры и названия других эффектов, а также другие дефолтные параметры RGB-матрицы можно найти на этой странице:
    https://docs.qmk.fm/features/rgb_matrix

    Перевод RGB->HSV тут.

  3. В этом же блоке файла конфигурации можно найти другие параметры RGB-матрицы:
    Код: Выделить всё
    /* Turn off backlight on low brightness to save power */
    #    define RGB_MATRIX_BRIGHTNESS_TURN_OFF_VAL 75 // минимальное значение яркости при регулировке (от 0 до 255) (т.е. это значение - нижний порог регулировки яркости, с которого начнет зажигаться подсветка)


    Код: Выделить всё
    /* Allow shutdown of led driver to save power */
    #    define RGB_MATRIX_DRIVER_SHUTDOWN_ENABLE // отключать драйвер RGB в режиме энергосбережения

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

    Код: Выделить всё
    /* Set to infinit, which is use in USB mode by default */
    #    define RGB_MATRIX_TIMEOUT RGB_MATRIX_TIMEOUT_INFINITE // таймаут отключения подсветки при бездействии

    В прошивке Кейхрона данный параметр не используется, поэтому выставлен в "бесконечность" и трогать его также ненужно.
    Вместо него используется CONNECTED_BACKLIGHT_DISABLE_TIMEOUT из общего файла конфигурации qmk_firmware/keyboards/keychron/k3_max/config.h

Настраиваем keymap
  1. Открываем файл раскладки
    qmk_firmware/keyboards/keychron/k3_max/ansi/rgb/keymaps/[ваш кеймап]/keymap.c
    и находим там строчку
    Код: Выделить всё
    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]

    Это массив слоев и их раскладок.
  2. Выбираем слой, на котором хотим изменить раскладку.
    _BASE - это основной дефолтный слой, _FN - слой, который активируется при нажатии клавиши FN.
  3. В каждом слое условные коды(псевдонимы) клавиш в раскладках расположены так же как на реальной клавиатуре. Для изменения раскладки достаточно менять коды клавиш местами, заменять кодами "прочерки" и наоборот. При прописывании прочерка(неактивная клавиша) нужно строго соблюдать число символов подчеркивания в нем, потому что прочерк - это также псевдоним.

Делаем макрос
Как было указано выше, мне нужен макрос на клавишу print screen, который будет вызывать Win+Shift+S.
Для реализации задуманного нужно объявить список кастомных кодов клавиш.
  1. Открываем файл раскладки
    qmk_firmware/keyboards/keychron/k3_max/ansi/rgb/keymaps/[ваш кеймап]/keymap.c
    и находим там строчку
    Код: Выделить всё
    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS]

    Над ней прописываем следующий код:
    Код: Выделить всё
    enum custom_keycodes {
       WIN_PSCR = SAFE_RANGE,
       //KEY_CODE_2,
       //KEY_CODE_3
    };

    Это список наших кастомных кейкодов для макросов. Первому в списке кейкоду, который назовем WIN_PSCR, присвоен начальный номер из безопасного диапазона SAFE_RANGE. Это необходимо, чтобы предотвратить пересечение и путаницу с кодами клавиш уже используемых в раскладке клавиатуры. Для последующих кейкодов в списке это не требуется.

  2. Размещаем новый кейкод в раскладке в нужном слое и месте.


  3. Под списком кастомных кейкодов добавляем пользовательскую функцию обработки событий клавиш:
    Код: Выделить всё
    bool process_record_user(uint16_t keycode, keyrecord_t *record) {
       switch (keycode) {
          case WIN_PSCR: // макрос Win+Shift+S
             if(record->event.pressed){
                register_code(KC_LGUI);
                register_code(KC_LSFT);
                register_code(KC_S);
                
                unregister_code(KC_S);
                unregister_code(KC_LSFT);
                unregister_code(KC_LGUI);
             }      
             return false; // Пропустить всю дальнейшую обработку кейкода
             
          case FOO:
             if (record->event.pressed) {
                // Делаем что-нибудь, когда клавиша нажата
             } else {
                // Делаем что-нибудь, когда клавиша отпущена
             }
             return true; // Продолжить обработку событий кейкода
          default:
            return true; // Обрабатывать все прочие кейкоды как обычно
       }
    }

    В ней добавлен блок
    Код: Выделить всё
    case WIN_PSCR:

    который отвечает за обработку нашего нового кастомного кейкода WIN_PSCR.
    При нажатии клавиши, для которой мы определили псевдоним WIN_PSCR, в этой части кода будет выполнен алгоритм, реализующий макрос Win+Shift+S: последовательное нажатие(register_code) клавиш с соответствующими псевдонимами и последовательное их отпускание (unregister_code) в обратном порядке.

После всех изменений сохраняем файлы, компилируем и заливаем прошивку.



Полезные ссылки:
Аватара пользователя
alex83
Имя: Александр

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1