@applejxd

雑記帳

WSL メモ

目次

設定書き込み

QMK ファームウェア

Keychron Q1 Max では次のように記載:

Q1 Japan JIS KnobバージョンのVIAコードは、まだGithubからの承認を待っているため、まだ自動的に認識されていません。 以下の適切なキーマップJSONファイル(ANSIまたはISO)をダウンロードし、VIAを開き、[設定]タブの[デザインタブの表示]をオンにし、JSONファイルをVIAの[デザイン]タブにドラッグして、Q1ノブキーマップを機能させます。

Q6 Max JIS ファームウェアの作り方

  1. Keyboard Layout Editor でレイアウト作成
    • ただし 列は 0~19 に必ず収める。最後の列は 3,13, 3,14, … と3行目の余りのキーを付与。
    • 公式の json から配置が読み取れる
    • Raw data から Download JSON で保存
    • 別途 Raw data の内容をクリップボードにコピー
  2. KLE -> QMK info.json Converter でフォーマット変換
      1. の手順でコピーした内容を貼り付け
    • 結果を info_pre.json として保存
  3. Python スクリプトで更に変換

     import json
     import sys
    
     # path = sys.argv[1]
     path = r"C:\Users\applejxd\Desktop\info_pre.json"
    
     with open(path) as f:
         d = json.load(f)
    
     layout = d["layouts"]["LAYOUT"]["layout"]
    
     for i in range(len(layout)):
         pos = layout[i]["label"].split(',')
         layout[i]["matrix"] = [int(num) for num in pos]
    
     with open('./info.json', 'w') as f:
         json.dump(d, f, indent=2)
    
  4. Keychron の fork を clone
    • ホームフォルダの直下に clone
  5. WiFi 接続モデル向けブランチ(wireless_playground) を checkout
  6. keyboards/keychron/q6_max を参照
  7. ansi_encoder をコピーして jis_encoder と名称変更
  8. jis_encoder/info.jsonlayoutsLAYOUT_112_jis として 3. の出力結果をペースト
  9. jis_encoder/config.h#define DYNAMIC_KEYMAP_LAYER_COUNT 6 などと追記してレイヤー数を増加
  10. jis_encoder/keymaps/via/keymap.c の配列を LAYOUT_112_jis に変更。
    • キーの順番は info.json の順番
    • (キーマップは keyboards/keychron/k10_pro などの 100% JIS キーボードからコピーしてくる)
    • メディアキーは Q6 Max では未定義のため KC_ESC, KC_F1, ... をコピー・貼り付けして上書き
  11. keymap.c のレイヤ数をコピペで増やす
    • layers 列挙体に FN_CX, FN_M などとして新規レイヤーの名前を作成
    • 同様の名前で keymaps の内容もコピペで増やす
    • encoder_map についても同様
  12. QMK MSYS でビルド: qmk compile -kb keychron/q6_max/jis_encoder -km via
    • VIA 機能を有効化するためには rules.mk に記載のある via をビルド
  13. QMK Toolkit で出来上がったファームウェアを書き込み
    • ファームウェア書き込みモードは ESC を押しながら有線接続
    • ビルドしたファームウェアは qmk_firmware フォルダ直下の bin ファイル
    • Flush で書き込み
  14. Keychron Launcher でキーマップ修正
  15. Keychron によるファームウェア配布 から適切な JSON ファイルを取得
  16. キーマップのインポートから上記読み込み JSON を