経緯
2021年4月5日
2022年11月5日
- コロナの影響で在宅勤務が増え、会社のPCにリモート接続するようになりました。
- みんなが使うPCは「JISキーボード」で、自分用のPCは「USキーボード」です。これらをリモートから上手く切り替えることができませんでした。
2023年3月3日
- 作成できましたので、もう1台作成しました。自宅と会社で同じものを使っています
2024年4月15日
- そろそろ、購入できなくなるかと思い、もう1台作成しています。以前に作成したものを分解し、基盤とスイッチの位置を確認しながら作業を進めています
- 手間がかかるのは、ハンダ付けする前にUSBで接続し、ソフトウェア(2023年3月に作成した完成したもの)をインストールし、ピンセットで導通に問題がないか確認することです。ハンダ付けを行うと不良品として交換できないため、慎重に作業を進めています。
- 注)この作り方はかなり専門的なものであり、一般の方にはお勧めできません。特にソフトの改良には時間がかかりました
あるべき姿
- キーボードの配列を変更できない場合は、キーボードから出力される文字コードをAppleUS、WinJIS、WinUSの3つのモードに切り替えることができれば良いでしょう
- この方法で、親指シフト入力エミュレータ(たとえば、やまぶきRさんやDvorakJさんなど)を導入する必要がなく、便利に使えます
作ってみた
- Fnキー併用押し
- 英語は、KC_EISU。 日本語は、KC_KANA2 となっています(@sadaoikebeさんオリジナル)
- AppleUSは、KC_YSMAC。 WinUSは、KC_YSWIN。 WinJISは、KC_YSUSJP。 (shiguが新規追加)
- 注)KC_GRV(〜)は、物理キーボード上では右上になります。ソフト上では、KC_KANA2(右スペース)の横になっています (shiguがHHKBに合わすため追加)
- Function Layer
[_FUNC] = LAYOUT_62_ansi_2space( \ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, \ KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PSCR, KC_TRNS, KC_BRK, KC_DEL, \ KC_LCTL, KC_YSMAC , KC_YSWIN, KC_YSUSJP, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, KC_INS, KC_DEL, KC_ENT, \ KC_LSFT, RGB_TOG, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ MO(_FUNC), KC_TRNS, KC_TRNS, KC_EISU, KC_KANA2, KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
- モード設定
- KC_YSMAC , KC_YSWIN, KC_YSUSJPを追加しました
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_EISU: if (record->event.pressed) { // NICOLA親指シフト //yseko if (ys_macwin == 0){ send_string(SS_TAP(X_MHEN)); // Win send_string(SS_TAP(X_LANG2)); // Mac }else if(ys_macwin == 1){ send_string(SS_LCTL("9")); // Win } nicola_off(); // NICOLA親指シフト rgblight_sethsv_at(170,255,40, RGBLED_NUM-1); // the last LED = BLUE (NICOLA off) } return false; break; case KC_KANA2: if (record->event.pressed) { // NICOLA親指シフト if (ys_macwin == 0){ send_string(SS_TAP(X_HENK)); // Win send_string(SS_TAP(X_LANG1)); // Mac }else if(ys_macwin == 1){ send_string(SS_LCTL("0")); // Win } nicola_on(); // NICOLA親指シフト rgblight_sethsv_at(85,255,40, RGBLED_NUM-1); // the last LED = GREEN (NICOLA on) } return false; break; //shiguが追加 case KC_YSMAC: ys_macwin = 0; ys_Us_Jis = 0; return false; break; case KC_YSWIN: ys_macwin = 1; ys_Us_Jis = 0; return false; break; case KC_YSUSJP: ys_Us_Jis = 1; return false; break; }
- JIS、USごとに変えるキー
case KC_LSHIFT: case KC_RSHIFT: case JU_2: case JU_6: case JU_7: case JU_8: case JU_9: case JU_0: case JU_MINS: case JU_EQL: case JU_LBRC: case JU_RBRC: case JU_BSLS: case JU_SCLN: case JU_QUOT: case JU_GRV:
- 例:「キー2」は下記のようにしました
case JU_2: if(ys_Us_Jis == 1){ if (record->event.pressed) { if (lshift || rshift) { //シフトキーが押されていれば jtu_a_pressed_shift[JU_A_2] = true; UNREG_SHIFT(); JTU_PRESS(LBRC); } else { //シフトキーが押されていない jtu_a_pressed_nshift[JU_A_2] = true; CLOSE_REG_SHIFT(); JTU_PRESS(2); } } else { if(jtu_a_pressed_shift[JU_A_2]) { jtu_a_pressed_shift[JU_A_2] = false; JTU_RELEASE(LBRC); CLOSE_UNREG_SHIFT(); } if(jtu_a_pressed_nshift[JU_A_2]) { jtu_a_pressed_nshift[JU_A_2] = false; JTU_RELEASE(2); } } } else { if (record->event.pressed) { if (lshift || rshift) { jtu_a_pressed_shift[JU_A_2] = true; CLOSE_UNREG_SHIFT(); JTU_PRESS(2); } else { jtu_a_pressed_nshift[JU_A_2] = true; CLOSE_REG_SHIFT(); JTU_PRESS(2); } } else { if(jtu_a_pressed_shift[JU_A_2]) { jtu_a_pressed_shift[JU_A_2] = false; JTU_RELEASE(2); } if(jtu_a_pressed_nshift[JU_A_2]) { jtu_a_pressed_nshift[JU_A_2] = false; JTU_RELEASE(2); } } } return false;
親指シフトを使わない時にキーボードから手を離さずIMEオンオフする方法
矢印キーの追加
キーボードに右下部分に設定
Function Layerを変更
[_FUNC] = LAYOUT_62_ansi_2space( \ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, \ KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PSCR, KC_TRNS, KC_BRK, KC_DEL, \ KC_LCTL, KC_YSMAC,KC_YSWIN,KC_YSUSJP,KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_INS, KC_DEL, KC_ENT, \ KC_LSFT, RGB_TOG, RGB_HUI, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, \ MO(_FUNC), KC_TRNS, KC_TRNS, KC_EISU, KC_KANA2, KC_GRV, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT )
QMK Toolboxでキーボードに書き込み
- キーボードの裏にあるスイッチ(PCB裏面のリセットボタン)を押しブートローダーモードにする
- Flachボタンを押す
これで完成
- 下矢印(↓)が反応しない
デバックモードにしてキーが入力されているか確認
- 反応していない
基板を確認したらハンダ忘れを発見
- できました(パチパチ)
キーボード組み立て(2024年5月15日)
ハンダ準備
キースイッチハンダ付け
完成