Slide 1

Slide 1 text

あなたの知らない
 キーボードの世界
 サポーターズcolab 


Slide 2

Slide 2 text

What are you like?
 ● 岡本 怜也
 
 ● 大企業メーカの子会社勤務
 ○ 機器操作のGUIを作ってます(C#, .NET)
 
 ● 趣味:TCG, ボードゲーム, e-sports観戦, PCゲーム
 


Slide 3

Slide 3 text

最初にクイズ
 ● Q. なんでキーボードのキー配列は斜めなの?
 


Slide 4

Slide 4 text

最初にクイズ
 ● Q. なんでキーボードのキー配列は斜めなの?
 ○ A. タイプライターの物理的な制約の名残


Slide 5

Slide 5 text

最初にクイズ
 ● ゲーミングキーボードに多く搭載される、Windowsキー
 無効化機能。この機能がないために起こったこととは?


Slide 6

Slide 6 text

最初にクイズ
 ● ゲーミングキーボードに多く搭載される、Windowsキー
 無効化機能。この機能がないために起こった事件とは?
 ○ A. ゲーム大会中にWindowsキーを押して操作不能に なり負けた選手がいる


Slide 7

Slide 7 text

なぜキーボードの話?
 ● デスクワーカーが一日で最も長く触れているものは?
 


Slide 8

Slide 8 text

なぜキーボードの話?
 ● デスクワーカーが一日で最も長く触れているものは?
 ○ マウスとキーボード
 ■ エンジニアならキーボードのほうが多い?
 
 ● 今回はキーボードについて
 ○ マウスについてはまたの機会に
 ■ かぶせ持ち、つかみ持ち、つまみ持ち


Slide 9

Slide 9 text

目次
 ● キーボードの入力方式
 
 ● 自作キーボードの概要
 
 ● 自作キーバインド設定


Slide 10

Slide 10 text

US配列とJIS配列の違い
 ● 違う形のキー、USにはないキーがあり、記号の位置が違う
 ○ Enter、BackSpace、半角全角、変換無変換
 
 ● US配列のほうが、小指でカバーする部分が1列少ないので、 小指が痛くならない
 ○ 「:」と「;」が同じ場所、括弧の開閉が同じ場所
 ■ プログラムを書くときに合理的で楽


Slide 11

Slide 11 text

キーボードに求められること
 ● キーの押し心地(個人で好みが出るところ)
 ○ 押す重さ
 ○ 底打ちの感覚
 ○ キーの大きさ
 ○ 音
 
 ● 機能
 ○ 二重入力の少なさ、nキー同時押し対応
 ○ 印字が消えないこと
 ○ 安定して入力できること、長く使えること


Slide 12

Slide 12 text

安価なキーボード
 (メンブレン、パンタグラフ)


Slide 13

Slide 13 text

キーボードの入力方式
 ● メンブレン方式
 ○ 最も普及している
 ○ キーとスイッチの間に回路シートが入っている
 ○ 押し返す機構はシリコンキャップ
 ○ 押し込んだらペコペコした反発、ぐにゃりとした底打ち
 
 


Slide 14

Slide 14 text

キーボードの入力方式
 ● パンタグラフ構造
 ○ ノートパソコンでよく使われる
 ○ メンブレンと似ているが、まわりにX字型の支持構造 があることでしっかりとした打ち心地と薄型化が可能
 
 ○ MacBookはバタフライキーボード
 ■ V字型の支持構造
 ■ とても薄くタイピングが軽いが、耐久性が低く(埃 に弱い)、反発がないため好みが分かれる
 


Slide 15

Slide 15 text

メンブレン方式とパンタグラフ構造
 ● どちらも安いなりに機能面が弱い
 ○ nキー同時押しに対応していないことが多い
 ○ 高速でタイピングすると入力中にキーボードがたわん だり動いたりして入力が安定しない
 ○ 長く使えない(故障すると全取り換えになる)
 
 ● 価格は1万円を超えることはほぼない
 
 ● メカメンブレンという新種


Slide 16

Slide 16 text

高価なキーボード
 (メカニカル、静電容量)


Slide 17

Slide 17 text

なぜ高価なのか
 ● 1つ1つのキーに対してスイッチがついている
 
 ● キーボード自体が重くて丈夫、耐久性が高い
 
 ● ブランド
 
 ● 高価であるけれども、それでも選ぶ理由がある
 ○ 先ほど述べた求められる機能は絶対持っている


Slide 18

Slide 18 text

キーボードの入力方式
 ● 静電容量無接点方式
 ○ キー押下時の電気容量の変化でキー押下を感知
 ○ 接点がないため、滑らかなキータッチ・軽い押し心地
 
 ○ 音が静か、特徴的
 ○ キーボード自体が重く、入力中に動かない
 ○ 日本では東プレのみ採用
 ■ 15000~30000円くらい
 
 


Slide 19

Slide 19 text

キーボードの入力方式
 ● メカニカル方式
 ○ いわゆるゲーミングキーボードはほぼこれ
 ○ 採用しているキースイッチによって、押し心地が大きく 異なる
 ■ Cherry製MXシリーズ、Kailh製シリーズ、
 Gateron製シリーズ、独自スイッチ、etc......
 
 ○ 値段は8000~30000円前後
 ■ 有名なメーカをおすすめ
 ● 良くないものもあるので......


Slide 20

Slide 20 text

メカニカルのキースイッチ
 ● 最もメジャーなのはCherry製MXスイッチ
 ○ 黒軸:スイッチ感は無くストレートな押し込み(linear)
 ○ 茶軸:軽く素直な押し込み感と、底打ち前にカチリと
   軽やかなスイッチ感がある(tactile)
 ○ 赤軸:スイッチ感はなく黒軸を軽くしたもの(linear)
 ○ 青軸:茶軸に明確なスイッチ感を加えた(clicky)
 
 ● 押下圧:黒軸>青軸>赤軸≒茶軸
 ● クリック音の大きさ:青軸>茶軸>赤軸>黒軸
 


Slide 21

Slide 21 text

メカニカルのキースイッチ
 ● 家電量販店、PCショップのゲーミングキーボードコーナー に押し心地を試せる場所があるので、実際に押して好み で選ぶ
 
 ● 他にもKailh 銀軸、Gateron 白軸といったものや、ゲーミン グであればオムロン独自軸などメーカ独自も存在


Slide 22

Slide 22 text

余談:ゲーミングとは?
 ● PC:CPU,GPU, メモリなど高スペックなPC
 
 ● ヘッドセット
 ○ 長時間使用でも快適、サラウンド、普段使いに不向き
 
 ● キーボード、マウス、モニタ
 ○ 長時間使用でも快適、応答速度が速い、
 光らせることができる
 
 ● アイウェア、チェアなどもある


Slide 23

Slide 23 text

自作キーボード


Slide 24

Slide 24 text

自作キーボードの概要
 ● 基盤やケース、プログラムなどどこからでも自作できる
 ○ 市販されているキットの基盤にダイオードやキース イッチ、マイコンをはんだ付け
 ■ 自分で基盤の形を考え、キット制作すると猛者
 
 ● 「自作キーボード キット」で検索すると色々出てくる
 ○ キースイッチ、キーキャップ、ケーブルが付属していな いことが殆ど
 
 ● かっこいい、楽しい、電子工作入門


Slide 25

Slide 25 text

キーボードキット
 ● Helix,Corne Cherry, Zinc, ErgoDash, Mintなど
 ○ キーの数はキットによって異なる
 
 ● 注意点
 ○ MicroBケーブル、4軸か3軸ジャックケーブルが接続 のために必要(別売り)
 ○ キースイッチ、キーキャップは別売りのことが多い
 ■ キット、キースイッチ、キーキャップ、ケーブル全部 で大体30000円前後


Slide 26

Slide 26 text

なぜ自作する必要があるのか
 ● 自分で決められる
 ○ キーの押し心地、触り心地(スイッチは100種類以上)
 ○ キーマッピング、キーの数
 ○ 特定のキーだけ軸を変える
 
 ● キー自体の配置を変える
 ○ 左右分離、格子状配列、立体的構造......
 
 ● 既存のキーボードの不満点を解決できる
 ○ 親指のもったいなさ、小指の酷使


Slide 27

Slide 27 text

なぜ自作する必要があるのか
 ● レイヤーを用いて自分の好きな入力方法ができる
 ○ 1つのキーに対して、レイヤー1、レイヤー2、
 レイヤー3、......で異なるキー設定ができる
 ■ 可能性は無限
 ■ Ex. レイヤー1ではよく使うキー、レイヤー2では
 数字、レイヤー3では特殊キーを割り当てるなど
 


Slide 28

Slide 28 text

自作キーボード作成手順
 1. (キット買ったとして)ダイオード、Pro Micro、(LED)、キー スイッチをはんだ付け
 
 2. Pro Microにqmk_firmwareを書き込む
 
 3. キーキャップをはめる
 
 動作確認は各手順ごとに行ってください


Slide 29

Slide 29 text

qmk_firmware
 ● オープンソースの自作キーボードのためのファームウェ ア
 ○ 中身はC言語
 
 ● キーマップ設定を変更して、ビルドして書き込む
 ○ 少し環境構築が必要


Slide 30

Slide 30 text

キーマッピング
 ● 現在最も普及しているのはQwerty配列(1882)
 ○ 効率悪い
 
 ● ローマ字は、母音を左手ホームポジションにすれば楽?
 ○ 様々な先駆者がいる(英語も)
 ○ 英語ローマ字:DvorakJP、Eucalyn、colmak...etc.
 ○ ローマ字入力:けいならべ...etc.
 ○ かな入力:親指シフト(Nicola)、月、飛鳥、新下駄、
 蜂蜜小梅、薙刀式...etc.
 ○ 自作キーボードは、簡単に自分で論理配列を設定可


Slide 31

Slide 31 text

興味を持った方は
 ● 自作キーボード専門店「遊舎工房」
 ○ 元々はwebサイトだったが、実店舗を出店(秋葉原)
 ■ パーツ取り扱いに加えて、2時間500円のDIYス ペースに必要な工具が全部揃いる
 ■ わからないことは店員さんに聞くことができる
 ■ 多くのキースイッチを試せる
 
 ● Discord, twitter,ほぼ週刊キーボードニュース
 ● 天下一キーボードわいわい会、ゆるキー、Tokyo Mechanical Keyboard Meetup 


Slide 32

Slide 32 text

その先へ......
 ● 基盤を設計して業者に依頼
 
 ● 対応しないスイッチを削って装着、分解して組み合わせる
 
 ● キーキャップを3Dプリンタで印刷(金属製、クリア柄など)
 
 ● 設計したらキット販売できるかも?


Slide 33

Slide 33 text

キーバインド設定


Slide 34

Slide 34 text

自作キーボードまでは......
 ● 自作キーボードまでは手が出せないが、不満点を解決し たかった私が行った方法
 ○ 配列のつらさをキーマッピングで解決


Slide 35

Slide 35 text

JIS配列の不満
 ● 変換キー、無変換キー、カタカナひらがなキー
 ○ 押しやすい位置にあるが、使わない
 ■ これらのキーをトリガーでキーバインドが便利そう
 ■ スペースキーが短いとちょうど親指の位置、
 長いと難しいかも
 
 ● 半角全角キ-が遠い
 


Slide 36

Slide 36 text

JIS・US配列共通の不満
 ● BackSpace, Delete, カーソルキーとその上の島
 ○ 遠い!
 
 ● 記号入力、Enterの小指酷使
 ○ 痛い、つらい
 
 ● 述べた不満を解決していきます


Slide 37

Slide 37 text

キーバインド設定の動機
 ● 先ほどの不満を解決したい
 ○ キーボードを自作までは......
 ■ キーバインド設定がデフォルトだったり、専用のソ フトで全てのキー設定を変更可能なものがある
 ■ フリーソフトで設定できれば......?
 
  
 
 フリーソフトでキーマッピング変更とキーバインド設定
   


Slide 38

Slide 38 text

用いるソフト
 ● Windowsは「Change Key」+「AutoHotKey」
 ○ 私の業務PCはWindowsなので、私が
 やっている設定も紹介します
 
 ● MacはKarabiner-Elements (Sierra以前はKarabiner)
 ○ Mac持ってないのでKarabiner-Elementsの
 紹介のみとします


Slide 39

Slide 39 text

AutoHotKey
 ● スクリプトを書くことで、キーバインドを設定できる
 ○ 文法はかなり簡単(for, loop, sleepなどが使える)
 
 ● 簡単なGUIも作成でき、コンパイルすると単独で実行可能
 ○ 簡単なツールならこれだけで作れる
 
 ● キー設定だけでなく、キー操作でマウス操作が設定可
 ○ 押しっぱなし、連打、指定時間押下などもできる
 ■ 紹介する内容以外も実装したいならwikiを参考し てください
 


Slide 40

Slide 40 text

AutoHotKey導入
 ● サイトからダウンロード & インストール
 ○ 英語表記だが、難しいことはほとんどない
 ■ 途中で出てくる「Enable drag & drop onto script」 にチェックを入れると、スクリプトファイルに直接ド ラッグ&ドロップで引数が入力可
 
 ● .ahkファイルに関連付けされ、右クリックメニューに追加
 ■ Run Script(実行)
 ■ Compile Script(実行ファイル化)
 ■ Edit Script(テキストエディタが開く)
 


Slide 41

Slide 41 text

キー操作置き換え
 ● a :: b
 ○ aを打つとbを打ったことになる
 
 ● ScrollLock & l :: Send, {Blind}^{Enter}
 ○ ScrollLockとlを押すとEnterを押したことに
 ■ Blindは一回操作したあと押下を明示的に離す
 
 ● Return
 ○ トリガーした文から最初のReturnまで実行
 ■ 最低一個無いとコンパイルできない
 


Slide 42

Slide 42 text

例
 ScrollLock & l::Send, {Blind}{right}
 ScrollLock & j::Send, {Blind}{left}
 ScrollLock & i::Send, {Blind}{up}
 ScrollLock & k::Send, {Blind}{down}
 Return
 
 ;;単語移動と行頭末尾移動
 ScrollLock & o::Send, {Blind}^{right}
 ScrollLock & u::Send, {Blind}^{left}
 Return


Slide 43

Slide 43 text

変換/無変換キーの有効活用
 ● 変換キーを他の操作へのトリガーに使えばよいのでは?
 ○ 変換/無変換キーはキーボードやドライバによっては AutoHotKeyが認識できないキーコードを送っている
 ■ 使わないキーを割り当てる
 ● ScrollLock, Pause Breakなど


Slide 44

Slide 44 text

余談
 ● ScrollLock, Pause Breakキーってなに?


Slide 45

Slide 45 text

余談
 ● ScrollLock, Pause Breakキーってなに?
 ○ ScrollLock:ONになっている状態だと、表計算ソフトで
 上下キーを押すとセルではなく画面がスクロールする
 
 ○ Pause Breakキー:BIOSによる画面表示を止める
 ■ 19世紀に導入された電信の回路を切断するキー
 ■ 独自の操作を割り当てているソフトウェアもある


Slide 46

Slide 46 text

Change key
 ● Windowsはレジストリを書き換えることでキー設定変更可
 ○ ダウンロードし、実行すると下の画面
 ○ 変更したいキーをクリックして、開いた画面から
 変更後のキーをクリックして、登録、再起動後完了
 ■ 管理者権限で起動してください


Slide 47

Slide 47 text

Change keyによる割り当て後
 ● CapsLockはCtrl、無変換キーは半角全角、変換キーは ScrollLock、カタカナひらがなキーはBackSpace
 ○ ScrollLockをキーバインドのトリガーとした


Slide 48

Slide 48 text

マウスクリックとエンター
 ScrollLock & Space::Send, {Blind}{Enter}
 
 ScrollLock & w::MouseClick,left,,,,,D
 ScrollLock & r::MouseClick,right,,,,,D
 ScrollLock & w Up::MouseClick,left,,,,,U
 ScrollLock & r Up::MouseClick,right,,,,,U
 ● wで左クリック、rで右クリック
 ○ Upでキーを離す動作を指定、マウスもDとUでクリック と離す動作を指定


Slide 49

Slide 49 text

マウス移動
 ScrollLock & s:: MouseMove, -11,0,0,R
 ScrollLock & f:: MouseMove, 11,0,0,R
 ScrollLock & e:: MouseMove, 0,-11,0,R
 ScrollLock & d:: MouseMove, 0,11,0,R
 ● MouseMoveの後ろの数字は、
 [X座標、Y座標、速度、R]
 ○ 速度は0~100、Rがあると相対座標
 
 ● 細かい移動だけでなく、大きな移動も設定すると便利


Slide 50

Slide 50 text

他には
 ● 他にもいろいろなことができるので、調べてみてください
 ○ キーを無効にする
 ■ 割り当てるキーは複数でもいいので、Alt+F4を
 他のバインドに割り当てたりとか
 ○ 外部プログラムを起動する
 ○ スクリプトが有効になるウィンドウを指定
 ○ ウィンドウ関連コマンド
 ■ etc...


Slide 51

Slide 51 text

Karabiner-Elements
 ● 公式サイトからKarabiner-Elementsのインストーラを
 ダウンロード、インストール
 ○ 設定は~/.config/karabiner/karabiner. jsonに保存
 
 ● 直接変更してもよいが、 ~/.config/karabiner/assets/complex_modificationsディレ クトリに自分好みの設定を記述したJSONファイルを保存 そこから設定画面の「Complex Modifications - Add rule」 するのが簡単


Slide 52

Slide 52 text

主な機能
 ● 書式はJSON
 
 ● Simple Modificationsでは、キーマッピングが変更できる
 ○ From_keyからTo_keyされたものに変更される
 
 ● Complex Modificationsでは、公開されているキーバインド の設定をインポートできる(Emacs, vscode, ...etc.)
 ○ Add rule→Import more rules...から項目を選ぶ
 
 ● 独自設定できる


Slide 53

Slide 53 text

{"description": "control-pageupをcontrol-shift-tabに変換", "manipulators": [ {"type": "basic", "from": { "key_code": "page_up", "modifiers": { "mandatory": [ "control" ] } }, "to": [{ "key_code": "tab", "modifiers": [ "control", "shift" ] }] } ] } 例:キーバインド変換

Slide 54

Slide 54 text

まとめ
   キーボードの不満を解決する方法はあります!
 自分で自分に合ったキーボード・設定を見つけましょう!