キーボードの世界/A world of keyboard

A430184e6133a56ece24c30df869f115?s=47 akrolayer
April 02, 2019

キーボードの世界/A world of keyboard

A430184e6133a56ece24c30df869f115?s=128

akrolayer

April 02, 2019
Tweet

Transcript

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


  2. What are you like?
 • 岡本 怜也
 
 • 大企業メーカの子会社勤務
 ◦

    機器操作のGUIを作ってます(C#, .NET)
 
 • 趣味:TCG, ボードゲーム, e-sports観戦, PCゲーム
 

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


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


  5. 最初にクイズ
 • Q. アプリケーションキーの動作は?


  6. 最初にクイズ
 • Q. アプリケーションキーの動作は?
 ◦ A. マウスの右クリック時メニューが出る


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


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


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


  10. なぜキーボードの話?
 • デスクワーカーが一日で最も長く触れているものは?
 ◦ マウスとキーボード
 ▪ エンジニアならキーボードのほうが多い?
 
 • 今回はキーボードについて


    ◦ マウスについてはまたの機会に
 ▪ かぶせ持ち、つかみ持ち、つまみ持ち

  11. 目次
 • キーボードの入力方式
 
 • 自作キーボード
 
 • 自作キーバインド設定


  12. US配列とJIS配列の違い
 • 違う形のキー、USにはないキーがあり、記号の位置が違う
 ◦ Enter、BackSpace、半角全角、変換無変換
 
 • US配列のほうが、小指でカバーする部分が1列少ないので、 小指が痛くならない
 ◦

    「:」と「;」が同じ場所、括弧の開閉が同じ場所
 ▪ プログラムを書くときに合理的で楽

  13. キーボードに求められること
 • キーの押し心地(個人で好みが出るところ)
 ◦ 押す重さ
 ◦ 底打ちの感覚
 ◦ キーの大きさ
 ◦

    音
 
 • 機能
 ◦ 二重入力の少なさ、nキー同時押し対応
 ◦ 印字が消えないこと
 ◦ 安定して入力できること、長く使えること

  14. キーボードの入力方式
 • メンブレン方式
 ◦ 最も普及している
 ◦ キーとスイッチの間に回路シートが入っている
 ◦ 押し返す機構はシリコンキャップ
 ◦

    押し込んだらペコペコした反発、ぐにゃりとした底打ち
 
 

  15. キーボードの入力方式
 • パンタグラフ構造
 ◦ ノートパソコンでよく使われる
 ◦ メンブレンと似ているが、まわりにX字型の支持構造 があることでしっかりとした打ち心地と薄型化が可能
 
 ◦

    MacBookはバタフライキーボード
 ▪ V字型の支持構造
 ▪ とても薄くタイピングが軽いが、耐久性が低く(埃 に弱い)、反発がないため好みが分かれる
 

  16. メンブレン方式とパンタグラフ構造
 • どちらも安いなりに機能面が弱い
 ◦ nキー同時押しに対応していないことが多い
 ◦ 高速でタイピングすると入力中にキーボードがたわん だり動いたりして入力が安定しない
 ◦ 長く使えない(故障すると全取り換えになる)


    
 • 価格は1万円を超えることはほぼない

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


  18. なぜ高価なのか
 • 1つ1つのキーに対してスイッチがついている
 
 • キーボード自体が重くて丈夫、耐久性が高い
 
 • ブランド
 


    • 高価であるけれども、それでも選ぶ理由がある
 ◦ 先ほど述べた求められる機能は絶対持っている

  19. キーボードの入力方式
 • 静電容量無接点方式
 ◦ キー押下時の電気容量の変化でキー押下を感知
 ◦ 接点がないため、滑らかなキータッチ・軽い押し心地
 
 ◦ 音が静か、特徴的


    ◦ キーボード自体が重く、入力中に動かない
 ◦ 日本では東プレのみ採用
 ▪ 15000~30000円くらい
 
 

  20. キーボードの入力方式
 • メカニカル方式
 ◦ いわゆるゲーミングキーボードはほぼこれ
 ◦ 採用しているキースイッチによって、押し心地が大きく 異なる
 ▪ Cherry製MXシリーズ、Kailh製シリーズ、


    Gateron製シリーズ、独自スイッチ......
 
 ◦ 値段は8000~30000円前後
 ▪ 有名なメーカをおすすめ
 • 良くないものもあるので......

  21. メカニカルのキースイッチ
 • 最もメジャーなのはCherry製MXスイッチ
 ◦ 黒軸:スイッチ感は無くストレートな押し込み(linear)
 ◦ 茶軸:軽く素直な押し込み感と、底打ち前にカチリと
   軽やかなスイッチ感がある(tactile)
 ◦ 赤軸:スイッチ感はなく黒軸を軽くしたもの(linear)


    ◦ 青軸:茶軸に明確なスイッチ感を加えた(clicky)
 
 • 押下圧:黒軸>青軸>赤軸≒茶軸
 • クリック音の大きさ:青軸>茶軸>赤軸>黒軸
 

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

    グであればオムロン独自軸などメーカ独自も存在

  23. ゲーミングとは?
 • PC:CPU,GPU, メモリなど高スペックなPC
 
 • ヘッドセット
 ◦ 長時間使用でも快適、サラウンド、普段使いに不向き
 


    • キーボード、マウス、モニタ
 ◦ 長時間使用でも快適、応答速度が速い、
 光らせることができる
 
 • アイウェア、チェアなどもある

  24. 自作キーボード


  25. 自作キーボードの概要
 • 基盤やケース、プログラムなどどこからでも自作できる
 ◦ 市販されているキットの基盤にダイオードやキース イッチ、マイコンをはんだ付け
 ▪ 自分で基盤の形を考え、キット制作すると猛者
 
 •

    「自作キーボード キット」で検索すると色々出てくる
 ◦ キースイッチ、キーキャップ、ケーブルが付属していな いことが殆ど(全部でだいたい20000円前後)
 
 • かっこいい、楽しい、電子工作入門

  26. キーボードキット
 • Helix,Corne Cherry, Zinc, ErgoDash, Mintなど
 ◦ キーの数はキットによって異なる
 


    • 注意点
 ◦ MicroBケーブル、4軸か3軸ジャックケーブルが接続 のために必要(別売り)
 ◦ キースイッチ、キーキャップは別売りのことが多い
 ▪ キット、キースイッチ、キーキャップ、ケーブル全部 で大体20000円前後

  27. なぜ自作する必要があるのか
 • 自分で決められる
 ◦ キーの押し心地、触り心地(スイッチは100種類以上)
 ◦ キーマッピング、キーの数
 
 • キー自体の配置を変える


    ◦ 左右分離、格子状配列、立体的構造......
 
 • 既存のキーボードの不満点を解決できる
 ◦ 親指のもったいなさ、小指の酷使

  28. なぜ自作する必要があるのか
 • レイヤーを用いて自分の好きな入力方法ができる
 ◦ 1つのキーに対して、レイヤー1、レイヤー2、
 レイヤー3、......で異なるキー設定ができる
 ▪ 可能性は無限
 ▪ Ex.

    レイヤー1ではよく使うキー、レイヤー2では
 数字、レイヤー3では特殊キーを割り当てるなど
 

  29. 自作キーボード作成手順
 1. (キット買ったとして)ダイオード、Pro Micro、(LED)、キー スイッチをはんだ付け
 
 2. Pro Microにqmk_firmwareを書き込む
 


    3. キーキャップをはめる
 
 動作確認は各手順ごとに行ってください

  30. qmk_firmware
 • オープンソースの自作キーボードのためのファームウェ ア
 ◦ 中身はC言語
 
 • キーマップ設定を変更して、ビルドして書き込む
 ◦

    少し環境構築が必要

  31. キーマッピング(論理配列)
 • 現在最も普及しているのはQwerty配列(1882)
 ◦ 効率悪い
 
 • ローマ字は、母音を左手ホームポジションにすれば楽?
 ◦ 様々な先駆者がいる(英語も)


    ◦ 英語ローマ字:DvorakJP、Eucalyn、colmak...etc.
 ◦ ローマ字入力:けいならべ...etc.
 ◦ かな入力:親指シフト(Nicola)、月、飛鳥、新下駄、
 蜂蜜小梅、薙刀式...etc.
 ◦ 自作キーボードは、簡単に自分で論理配列を設定可

  32. 興味を持った方は
 • 自作キーボード専門店「遊舎工房」
 ◦ 元々はwebサイトだったが、実店舗を出店(秋葉原)
 ▪ パーツ取り扱いに加えて、2時間500円のDIYス ペースに必要な工具が全部揃いる
 ▪ わからないことは店員さんに聞くことができる


  33. その先へ......
 • 基盤を設計して業者に依頼
 
 • 対応しないスイッチを削って装着
 
 • キーキャップを3Dプリンタで印刷(金属製、クリア柄など)
 


    • 設計したらキット販売できるかも?

  34. キーバインド設定


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


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


    
 • 半角全角キ-が遠い
 

  37. JIS・US配列共通の不満
 • BackSpace, Delete, カーソルキーとその上の島
 ◦ 遠い!
 
 • 記号入力、Enterの小指酷使


    ◦ 痛い、つらい
 
 • 述べた不満を解決していきます

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


    
  
 
 フリーソフトでキーマッピング変更とキーバインド設定
   

  39. 用いるソフト
 • Windowsは「Change Key」+「AutoHotKey」
 ◦ Change Keyは直接的な商用利用のみ不可
 ◦ AutoHotKeyはパブリックドメイン
 ▪

    私の業務はWindowsなので、こちらは私が
 やっている設定も紹介します
 
 • MacはKarabiner-Elements (Sierra以前はKarabiner)
 ◦ Mac持ってないのでKarabiner-Elementsの
 紹介のみとします

  40. AutoHotKey
 • スクリプトを書くことで、キーバインドを設定できる
 ◦ 文法はかなり簡単(for, loop, sleepなどが使える)
 
 • 簡単なGUIも作成でき、コンパイルすると単独で実行可能


    ◦ 簡単なツールならこれだけで作れる
 
 • キー設定だけでなく、マウス移動、クリックも設定できる
 ◦ 押しっぱなし、連打、指定時間押下などもできる
 ▪ 紹介する内容以外も実装したいならwikiを参考し てください
 

  41. AutoHotKey導入
 • サイトからダウンロード & インストール
 ◦ 英語表記だが、難しいことはほとんどない
 ▪ 途中で出てくる「Enable drag

    & drop onto script」 にチェックを入れると、スクリプトファイルに直接ド ラッグ&ドロップできるようになる
 
 • .ahkファイルに関連付けされ、右クリックメニューに追加
 ▪ Run Script(実行)
 ▪ Compile Script(実行ファイル化)
 ▪ Edit Script(テキストエディタが開く)
 

  42. カーソル移動設定
 
 
 
 
 
 • 変換キーをトリガーにして、ijklでカーソル上下左右移動
 ◦ キーを「I」のように名称指定できるが、sc079のように

    キーコードを直接指定することもできる
 ▪ 変換キーはJIS配列特有、キーコード指定のみ
 sc079 & l::Send, {Blind}{right}
 sc079 & j::Send, {Blind}{left}
 sc079 & i::Send, {Blind}{up}
 sc079 & k::Send, {Blind}{down}
 Return
 
 

  43. あれ?動かない
 • Returnを書いてない
 ◦ 反応した行から次のReturnまでを実行する
 ◦ 最低でもファイルの最後にReturnを書く
 
 • キーボードドライバの仕様などにより、キー入力


    イベントが取得できない場合がある 
 ◦ キーボードで、使ってないキーがあった
 ◦ ScrollLock, Pause/Break
 ◦ 無変換キーにこのキーを割り当てればよいのでは

  44. 余談
 • ScrollLock, Pause Breakキーってなに?


  45. 余談
 • ScrollLock, Pause Breakキーってなに?
 ◦ ScrollLock:ONになっている状態だと、表計算ソフトで
 上下キーを押すとセルではなく画面がスクロールする
 
 ◦

    Pause Breakキー:BIOSによる画面表示を止める
 ▪ 19世紀に導入された電信の回路を切断するキー
 ▪ 独自の操作を割り当てているソフトウェアもある

  46. Change key
 • Windowsはレジストリを書き換えることでキー設定変更可
 ◦ ダウンロードし、実行すると下の画面
 ◦ 変更したいキーをクリックして、開いた画面から
 変更後のキーをクリックして、登録、再起動後完了
 ▪

    管理者権限で起動してください

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


  48. カーソル移動設定
 ScrollLock & l::Send, {Blind}{right}
 ScrollLock & j::Send, {Blind}{left}
 ScrollLock

    & i::Send, {Blind}{up}
 ScrollLock & k::Send, {Blind}{down} • これで、変換キーを押しながら ijkl でカーソル上下左右 移動を実現
 
 
 • これで、変換キーを押しながらouで単語単位で移動
 ScrollLock & o::Send, {Blind}^{right}
 ScrollLock & u::Send, {Blind}^{left}
 
 

  49. マウスクリックとエンター
 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でクリック と離す動作を指定

  50. マウス移動
 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があると相対座標
 
 • 細かい移動だけでなく、大きな移動も設定すると便利

  51. 他には
 • 他にもいろいろなことができるので、調べてみてください
 ◦ キーを無効にする
 ▪ 割り当てるキーは複数でもいいので、Alt+F4を
 他のバインドに割り当てたりとか
 ◦ 外部プログラムを起動する


    ◦ スクリプトが有効になるウィンドウを指定
 ◦ ウィンドウ関連コマンド
 ▪ etc...

  52. Karabiner-Elements
 • 公式サイトからKarabiner-Elementsのインストーラを
 ダウンロード、インストール
 ◦ 設定は~/.config/karabiner/karabiner. jsonに保存
 
 • 直接変更してもよいが、

    ~/.config/karabiner/assets/complex_modificationsディレ クトリに自分好みの設定を記述したJSONファイルを保存 そこから設定画面の「Complex Modifications - Add rule」 するのが簡単

  53. 主な機能
 • 書式はJSON
 
 • ルールを変更すると、設定で削除して新たに適用する必 要がある


  54. 主な機能
 • Simple Modificationsでは、キーマッピングが変更できる
 ◦ From_keyからTo_keyされたものに変更される
 
 • Complex Modificationsでは、公開されているキーバインド

    の設定をインポートできる(Emacs, vscode, ...etc.)
 ◦ Add rule→Import more rules...から項目を選ぶ
 
 • 独自設定できる

  55. {"description": "control-pageupをcontrol-shift-tabに変換", "manipulators": [ {"type": "basic", "from": { "key_code": "page_up",

    "modifiers": { "mandatory": [ "control" ] } }, "to": [{ "key_code": "tab", "modifiers": [ "control", "shift" ] }] } ] } 例:キーバインド変換
  56. まとめ
   キーボードの不満を解決する方法はあります!
 自分で自分に合ったキーボード・設定を見つけましょう!