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
320
あなたの知らないキーボードの世界 / A world of keyboard 2
akrolayer
September 17, 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 How-to & DIY
See All in How-to & DIY
JAWS-UG山梨第0回 AWSのユーザーコミュニティ支援
awsjcpm
0
110
How to Hire a Driver for Long Distance Travel?
greaterservice
0
110
リアル登壇だから気をつけたい「マイクの使い方」のコツ
shirayanagiryuji
0
180
コロナ後の世界メイカーフェア事情 高須正和@Nico-Tech Shenzhen #KMMF2024 #KariyaMMF2024
takasumasakazu
0
250
[AWS Expert Online for JAWS-UG] Amazon CloudWatch で できる n 個のこと
awsjcpm
0
140
Earthquake and Kominka
ramtop
0
140
miiboとamiibo繋げてみた。 #miibo #amiibo #iotlt
n0bisuke2
1
270
安全に失敗するための手遊び-未定義動作を引き出そう-
zilmina
0
450
LT(Lightning Talk)のドキドキ感を共有しながら 応援してくれるBotを作ってみた!
scbc1167
0
300
[너구리랑! 회고 밋업 2023] GTD & PARA -머릿속이 복잡하던 일상에 적용한 정리법 // 토르 님
develop_neoguri
1
310
【バスケ】ボックススコアを用いたオールインワンメトリクス作成手続き
rnsr0371
0
430
元SREのCREが伝えたい、Mackerelをもっと活用するための実践Tips集 / Mackerel Drink Up #11 do-su-0805
dosu0805
0
230
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Scaling GitHub
holman
458
140k
Code Review Best Practice
trishagee
64
17k
Practical Orchestrator
shlominoach
186
10k
Visualization
eitanlees
145
15k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
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" ] }] } ] } 例:キーバインド変換
まとめ キーボードの不満を解決する方法はあります! 自分で自分に合ったキーボード・設定を見つけましょう!