menu
書いてる野郎
orebike@gmail.com
同一キーを素早く2度押し(連打、ダブルプレス、ダブルタップ)した場合にどういう挙動をするかを設定する
追記
やってみてわかったが、このダブルプレス設定は通常のキーには現実的には設定できない。 「a」に一度押しなら「a」二度押しなら「b」という挙動を割り当てると、
意図としては、そうなのだが、実際にはキーは「aab」と送出される。
つまりこのダブルプレス設定は1回押しの入力をブロックしないのである。なので事実上この設定は単独押しでは動作しないキーにしか割り当てることができない。
ver 10.14.0
2度押しの挙動を設定するには DoublePressModifier
を使う。1つ目のパラメータで2度押しする対象のキーを決める。
次のパラメータで2度ではなく1度だけ押した場合の挙動を決定する。今回は何も発動してほしくないので無しを設定。
最後に2度押しした場合の挙動を設定する。今回は行頭に行ってからシフト押しで行末移動で1行選択にしている。
<autogen> --DoublePressModifier-- KeyCode::V, @begin KeyCode::VK_NONE @end @begin KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L @end </autogen>
ポイントは1回押しは普通に Shift に設定するところである。
<autogen>--DoublePressModifier-- KeyCode::SHIFT_L, KeyCode::SHIFT_L, KeyCode::VK_JIS_TOGGLE_EISUU_KANA</autogen>
キートップの表記通りの本来のキーはそのままに、二度押しで別のキーというカスタムをする場合は↑のような設定でOK。 しかし、本来のキーを別のキーに割り当てた上でそれにさらに二度押しカスタムを入れる場合は注意が必要。
まずこの Karabiner というツールは再帰的にキーを割り当てない。 どういうことかというと、space キーを A に割当て A を B に割り当てても space は B にはならんということ。
それを踏まえると、「本来のキーを別のキーに割り当てた上でそれにさらに二度押しカスタムを入れる」ということ自体が設定として変だということになる。 二度押しの設定だけでその両方が兼ねられるということになる。