Skip to content

Commit

Permalink
Add Basics-of-keymap.rb_ja.md
Browse files Browse the repository at this point in the history
  • Loading branch information
alg0002 committed Dec 30, 2022
1 parent f616b81 commit 46bc5f3
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 1 deletion.
74 changes: 74 additions & 0 deletions Basics-of-keymap.rb_ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
## 重要なポイント

- keymap.rb のエンコーディングは基本的に "ASCII" ですが、マルチバイト文字がコメント行でのみ使用される場合に限り "BOM無しUTF-8" も有効です
- 言い換えれば、"BOM付きUTF-8"でエンコードされた keymap.rb の場合 PRK Firmware は機能しません
- もしあなたの keymap.rb がBOMを含むかどうかわからなければ、["BOM チェック" をGoogle検索](https://www.google.com/search?q=bom+%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF) してください

### 既知の問題

- PRK は、4 KB (4096 Bytes) 未満の keymap.rb のみ処理できます
- `#` で始まるコメント行を消すとサイズを小さくすることができます

## keymap.rb のシンプルな例

例えば、この例のキーボードは5行12列の「通常マトリクス」で構成されています。

他のマトリクスやダイレクトスキャンについては、 [[Keyscan matrix]] を参照してください。

### キーボードの初期化

```ruby
kbd = Keyboard.new
```

### GPIO ピンの初期化

```ruby
kbd.init_pins(
[ 1, 2, 3, 4, 5 ], # row0 row1 ... respectively
[ 6, 7, 8, 9, 29, 28, 27, 26, 22, 20, 23, 21 ] # col0 col1 ... respectively
)
```

### レイヤーの設定

```ruby
kbd.add_layer :default, %i(
KC_GRV KC_1 KC_2 KC_3 KC_4 KC_5 KC_6 KC_7 KC_8 KC_9 KC_0 KC_BSPC
KC_ESC KC_Q KC_W KC_E KC_R KC_T KC_Y KC_U KC_I KC_O KC_P KC_DEL
KC_TAB KC_A KC_S KC_D KC_F KC_G KC_H KC_J KC_K KC_L KC_SCLN KC_QUOT
KC_CAPS KC_Z KC_X KC_C KC_V KC_B KC_N KC_M KC_COMM KC_DOT KC_SLSH KC_RSFT
KC_LSFT KC_LCTL KC_LALT KC_LGUI LOWER KC_SPC KC_ENT RAISE KC_LEFT KC_DOWN KC_UP KC_RIGHT
)
kbd.add_layer :raise, %i(
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_GRV KC_EXLM KC_AT KC_HASH KC_DLR KC_PERC KC_CIRC KC_AMPR KC_ASTER KC_LPRN KC_RPRN KC_MINS
KC_TAB KC_LABK KC_LCBR KC_LBRC KC_LPRN KC_QUOT KC_LEFT KC_DOWN KC_UP KC_RIGHT KC_UNDS KC_PIPE
KC_LSFT KC_RABK KC_RCBR KC_RBRC KC_RPRN KC_DQUO KC_TILD KC_BSLS KC_COMMA KC_DOT KC_SLSH KC_RSFT
KC_LSFT KC_LCTL KC_LALT KC_LGUI LOWER KC_SPC KC_ENT RAISE KC_LEFT KC_DOWN KC_UP KC_RIGHT
)
kbd.add_layer :lower, %i(
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_ESC KC_1 KC_2 KC_3 KC_4 KC_5 KC_6 KC_7 KC_8 KC_9 KC_0 KC_MINS
KC_TAB KC_F2 KC_F10 KC_F12 KC_LPRN KC_QUOT KC_DOT KC_4 KC_5 KC_6 KC_PLUS KC_BSPC
KC_LSFT KC_RABK KC_RCBR KC_RBRC KC_RPRN KC_DQUO KC_0 KC_1 KC_2 KC_3 KC_SLSH KC_COMMA
KC_LSFT KC_LCTL KC_LALT KC_LGUI LOWER KC_SPC KC_ENT RAISE KC_LEFT KC_DOWN KC_UP KC_RIGHT
)

kbd.define_mode_key :RAISE, [ nil, :raise, nil, nil ]
kbd.define_mode_key :LOWER, [ nil, :lower, nil, nil ]

kbd.define_composite_key :CAP_A, %i(KC_A KC_RSFT)
```

### キーボードの開始

```ruby
kbd.start!
```

## 参照
- [[Keycodes]]
- [[Layers and mode key]]
- [[Composite key]]
- [issues/86](https://github.com/picoruby/prk_firmware/issues/86)
2 changes: 1 addition & 1 deletion _Sidebar.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
* Getting started
* [[Tutorial]] ([ja](Tutorial_ja))
* [[Basics of keymap.rb]]
* [[Basics of keymap.rb]] ([ja](Basics-of-keymap.rb_ja))
* [[Syntax checking of keymap.rb]]
* Keyboard features
* [[Keycodes]]
Expand Down

0 comments on commit 46bc5f3

Please sign in to comment.