Dozen0をかむキーボードにするファームウエア第2弾その2を作りました。今回の物は、前回、レイヤー切り替えでキーを4つ使っていましたが、この部分を3つのキーとし、その代わり3つのキーの組み合わせで7レイヤー持つことが出来るようにしました。そうすると、キーが4つ余るので、そのキーによく使うキーを割り当てられます。
初期ファームウエアは以下から
ファームウエア
キーリピート機能付きは以下
キーリピート機能付きファームウエア
ファームウエアをメイクする環境は、ここを参考に作ると良いでしょう。
上記の圧縮ファイルをドキュメント以下に展開したならQMK
MSYSで
cd /c/users/tamotu/Documents/qmk
あるいは
cd /c/users/tamotu/Documents/qmk/qmk
ここで tamotu
は、ご自分の環境で置き換えて下さい。
cd /c
cd users
cd tamotu ←ここはご自分の環境で変わる
cd Documents
cd qmk
と、一つずつ辿っても良いです。
[tamotu?DESKTOP-??????? qmk]$
の様になれば成功です。続けて
make dozen0:kamu31
で、エラーが出なければ成功です。
実際にファームウエアを書き込むには
make dozen0:kamu31:avrdude
とします。
ここで、ドットが、少しずつ出てくるようになったらDozen0のmicroUSB端子の反対側のリセットスイッチを1回押します。すると赤く光って、画面が流れます。
ここからはキーマップの変更の仕方です。
ドキュメントフォルダに展開した場合は、上記のようになります。
ここの keyboards に移動します。
dozen0 フォルダを探します。
dozen0 フォルダの中に keymaps
フォルダがあります。
keymaps フォルダの中に kamu31
フォルダがあります。
kamu31 フォルダの中の keymap.c
をメモ帳等で開きます。
const uint16_t PROGMEM keymaps[8][MATRIX_ROWS2][MATRIX_COLS2] =
{
//●○○レイヤー0 英小文字
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{{KC_U, KC_A, KC_E, KC_I, KC_O },
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{KC_C, KC_F, KC_X, KC_Q, KC_L },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{KC_DOT, KC_V, JP_QUOT, KC_COMMA, KC_J },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{KC_W, KC_H, KC_M, KC_Y, KC_R },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{KC_T, KC_P, KC_SPACE, KC_K, KC_S },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{KC_D, KC_B, KC_N, KC_G, KC_Z },
//●●●●●
{KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO }},
//○●○レイヤー1 英大文字
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{{LSFT(KC_U), LSFT(KC_A), LSFT(KC_E), LSFT(KC_I), LSFT(KC_O)},
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ LSFT(KC_C), LSFT(KC_F), LSFT(KC_X), LSFT(KC_Q), LSFT(KC_L) },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ KC_DOT, LSFT(KC_V), JP_QUOT, KC_COMMA, LSFT(KC_J) },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ LSFT(KC_W), LSFT(KC_H), LSFT(KC_M), LSFT(KC_Y), LSFT(KC_R) },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ LSFT(KC_T), LSFT(KC_P), KC_SPACE, LSFT(KC_K), LSFT(KC_S) },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ LSFT(KC_D), LSFT(KC_B), LSFT(KC_N), LSFT(KC_G), LSFT(KC_Z) },
//●●●●●
{ KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO }},
//●●○レイヤー2 記号
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{ { JP_PERC, JP_EXLM, JP_DQUO, JP_HASH, JP_DLR },
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ JP_AT, JP_AMPR, JP_QUOT, JP_LPRN, JP_RPRN },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ JP_LCBR, JP_QUES, JP_RCBR, JP_LBRC, JP_RBRC },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ JP_RABK, JP_TILD, JP_PIPE, JP_GRV, JP_LABK },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ KC_NO, JP_SCLN, JP_COLN, JP_UNDS, KC_NO },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ LCTL(KC_Y), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Z) },
//●●●●●
{ KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO } },
//○○●レイヤー3 数字
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{{KC_5, KC_1, KC_2, KC_3, KC_4},
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ KC_0, KC_6, KC_7, KC_8, KC_9 },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ JP_EQL, JP_ASTR, JP_SLSH, JP_PLUS, JP_MINS },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ KC_F5, KC_F1, KC_F2, KC_F3, KC_F4 },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ KC_F10, KC_F6, KC_F7, KC_F8, KC_F9 },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ KC_NO, KC_F11, KC_F12, JP_CIRC, JP_YEN },
//●●●●●
{ KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO } },
//●○●レイヤー4 数字
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{ { KC_5, KC_1, KC_2, KC_3, KC_4 },
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ KC_0, KC_6, KC_7, KC_8, KC_9 },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ JP_EQL, JP_ASTR, JP_SLSH, JP_PLUS, JP_MINS },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ KC_F5, KC_F1, KC_F2, KC_F3, KC_F4 },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ KC_F10, KC_F6, KC_F7, KC_F8, KC_F9 },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ KC_NO, KC_F11, KC_F12, JP_CIRC, JP_YEN },
//●●●●●
{ KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO } },
//○●●レイヤー5 カーソル
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{ { KC_UP, KC_LEFT, KC_SPACE, KC_RIGHT, KC_DOWN },
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ LSFT(KC_UP),LSFT(KC_LEFT),LSFT(KC_RIGHT),LSFT(KC_DOWN),KC_SPACE },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ JP_EQL, JP_ASTR, JP_SLSH, JP_PLUS, JP_MINS },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ KC_F5, KC_F1, KC_F2, KC_F3, KC_F4 },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ KC_F10, KC_F6, KC_F7, KC_F8, KC_F9 },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ KC_NO, KC_F11, KC_F12, JP_CIRC, JP_YEN },
//●●●●●
{ KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO } },
//●●●レイヤー6 数字
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{ { KC_5, KC_1, KC_2, KC_3, KC_4 },
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ KC_0, KC_6, KC_7, KC_8, KC_9 },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ JP_EQL, JP_ASTR, JP_SLSH, JP_PLUS, JP_MINS },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ KC_F5, KC_F1, KC_F2, KC_F3, KC_F4 },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ KC_F10, KC_F6, KC_F7, KC_F8, KC_F9 },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ KC_NO, KC_F11, KC_F12, JP_CIRC, JP_YEN },
//●●●●●
{ KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO } },
//レイヤー7 制御用
//●○○○○ ○●○○○ ○○●○○ ○○○●○ ○○○○●
{{KC_ZKHK, KC_BSPC, KC_SPACE, KC_ENTER, KC_NO},
//●●○○○ ○●●○○ ○○●●○ ○○○●● ●○○○●
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO },
//●○●○○ ○●○●○ ○○●○● ●○○●○ ○●○○●
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO },
//○●●●● ●○●●● ●●○●● ●●●○● ●●●●○
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO },
//○○●●● ●○○●● ●●○○● ●●●○○ ○●●●○
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO },
//○●○●● ●○●○● ●●○●○ ○●●○● ●○●●○
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO },
//●●●●●
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }}
};
ここのKC_UをKC_Aに変えれば、Uが打てていた物がAを打つようになります。
キーコードに関しては、ここを参照して下さい。
レイヤー0は、Dozen0の下段左から3番目のみを押した時のレイヤーでアルファベット小文字が割り当てられています。
レイヤー1は、Dozen0の下段左から4番目のみを押した時のレイヤーでアルファベット大文字が割り当てられています。
レイヤー2は、Dozen0の下段左から3番目と4番目を同時に押した時のレイヤーで記号が割り当てられています。
レイヤー3は、Dozen0の下段左から5番目のみを押した時のレイヤーで数字が割り当てられています。
レイヤー5は、Dozen0の下段左から4番目と5番目を同時に押した時のレイヤーでカーソル移動が割り当てられています。
それ以外のレイヤー4、レイヤー6にはとりあえず、数字を割り当てています。
レイヤー7は、順にDozen0の上段一番左、左から二番目、一番右、下段左から二番目を押した時に出る文字を示しています。
|