Keychron Q1V2 ANSIでqmk-us-to-jp-keymap組み込み

環境

  • Windows11 pro

  • Keychron q1v2 Knob ANSI

やりたかったこと

以下の方が作ってくださったコードをKeychronに組み込むhttps://github.com/uteten/qmk-us-to-jp-keymap

組み込むことで実現できること

  •  OSはJIS環境のまま、USキーボードの配列で入力したい

  • 無変換/変換を割り当てたキーでIMEのONOFFをしつつ記号などはUS配列のまま打てる

  • ノートPC備え付けのJIS配列はJIS配列のまま、外付けのUSキーボードはUS配列として文字が打てる

  • 上記の動作は、PowerToys等でも実現できるが業務上インストールできない環境もあるため環境によっては打鍵時の操作が変わってしまい手間だった

実施した手順

環境準備

1. MSYS2のダウンロード

2. ダウンロードしたファイルを指示に従いインストールする

3. インストール完了後、"MSYS2 MINGW64"を起動する


4. 以下のコマンドを実行し、QMK環境を整える(gitなど、必要なソフトウェアがインストールされます)

pacman -S git

5. Git cloneコマンドを実行し、QMKリポジトリをローカルにクローンする  その後、cloneしたディレクトリに移動する

git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git
cd qmk_firmware


6. qmkのセットアップ

 util/qmk_install.sh

7. インストール後、試しにビルドを実行する。
正常完了後、cleanを実施しビルドファイルを削除すること

make keychron/q1v2/ansi_encoder:default
make clean

8. Keychronの新たにキーマップフォルダを作成する
以下の手順は私の環境での作業になります。
ご自身が利用しているキーボードに合わせて読み替えてください。

私の場合、以下のパスにてdefaultフォルダをコピーペーストして「via」というフォルダ名に変更しました。

  • 対象ディレクトリ


C:\msys64\home\USER NAME\qmk_firmware\keyboards\keychron\q1v2\ansi_encoder\keymaps\

9. viaフォルダ配下には以下の3つのファイルを配置することになります。
手順8.にてkeymap.cとrules.mkはコピーされているはずなので、
githubより"qmk_us_to_jp_keymap.c"のソースコードをコピーしてきて、"qmk_us_to_jp_keymap.c"という名前を付けて保存します。

10.keymap.cを編集する
※私の詰まりポイントでした。
githubのREADMEでは"process_record_user 関数"配下に記載するだけでOKとの記載がありましたが、Keychron q1v2の場合は対象の関数が存在しませんでした。
結果的には、以下のコードを丸ごと記載して保存してOKでした。

#include "qmk_us_to_jp_keymap.c"

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    if (record->event.pressed) {
        if (!convert_us_to_jp_keymap(keycode)) return false; // 変換実行時は処理を終了
        // 他のカスタム処理をここに記述
        switch (keycode) {
            // カスタムキーコードの処理
        }
    }
    return true; // 他の処理を継続
}

11. rules.mkを編集する オプションです。
私の場合、viaにてキーマップを編集したかったため以下の分を追記しました。

VIA_ENABLE = yes

12. 以下のコマンドを実行し、コンパイルする
ERRORの表示が出なければOKです。

最後のviaの部分は、8.手順で作成したもの
その前までの部分は自分のキーボードに読み替える

make keychron/q1v2/ansi_encoder:via

13. 以下のコマンドを実行し、キーボード本体に書き込む
ERRORの表示が出なければOKです。

make keychron/q1v2/ansi_encoder:via:flash

途中で以下のような表示が出力され処理がとまるため、キーボードからUSBケーブルを抜きます。
その後、ESCボタンを押しながらUSBケーブルを差し込むと処理がすすみます。

Flashing for bootloader: stm32-dfu
Bootloader not found. Make sure the board is in bootloader mode. See https://docs.qmk.fm/#/newbs_shing
Trying again every 0.5s (Ctrl+C to cancel)...............................................................................

14.作業完了です。VIAを設定した方は、VIAでキー配列が変更可能か確認してください。

いいなと思ったら応援しよう!