Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

akrolayer
April 02, 2019

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

akrolayer

April 02, 2019
Tweet

More Decks by akrolayer

Other Decks in Education

Transcript

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

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

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

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

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

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

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


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

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


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

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


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

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

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

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


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

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


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

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


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

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

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

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


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

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

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

  14. カーソル移動設定
 
 
 
 
 
 • 変換キーをトリガーにして、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
 
 

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


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

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

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

  17. カーソル移動設定
 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}
 
 

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

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

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

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

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

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

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

    "modifiers": { "mandatory": [ "control" ] } }, "to": [{ "key_code": "tab", "modifiers": [ "control", "shift" ] }] } ] } 例:キーバインド変換