論理配列を求めて
はじめに
ノートパソコンの入力改善を目標にして,日々考える中でホームポジションが悪いのではと感じるようになった. この記事は論理配列に関するメモである.
困ったこと
論理配列を追い求める中で,親指の出番が少なすぎる!と感じた. 私はできるだけノートパソコンについているキーボードを使いたいが,JIS配列やUS配列などどれを見てもキーボードの一番下の行に大きいスペースキーが鎮座している. これでは親指に様々な機能を持たせられない.
ホームポジションをずらして解決
そこで,思い切ってホームポジションを1行上に,さらに右手をそこから2列右にずらそうと考えた. 以下に変更前と変更後の比較図を示す.
変更前
変更後(大西配列を採用)
配列に関しては言うまでもなく大多数の人が使用しているものとは異なっているが,注目していただきたいのは青色のキーである. ここで青色のキーはホームポジションの人差し指の位置を示している.このようにすることで,邪魔なスペースキーの制約を受けずに親指でさまざまなキーを押すことが可能になる.
配列の説明
ベースとなっているのは大西配列だが,そこからさらに効率化を目指して考察を重ねた.まずは以下の図のMOについて説明する.
これらのMO1,MO2というキーには押している間,レイヤーを移動するという機能がある. シフトキーを押している間はaがAと出力されるのと同じ要領で,MO1を押しながらsを押すと1が出力される. MO1を押しているときは図の各キートップの2段目に書かれているものが出力され,MO2を押しているときは3段目が出力される.
次にSpace, Enter, Shift, Backspaceの入力の仕方について説明する.
ホームポジションを1行上にずらしたことで,zxcv…の行を親指で押すキーに割り当てられるようになった.(本当は,この行がないキーボードを今後自作していきたいため,もう一行上にこれらのキーを配置していかなければならない…)
実際の見た目
実際の見た目はどうなのかというと,特に変なところはない. しいて言うなら,ホームポジションが変わったためにRとOにセロハンテープで突起を再現していることくらいであろうか.
コード詳細
配列を変更するのにさまざまな方法があるが私はAutoHotKeyというツール(以下AHK)を使用している.
Spaceを押したときに😎を出力させたいときは
sc039::Send("😎")
このようにする.(私は無駄のない無駄な機能が好きなのでこの1行もAHKに書いている😎)
↓これがMOを押していないときに関係するスクリプトである.
; layer0
; 1列目
sc002::q
sc003::l
sc004::u
sc005::,
sc006::.
sc009::f
sc00A::w
sc00B::r
sc00C::y
^::p
; 2列目
q::e
w::i
e::a
r::o
t::-
i::k
o::t
p::n
@::s
[::h
; 3列目
a::z
s::x
d::c
f::v
g::;
k::g
l::d
sc027::m
sc028::j
]::b
; 4列目
v::sc039
;m::Enter
sc033::Backspace
LShift::LCtrl
.::RShift
これ以上は長くなってしまうのでgithub上にあげる.