要約
MacのキーボードカスタムソフトKarabiner-Elementsのto_delayed_action
機能を用い、3連打へキー割り当てをした。
はじめに
Karabiner-ElementsはMacの(超強力な)キーボードカスタムソフト[1]である。2連打へのキー割り当てはいくつも記事があるが、3連打へを割り当ての記事はない。しかし、3連打のへの割り当ても使い所があると考えたので、やってみた。
環境
MacOS: 12.4
Karabiner-Elements: 14.5.0
準備
キーリマップを行う手順
概略は以下。決められた書式でjsonファイルを作成し、所定の場所(/Users/isseishitakawa/.config/karabiner/assets/complex_modifications/
)にそのjsonファイルを置き、Karabiner-ElementsのGUIでComplex Modification -> Add rule
で作成したファイルを選択する。使い方の詳細は、公式ダウンロードサイト[1]に貼られている公式のGitHub[7]、から更に貼られている公式使い方[8]を参照。
"to_delayed_action" 機能
公式マニュアル[8]にもある遠り、2連打へ割り当てする時に使う。少し手を加えて3連打へ割り当てできるようにした。
3連打へのキー割り当て
テンキーの4(keypad_4
)を1回押すとa
、2回押すとb
、3回押すとc
となるようにした。
2連打への割り当てのときはフラグを1つ用いるが、3連打へはフラグを2つ用いる。
キーイベント発火のタイミング微調整
to_if_invoked
が実行されるまでの時間はKarabiner-ElementsのGUI操作でComplex Modifications -> Parameters -> to_delayed_action_delay_milliseconds
で指定できる[3][8]。デフォルトは500msecで、3連打の時はやや遅く感じる。150msecではやや早く感じる。
{
"title": "THE_KEYPAD",
"rules": [
{
"description": "MAKE_TRIPLE_HIT_KEY",
"manipulators": [
{
"type": "basic",
"from": { "key_code": "keypad_4" },
"to": [{ "key_code": "c" }, { "set_variable": { "name": "Fg_2_keypad_4", "value": 0 } }],
"conditions": [{ "type": "variable_if", "name": "Fg_2_keypad_4", "value": 1 }]
},
{
"type": "basic",
"from": {"key_code": "keypad_4","modifiers": { "optional": [ "any" ] }},
"to": [ { "set_variable": { "name": "Fg_2_keypad_4", "value": 1 } } ],
"to_delayed_action": {
"to_if_invoked": [{ "key_code": "b" }, { "set_variable": { "name": "Fg_2_keypad_4", "value": 0 } } ],
"to_if_canceled": [ { "set_variable": { "name": "Fg_2_keypad_4", "value": 0 } } ] },
"conditions": [ { "type": "variable_if", "name": "Fg_1_keypad_4", "value": 1 }]
},
{
"type": "basic",
"from": {"key_code": "keypad_4","modifiers": { "optional": [ "any" ] }},
"to": [ { "set_variable": { "name": "Fg_1_keypad_4", "value": 1 } } ],
"to_delayed_action": {
"to_if_invoked": [{ "key_code": "a" }, { "set_variable": { "name": "Fg_1_keypad_4", "value": 0 } } ],
"to_if_canceled": [ { "set_variable": { "name": "Fg_1_keypad_4", "value": 0 } } ] },
"conditions": [ { "type": "variable_if", "name": "Fg_1_keypad_4", "value": 0 }]
}
]
}
]
}
考察
3連打への割り当ての使い所。
テンキーの000
キーの活用。
テンキーでよく見かける000
キーは0
キーを3連打したと認識される。したがって0
キーと000
キーとのそれぞれに割り当てることが出来ず、000
キーの分だけ無駄になる。3連打へを割り当てを用いれば0
キー3連打、すなわち000
キーも活用できる。
(iBUFFALO テンキーボード Mac用 USB接続 スリム 独立キー シルバー BSTK08MSVアマゾンから引用[9])
cutkey
cutkeyとはミサワホーム総合研究所の加藤善也らが開発した、テンキーサイズのキーボードで、片手でほぼ全てのキーを打てる。いわば20%キーボードである。少ないキーで多数のアルファベットキーを打てるようにするために、学習し易さを考慮してか、複数回打ちを採用している[10[11][12]。なお、cutkeyは複数回打ちだけでなく、自作キーボードでよく見る"レイヤーシステム" も使ってキーを稼いでいる。たとえばNCQ
とかかれたキーを1回打つとN
、2連打でC
、3連打でQ
となる。
cutkeyは現在入手困難である。自作キーボードで作ることもできるが手間がかかるのと、それ以上に金銭的に高い。であるので、手元にある安いテンキーでcutkeyを手軽に再現できるのは便利である。
なお、片手あるいは両手持ちでの使用を想定し、その場合は複数回打ちは非合理的と考えられ、レイヤーキー(on-shot-layer)を2つ用い、わずか24キーでほぼフルキーボードを再現する方法もある(cutkeyオマージュで'Re: CUT Key'と名づけておられている)[14]。
(ASCII.jp[13])
参考
[1]閲覧日2022/07/25, Karabiner-Elements, https://karabiner-elements.pqrs.org/, https://karabiner-elements.pqrs.org
[2]閲覧日2022/07/25, Karabiner-Elementsを使ってキーの2連打に処理を割り当てる方法 - Qiita, https://qiita.com/s-show/items/c991327a5317c3e0cf4b
[3]閲覧日2022/07/25, 快適キーボード操作のためのキーカスタマイズ ~Mac編~ | さくらのナレッジ, https://knowledge.sakura.ad.jp/23355/#to_delayed_action
[4]閲覧日2022/07/25, 【USキーボード】Karabiner-Elementsで「英数/かな」の日本語切り替えを同一キー連打に設定する。, https://pycarnival.com/eisuukana/
[5]閲覧日2022/07/25, Shift キーを素早く二回押すことで Clipy を起動する - サポンテ 勉強ノート, https://saponote.hatenablog.com/entry/2020/02/17/222926
[6]閲覧日2022/07/25, Karabiner-Elements を使って Ctrl 2 回押しでターミナルを開く - gonzo, https://scrapbox.io/gonzoooooo/Karabiner-Elements_%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6_Ctrl_2_%E5%9B%9E%E6%8A%BC%E3%81%97%E3%81%A7%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%82%92%E9%96%8B%E3%81%8F
[7]閲覧日2022/07/25, pqrs-org/Karabiner-Elements: Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later., https://github.com/pqrs-org/Karabiner-Elements
[8]閲覧日2022/07/25, Documentation | Karabiner-Elements, https://karabiner-elements.pqrs.org/docs/
[9]閲覧日2022/07/25, Amazon | iBUFFALO テンキーボード Mac用 USB接続 スリム 独立キー シルバー BSTK08MSV | バッファロー | 家電&カメラ, https://www.amazon.co.jp/iBUFFALO-%E3%83%86%E3%83%B3%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-Mac%E7%94%A8-USB%E6%8E%A5%E7%B6%9A-BSTK08MSV/dp/B0053EB6HO/ref=asc_df_B0053EB6HO/?tag=jpgo-22&linkCode=df0&hvadid=225431623414&hvpos=&hvnetw=g&hvrand=14281136794703670154&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009365&hvtargid=pla-441282628451&th=1
[10]閲覧日2022/07/25, ニュースリリース|ミサワホーム:MisawaOnLine-CONTENTS, https://www.misawa.co.jp/corporate/news_release/misawa/pop-up/release-pages/2000_07_12/001226.html
[11]閲覧日2022/07/25, テンキー型片手打鍵文字入力方式の実験と評価 | CiNii Research, https://cir.nii.ac.jp/crid/1572261552106343040
[12]閲覧日2022/07/25, ASCII.jp:TODAY'S NON-STOP NEWS vol.9, https://ascii.jp/elem/000/000/312/312864/
[13]:閲覧日2022/07/25, ASCII.jp:TODAY'S NON-STOP NEWS vol.9, https://ascii.jp/elem/000/000/312/312864/
[14]:2022/07/25, TTTキーボード研究室/「Re: CUT Key」=CUT Keyの応用, http://tokyotanuki.jp/keyboards/recutkey.htm