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 2
Search
akrolayer
September 17, 2019
How-to & DIY
0
340
あなたの知らないキーボードの世界 / A world of keyboard 2
akrolayer
September 17, 2019
Tweet
Share
More Decks by akrolayer
See All by akrolayer
最近読んだ本の話
akrolayer
0
110
LTのモチベーション
akrolayer
1
630
よく使うキーって何?
akrolayer
1
180
史上最強の哲学入門の紹介
akrolayer
0
220
13歳からのアート思考の紹介 / art thinking from 13
akrolayer
0
190
老後貯金と今の幸せ / Hump saving and Now Hapiness
akrolayer
0
130
感情のカテゴライズ / Categorize of emotion
akrolayer
0
140
不安とは / What is Vague anxiety
akrolayer
0
220
LT説明会 / Introduce to LT
akrolayer
0
120
Other Decks in How-to & DIY
See All in How-to & DIY
銀座線・半蔵門線から、ふりかえりカンファレンス2024現地会場への行き方
pokotyamu
0
260
バッドプラクティスから学ぶハワイアン航空で行く re:Invent
kentosuzuki
0
110
JAWS Days 2024 Keynote by Jeff Barr
awsjcpm
0
170
音に負けない!子どもが騒いでいる脇でも快適オンラインMTGの秘伝
kaitou
0
350
IoTと田中の距離 #iotlt #田中 #openai
n0bisuke2
1
340
How to Hire a Driver for Long Distance Travel?
greaterservice
0
150
Raspberry PiではじめるKiCad入門 / 20240226-rpi-jam
akkiesoft
1
4.2k
ラズパイカメラ向け ケーブル延長基板・ハウジングの開発
koheimasaki
PRO
1
190
How to get hundreds of organic backlinks through statistics link building
ronishehu
1
220
苦いビールを避ける冴えたやり方
watany
2
180
Snowflake WEST ユーザー会第2回「ハンズオンセッション」
mabokaneko0802
0
260
コロナ後の世界メイカーフェア事情 高須正和@Nico-Tech Shenzhen #KMMF2024 #KariyaMMF2024
takasumasakazu
0
290
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Unsuck your backbone
ammeep
669
57k
Rails Girls Zürich Keynote
gr2m
94
13k
Music & Morning Musume
bryan
46
6.4k
Writing Fast Ruby
sferik
628
61k
Gamification - CAS2011
davidbonilla
80
5.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Raft: Consensus for Rubyists
vanstee
137
6.8k
KATA
mclloyd
29
14k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
あなたの知らない キーボードの世界 サポーターズcolab
What are you like? • 岡本 怜也 • 大企業メーカの子会社勤務 ◦
機器操作のGUIを作ってます(C#, .NET) • 趣味:TCG, ボードゲーム, e-sports観戦, PCゲーム
最初にクイズ • 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製シリーズ、独自スイッチ、etc...... ◦ 値段は8000~30000円前後 ▪ 有名なメーカをおすすめ • 良くないものもあるので......
メカニカルのキースイッチ • 最もメジャーなのはCherry製MXスイッチ ◦ 黒軸:スイッチ感は無くストレートな押し込み(linear) ◦ 茶軸:軽く素直な押し込み感と、底打ち前にカチリと 軽やかなスイッチ感がある(tactile) ◦ 赤軸:スイッチ感はなく黒軸を軽くしたもの(linear)
◦ 青軸:茶軸に明確なスイッチ感を加えた(clicky) • 押下圧:黒軸>青軸>赤軸≒茶軸 • クリック音の大きさ:青軸>茶軸>赤軸>黒軸
メカニカルのキースイッチ • 家電量販店、PCショップのゲーミングキーボードコーナー に押し心地を試せる場所があるので、実際に押して好み で選ぶ • 他にもKailh 銀軸、Gateron 白軸といったものや、ゲーミン
グであればオムロン独自軸などメーカ独自も存在
余談:ゲーミングとは? • PC:CPU,GPU, メモリなど高スペックなPC • ヘッドセット ◦ 長時間使用でも快適、サラウンド、普段使いに不向き
• キーボード、マウス、モニタ ◦ 長時間使用でも快適、応答速度が速い、 光らせることができる • アイウェア、チェアなどもある
自作キーボード
自作キーボードの概要 • 基盤やケース、プログラムなどどこからでも自作できる ◦ 市販されているキットの基盤にダイオードやキース イッチ、マイコンをはんだ付け ▪ 自分で基盤の形を考え、キット制作すると猛者 •
「自作キーボード キット」で検索すると色々出てくる ◦ キースイッチ、キーキャップ、ケーブルが付属していな いことが殆ど • かっこいい、楽しい、電子工作入門
キーボードキット • Helix,Corne Cherry, Zinc, ErgoDash, Mintなど ◦ キーの数はキットによって異なる
• 注意点 ◦ MicroBケーブル、4軸か3軸ジャックケーブルが接続 のために必要(別売り) ◦ キースイッチ、キーキャップは別売りのことが多い ▪ キット、キースイッチ、キーキャップ、ケーブル全部 で大体30000円前後
なぜ自作する必要があるのか • 自分で決められる ◦ キーの押し心地、触り心地(スイッチは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ス ペースに必要な工具が全部揃いる ▪ わからないことは店員さんに聞くことができる
▪ 多くのキースイッチを試せる • Discord, twitter,ほぼ週刊キーボードニュース • 天下一キーボードわいわい会、ゆるキー、Tokyo Mechanical Keyboard Meetup
その先へ...... • 基盤を設計して業者に依頼 • 対応しないスイッチを削って装着、分解して組み合わせる • キーキャップを3Dプリンタで印刷(金属製、クリア柄など)
• 設計したらキット販売できるかも?
キーバインド設定
自作キーボードまでは...... • 自作キーボードまでは手が出せないが、不満点を解決し たかった私が行った方法 ◦ 配列のつらさをキーマッピングで解決
JIS配列の不満 • 変換キー、無変換キー、カタカナひらがなキー ◦ 押しやすい位置にあるが、使わない ▪ これらのキーをトリガーでキーバインドが便利そう ▪ スペースキーが短いとちょうど親指の位置、 長いと難しいかも
• 半角全角キ-が遠い
JIS・US配列共通の不満 • BackSpace, Delete, カーソルキーとその上の島 ◦ 遠い! • 記号入力、Enterの小指酷使
◦ 痛い、つらい • 述べた不満を解決していきます
キーバインド設定の動機 • 先ほどの不満を解決したい ◦ キーボードを自作までは...... ▪ キーバインド設定がデフォルトだったり、専用のソ フトで全てのキー設定を変更可能なものがある ▪ フリーソフトで設定できれば......?
フリーソフトでキーマッピング変更とキーバインド設定
用いるソフト • Windowsは「Change Key」+「AutoHotKey」 ◦ 私の業務PCは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(テキストエディタが開く)
キー操作置き換え • a :: b ◦ aを打つとbを打ったことになる • ScrollLock
& l :: Send, {Blind}^{Enter} ◦ ScrollLockとlを押すとEnterを押したことに ▪ Blindは一回操作したあと押下を明示的に離す • Return ◦ トリガーした文から最初のReturnまで実行 ▪ 最低一個無いとコンパイルできない
例 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
変換/無変換キーの有効活用 • 変換キーを他の操作へのトリガーに使えばよいのでは? ◦ 変換/無変換キーはキーボードやドライバによっては AutoHotKeyが認識できないキーコードを送っている ▪ 使わないキーを割り当てる • 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 & 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" ] }] } ] } 例:キーバインド変換
まとめ キーボードの不満を解決する方法はあります! 自分で自分に合ったキーボード・設定を見つけましょう!