Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
キーボードの世界/A world of keyboard
Search
akrolayer
April 02, 2019
Education
1
390
キーボードの世界/A world of keyboard
akrolayer
April 02, 2019
Tweet
Share
More Decks by akrolayer
See All by akrolayer
最近読んだ本の話
akrolayer
0
85
LTのモチベーション
akrolayer
1
540
よく使うキーって何?
akrolayer
1
150
史上最強の哲学入門の紹介
akrolayer
0
190
13歳からのアート思考の紹介 / art thinking from 13
akrolayer
0
160
老後貯金と今の幸せ / Hump saving and Now Hapiness
akrolayer
0
110
感情のカテゴライズ / Categorize of emotion
akrolayer
0
120
不安とは / What is Vague anxiety
akrolayer
0
190
LT説明会 / Introduce to LT
akrolayer
0
100
Other Decks in Education
See All in Education
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
240
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
570
Flinga
matleenalaakso
2
13k
Kindleストアで本を探すことの善悪 #Izumo Developers' Guild 第1回 LT大会
totodo713
0
130
Lisätty todellisuus opetuksessa
matleenalaakso
1
2.3k
【COPILOT無料セミナー】エンゲージメントと自律性の高いプロジェクト型人材育成に向けて~プロジェクト・ベースド・ラーニング(PBL)という選択肢~
copilot
PRO
0
130
小学生にスクラムを試してみた件~中学受検までの100週間の舞台裏~
ukky86
0
340
世界のオープンソースロボットたち #1
shiba_8ro
0
140
20240810_ワンオペ社内勉強会のノウハウ
ponponmikankan
2
880
Tableau トレーニング【株式会社ニジボックス】
nbkouhou
0
19k
Zoom-ohjeet
matleenalaakso
7
7.2k
HTML5 and the Open Web Platform - Lecture 3 - Web Technologies (1019888BNR)
signer
PRO
1
2.6k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
169
14k
BBQ
matthewcrist
85
9.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Documentation Writing (for coders)
carmenintech
65
4.4k
Bash Introduction
62gerente
608
210k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Adopting Sorbet at Scale
ufuk
73
9.1k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Transcript
あなたの知らない キーボードの世界 サポーターズcolab
What are you like? • 岡本 怜也 • 大企業メーカの子会社勤務 ◦
機器操作のGUIを作ってます(C#, .NET) • 趣味:TCG, ボードゲーム, e-sports観戦, PCゲーム
最初にクイズ • Q. なんでキーボードのキー配列は斜めなの?
最初にクイズ • Q. なんでキーボードのキー配列は斜めなの? ◦ A. タイプライターの物理的な制約の名残
最初にクイズ • Q. アプリケーションキーの動作は?
最初にクイズ • Q. アプリケーションキーの動作は? ◦ A. マウスの右クリック時メニューが出る
最初にクイズ • ゲーミングキーボードに多く搭載される、Windowsキー 無効化機能。この機能がないために起こった事件とは?
最初にクイズ • ゲーミングキーボードに多く搭載される、Windowsキー 無効化機能。この機能がないために起こった事件とは? ◦ A. ゲーム大会中にWindowsキーを押して操作不能に なり負けた選手がいる
なぜキーボードの話? • デスクワーカーが一日で最も長く触れているものは?
なぜキーボードの話? • デスクワーカーが一日で最も長く触れているものは? ◦ マウスとキーボード ▪ エンジニアならキーボードのほうが多い? • 今回はキーボードについて
◦ マウスについてはまたの機会に ▪ かぶせ持ち、つかみ持ち、つまみ持ち
目次 • キーボードの入力方式 • 自作キーボード • 自作キーバインド設定
US配列とJIS配列の違い • 違う形のキー、USにはないキーがあり、記号の位置が違う ◦ Enter、BackSpace、半角全角、変換無変換 • US配列のほうが、小指でカバーする部分が1列少ないので、 小指が痛くならない ◦
「:」と「;」が同じ場所、括弧の開閉が同じ場所 ▪ プログラムを書くときに合理的で楽
キーボードに求められること • キーの押し心地(個人で好みが出るところ) ◦ 押す重さ ◦ 底打ちの感覚 ◦ キーの大きさ ◦
音 • 機能 ◦ 二重入力の少なさ、nキー同時押し対応 ◦ 印字が消えないこと ◦ 安定して入力できること、長く使えること
キーボードの入力方式 • メンブレン方式 ◦ 最も普及している ◦ キーとスイッチの間に回路シートが入っている ◦ 押し返す機構はシリコンキャップ ◦
押し込んだらペコペコした反発、ぐにゃりとした底打ち
キーボードの入力方式 • パンタグラフ構造 ◦ ノートパソコンでよく使われる ◦ メンブレンと似ているが、まわりにX字型の支持構造 があることでしっかりとした打ち心地と薄型化が可能 ◦
MacBookはバタフライキーボード ▪ V字型の支持構造 ▪ とても薄くタイピングが軽いが、耐久性が低く(埃 に弱い)、反発がないため好みが分かれる
メンブレン方式とパンタグラフ構造 • どちらも安いなりに機能面が弱い ◦ nキー同時押しに対応していないことが多い ◦ 高速でタイピングすると入力中にキーボードがたわん だり動いたりして入力が安定しない ◦ 長く使えない(故障すると全取り換えになる)
• 価格は1万円を超えることはほぼない
高価なキーボード (メカニカル、静電容量)
なぜ高価なのか • 1つ1つのキーに対してスイッチがついている • キーボード自体が重くて丈夫、耐久性が高い • ブランド
• 高価であるけれども、それでも選ぶ理由がある ◦ 先ほど述べた求められる機能は絶対持っている
キーボードの入力方式 • 静電容量無接点方式 ◦ キー押下時の電気容量の変化でキー押下を感知 ◦ 接点がないため、滑らかなキータッチ・軽い押し心地 ◦ 音が静か、特徴的
◦ キーボード自体が重く、入力中に動かない ◦ 日本では東プレのみ採用 ▪ 15000~30000円くらい
キーボードの入力方式 • メカニカル方式 ◦ いわゆるゲーミングキーボードはほぼこれ ◦ 採用しているキースイッチによって、押し心地が大きく 異なる ▪ Cherry製MXシリーズ、Kailh製シリーズ、
Gateron製シリーズ、独自スイッチ...... ◦ 値段は8000~30000円前後 ▪ 有名なメーカをおすすめ • 良くないものもあるので......
メカニカルのキースイッチ • 最もメジャーなのはCherry製MXスイッチ ◦ 黒軸:スイッチ感は無くストレートな押し込み(linear) ◦ 茶軸:軽く素直な押し込み感と、底打ち前にカチリと 軽やかなスイッチ感がある(tactile) ◦ 赤軸:スイッチ感はなく黒軸を軽くしたもの(linear)
◦ 青軸:茶軸に明確なスイッチ感を加えた(clicky) • 押下圧:黒軸>青軸>赤軸≒茶軸 • クリック音の大きさ:青軸>茶軸>赤軸>黒軸
メカニカルのキースイッチ • 家電量販店、PCショップのゲーミングキーボードコーナー に押し心地を試せる場所があるので、実際に押して好み で選ぶ • 他にもKailh 銀軸、Gateron 白軸といったものや、ゲーミン
グであればオムロン独自軸などメーカ独自も存在
ゲーミングとは? • PC:CPU,GPU, メモリなど高スペックなPC • ヘッドセット ◦ 長時間使用でも快適、サラウンド、普段使いに不向き
• キーボード、マウス、モニタ ◦ 長時間使用でも快適、応答速度が速い、 光らせることができる • アイウェア、チェアなどもある
自作キーボード
自作キーボードの概要 • 基盤やケース、プログラムなどどこからでも自作できる ◦ 市販されているキットの基盤にダイオードやキース イッチ、マイコンをはんだ付け ▪ 自分で基盤の形を考え、キット制作すると猛者 •
「自作キーボード キット」で検索すると色々出てくる ◦ キースイッチ、キーキャップ、ケーブルが付属していな いことが殆ど(全部でだいたい20000円前後) • かっこいい、楽しい、電子工作入門
キーボードキット • Helix,Corne Cherry, Zinc, ErgoDash, Mintなど ◦ キーの数はキットによって異なる
• 注意点 ◦ MicroBケーブル、4軸か3軸ジャックケーブルが接続 のために必要(別売り) ◦ キースイッチ、キーキャップは別売りのことが多い ▪ キット、キースイッチ、キーキャップ、ケーブル全部 で大体20000円前後
なぜ自作する必要があるのか • 自分で決められる ◦ キーの押し心地、触り心地(スイッチは100種類以上) ◦ キーマッピング、キーの数 • キー自体の配置を変える
◦ 左右分離、格子状配列、立体的構造...... • 既存のキーボードの不満点を解決できる ◦ 親指のもったいなさ、小指の酷使
なぜ自作する必要があるのか • レイヤーを用いて自分の好きな入力方法ができる ◦ 1つのキーに対して、レイヤー1、レイヤー2、 レイヤー3、......で異なるキー設定ができる ▪ 可能性は無限 ▪ Ex.
レイヤー1ではよく使うキー、レイヤー2では 数字、レイヤー3では特殊キーを割り当てるなど
自作キーボード作成手順 1. (キット買ったとして)ダイオード、Pro Micro、(LED)、キー スイッチをはんだ付け 2. Pro Microにqmk_firmwareを書き込む
3. キーキャップをはめる 動作確認は各手順ごとに行ってください
qmk_firmware • オープンソースの自作キーボードのためのファームウェ ア ◦ 中身はC言語 • キーマップ設定を変更して、ビルドして書き込む ◦
少し環境構築が必要
キーマッピング(論理配列) • 現在最も普及しているのはQwerty配列(1882) ◦ 効率悪い • ローマ字は、母音を左手ホームポジションにすれば楽? ◦ 様々な先駆者がいる(英語も)
◦ 英語ローマ字:DvorakJP、Eucalyn、colmak...etc. ◦ ローマ字入力:けいならべ...etc. ◦ かな入力:親指シフト(Nicola)、月、飛鳥、新下駄、 蜂蜜小梅、薙刀式...etc. ◦ 自作キーボードは、簡単に自分で論理配列を設定可
興味を持った方は • 自作キーボード専門店「遊舎工房」 ◦ 元々はwebサイトだったが、実店舗を出店(秋葉原) ▪ パーツ取り扱いに加えて、2時間500円のDIYス ペースに必要な工具が全部揃いる ▪ わからないことは店員さんに聞くことができる
その先へ...... • 基盤を設計して業者に依頼 • 対応しないスイッチを削って装着 • キーキャップを3Dプリンタで印刷(金属製、クリア柄など)
• 設計したらキット販売できるかも?
キーバインド設定
自作キーボードまでは...... • 自作キーボードまでは手が出せないが、不満点を解決し たかった私が行った方法 ◦ 配列のつらさをキーマッピングで解決
JIS配列の不満 • 変換キー、無変換キー、カタカナひらがなキー ◦ 押しやすい位置にあるが、使わない ▪ これらのキーをトリガーでキーバインドが便利そう ▪ スペースキーが短いとちょうど親指の位置、 長いと難しいかも
• 半角全角キ-が遠い
JIS・US配列共通の不満 • BackSpace, Delete, カーソルキーとその上の島 ◦ 遠い! • 記号入力、Enterの小指酷使
◦ 痛い、つらい • 述べた不満を解決していきます
キーバインド設定の動機 • 先ほどの不満を解決したい ◦ キーボードを自作までは...... ▪ キーバインド設定がデフォルトだったり、専用のソ フトで全てのキー設定を変更可能なものがある ▪ フリーソフトで設定できれば......?
フリーソフトでキーマッピング変更とキーバインド設定
用いるソフト • Windowsは「Change Key」+「AutoHotKey」 ◦ Change Keyは直接的な商用利用のみ不可 ◦ AutoHotKeyはパブリックドメイン ▪
私の業務はWindowsなので、こちらは私が やっている設定も紹介します • MacはKarabiner-Elements (Sierra以前はKarabiner) ◦ Mac持ってないのでKarabiner-Elementsの 紹介のみとします
AutoHotKey • スクリプトを書くことで、キーバインドを設定できる ◦ 文法はかなり簡単(for, loop, sleepなどが使える) • 簡単なGUIも作成でき、コンパイルすると単独で実行可能
◦ 簡単なツールならこれだけで作れる • キー設定だけでなく、マウス移動、クリックも設定できる ◦ 押しっぱなし、連打、指定時間押下などもできる ▪ 紹介する内容以外も実装したいならwikiを参考し てください
AutoHotKey導入 • サイトからダウンロード & インストール ◦ 英語表記だが、難しいことはほとんどない ▪ 途中で出てくる「Enable drag
& drop onto script」 にチェックを入れると、スクリプトファイルに直接ド ラッグ&ドロップできるようになる • .ahkファイルに関連付けされ、右クリックメニューに追加 ▪ Run Script(実行) ▪ Compile Script(実行ファイル化) ▪ Edit Script(テキストエディタが開く)
カーソル移動設定 • 変換キーをトリガーにして、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
あれ?動かない • Returnを書いてない ◦ 反応した行から次のReturnまでを実行する ◦ 最低でもファイルの最後にReturnを書く • キーボードドライバの仕様などにより、キー入力
イベントが取得できない場合がある ◦ キーボードで、使ってないキーがあった ◦ ScrollLock, Pause/Break ◦ 無変換キーにこのキーを割り当てればよいのでは
余談 • ScrollLock, Pause Breakキーってなに?
余談 • ScrollLock, Pause Breakキーってなに? ◦ ScrollLock:ONになっている状態だと、表計算ソフトで 上下キーを押すとセルではなく画面がスクロールする ◦
Pause Breakキー:BIOSによる画面表示を止める ▪ 19世紀に導入された電信の回路を切断するキー ▪ 独自の操作を割り当てているソフトウェアもある
Change key • Windowsはレジストリを書き換えることでキー設定変更可 ◦ ダウンロードし、実行すると下の画面 ◦ 変更したいキーをクリックして、開いた画面から 変更後のキーをクリックして、登録、再起動後完了 ▪
管理者権限で起動してください
Change keyによる割り当て後 • CapsLockはCtrl、無変換キーは半角全角、変換キーは ScrollLock、カタカナひらがなキーはBackSpace ◦ ScrollLockをキーバインドのトリガーとした
カーソル移動設定 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}
マウスクリックとエンター 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でクリック と離す動作を指定
マウス移動 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があると相対座標 • 細かい移動だけでなく、大きな移動も設定すると便利
他には • 他にもいろいろなことができるので、調べてみてください ◦ キーを無効にする ▪ 割り当てるキーは複数でもいいので、Alt+F4を 他のバインドに割り当てたりとか ◦ 外部プログラムを起動する
◦ スクリプトが有効になるウィンドウを指定 ◦ ウィンドウ関連コマンド ▪ etc...
Karabiner-Elements • 公式サイトからKarabiner-Elementsのインストーラを ダウンロード、インストール ◦ 設定は~/.config/karabiner/karabiner. jsonに保存 • 直接変更してもよいが、
~/.config/karabiner/assets/complex_modificationsディレ クトリに自分好みの設定を記述したJSONファイルを保存 そこから設定画面の「Complex Modifications - Add rule」 するのが簡単
主な機能 • 書式はJSON • ルールを変更すると、設定で削除して新たに適用する必 要がある
主な機能 • Simple Modificationsでは、キーマッピングが変更できる ◦ From_keyからTo_keyされたものに変更される • Complex Modificationsでは、公開されているキーバインド
の設定をインポートできる(Emacs, vscode, ...etc.) ◦ Add rule→Import more rules...から項目を選ぶ • 独自設定できる
{"description": "control-pageupをcontrol-shift-tabに変換", "manipulators": [ {"type": "basic", "from": { "key_code": "page_up",
"modifiers": { "mandatory": [ "control" ] } }, "to": [{ "key_code": "tab", "modifiers": [ "control", "shift" ] }] } ] } 例:キーバインド変換
まとめ キーボードの不満を解決する方法はあります! 自分で自分に合ったキーボード・設定を見つけましょう!