keyevent/26.automaton
をテンプレートにして作成
[
Front page
] [
New
|
Page list
|
Search
|
Recent changes
|
Help
]
Start:
* automaton [#f308ce44]
** event [#q901e153]
|記号|意味|判定1|判定2|備考|
|C|click|is_click|||
|T|tap|is_tap|||
|H|first repeat(nr=1)|is_hold|is_same_key|↻ ⟳...
|R|next repeat(nr>1)|is_repeat|is_same_key||
|E|repeat end|repeat_end||timer, 履歴には積まない、状態遷...
|B|break(change buffer)|break||mouse click, 履歴には積ま...
** status [#u9e1f0b2]
- HOLD : 最初のrepeat(nr=1), is_hold
- REPEAT : 2回目以降のrepeat(nr>1)
- NORMAL : その他
-- click : シーケンス開始
-- tap : シーケンス継続中
** attribute [#o054971f]
- nt: 同一キーの連続タップ回数
- nr: 同一キーのrepeat回数
- nh: 同一シーケンス内のhold回数:廃止
- is_same_key: メタをのぞいて前回と同じキー
- ng_repeat: repeatがこないところでis_repeat(interval)
** event.type [#jcd625a7]
- click : シーケンス開始
- tap : シーケンス継続
- repeat : os key repeat
** trans [#pc22b979]
|state|condition|next state|type|action|nt|nh|nr|ng|note|
||!=same key|-> NORMAL|(N)CT||c1,t1|(N)c0|(N)0|||
|NORMAL|is_hold|-> HOLD|R|||++|(H)1|||
||is_repeat|-|(N)CT||c1,t++|(N)c0|(N)0|++||
||else(ct)|-|(N)CT||c1,t++|(N)c0|(N)0|||
|HOLD|is_repeat|-> REPEAT|R||||(R)++|||
||is_hold|-|R||||(H)1|++||
||else(ct)|-> NORMAL|(N)CT||c1,t1|(N)c0|(N)0|||
|REPEAT|is_repeat|-|R||||(R)++|||
||is_hold|-> NORMAL|(N)CT|||(N)c0|(N)0|||
||else(ct)|-> NORMAL|(N)CT||c1,t1|(N)c0|(N)0|||
** transition [#j1daa198]
CTHREB
click, tap, repeat
2000, 500, 150, 150, 150, 2000
|status|Ckick|Tap|Hold|Repeat|End|Break||
|NORMAL|NORMAL|NORMAL|HOLD|(NORMAL)[1]|ERROR|NORMAL||
|HOLD|(NORMAL)[2]|(NORMAL)[3]|(HOLD)[4]|REPEAT|NORMAL|NOR...
|REPEAT|NORMAL|NORMAL|(HOLD)[5]|REPEAT|NORMAL|NORMAL||
|500|NORMAL|421(NG)|NORMAL|500|NORMAL|500|NORMAL|
|150|HOLD|150|NORMAL(NG)|171(NG)|HOLD|150|HOLD|
|150|REPEAT|150|NG REPEAT 1[1]|150|NORMAL(NG)[2|3]|150(N...
|150|REPEAT|150|NG REPEAT 2|150|NG REPEAT 1|150|NORMAL(NG)|
|150|REPEAT|150|NG REPEAT 3|150|NG REPEAT 2|150|NG REPEAT...
- [4] (CASE 1) HOLD -> HOlD は前が tap|click
- [4] (CASE 2) hold ~ repeat なら今回がrepeatかも
- [5] (CASE 1) hold 今回が tap|click
- [5] (CASE 2) hold ~ repeat なら今回がrepeatかも
|status|event|next|type|ng|note|||
|NORMAL|H|HOLD|repeat|0||||
||C|-|click|0||||
||T|-|tap|0||||
||R (NG)|-|click|tap|++|直前のNORMALはHOLD|REPEAT|||
||E (NG)|-|x|0||||
||B|-|x|0||||
|HOLD|R|REPEAT|repeat|0|rush中のhold回数をカウントするな...
||C|NORMAL|click|0||||
||T|NORMAL|tap|0||||
||H(NG)|HOLD|repeat|0|直前のHOLDはclip|tap|||
||E|NORMAL|x|0||||
||B|NORMAL|x|0||||
|REPEAT|R|REPEAT|repeat|0||||
||C|NORMAL|click|0||||
||T|NORMAL|tap|0||||
||H(NG)|NORMAL(NG)|clip | tap|0|直前のREPATはclip|tap|||
||E|NORMAL|x|0||||
||B|NORMAL|x|0||||
** entry [#x1b321c6]
|status|prev|type|ser|nt|nr|nh|note|
|NORMAL||click|x|1|0|0|series off|
|||tap:diff|o|1|0|-||
|||tap:same|o|++|0|-||
||!=NORMAL||-|1|0|-|tap reset|
|HOLD|NORMAL||o|-|1|-|直前がhold_start|
||HOLD||o|-|1|-|直前がhold_start|
|REPEAT|||o|-|++|*|nr==2 ならnh++|
** example [#q9eaf209]
|||interval|status|TYPE|nt|nr|||
|tan|j|800|NORMAL-CLI|click|1|0|||
|-|j|500|BGCOLOR(orange):HOLD|repeat|1|1|||
|-|j|150|REPEAT|repeat|1|2|||
|-|j|150|REPEAT|repeat|1|3|||
|ta|k|800|NORMAL-CLI|click|1|0|||
|tan|k|300|NORMAL-TAP|tap|2|0|||
|-|k|500|BGCOLOR(orange):HOLD|repeat|2|1|||
|-|k|150|REPEAT|repeat|2|2|||
|-|k|150|REPEAT|repeat|2|3|||
** NG example [#xc495c83]
*** is_repeat 失敗 : NORMAL [#t349611b]
|||interval|status|TYPE|ng|nt|nr|note|
|tan|j|is_repeat|REPEAT|repeat|0|1|2||
|-|j|NG repeat|NORMAL|tap|0|2|0||
|-|j|is_repeat|NORMAL|tap|1|3|0||
|-|j|is_repeat|REPEAT|repeat|2|1|4|ng==2 なら nt--, nr=2,...
*** is_hold 失敗 : NORMAL [#pb11181a]
|||interval|status|TYPE|ng|nt|nr|note|
|tan|j|521|NORMAL|click|tap|0|1|0||
|-|j|is_repeat|NORMAL|tap|1|2|0||
|-|j|is_repeat|REPEAT|repeat|2|1|2|ng==2 なら nt--, nr=2,...
*** is_hold 失敗 : HOLD [#w8a1bc12]
*** is_hold 失敗 : REPEAT [#r4c55cf2]
** 特殊事情 [#wd9c8bf1]
- IMEは最初の1文字だけon_keyにキャッチされる
-- "あbc"とタイプしてEnterで確定すると"あ"だけ入力と認識...
- ⌘+vのペーストはon_keyでは無視される
End:
* automaton [#f308ce44]
** event [#q901e153]
|記号|意味|判定1|判定2|備考|
|C|click|is_click|||
|T|tap|is_tap|||
|H|first repeat(nr=1)|is_hold|is_same_key|↻ ⟳...
|R|next repeat(nr>1)|is_repeat|is_same_key||
|E|repeat end|repeat_end||timer, 履歴には積まない、状態遷...
|B|break(change buffer)|break||mouse click, 履歴には積ま...
** status [#u9e1f0b2]
- HOLD : 最初のrepeat(nr=1), is_hold
- REPEAT : 2回目以降のrepeat(nr>1)
- NORMAL : その他
-- click : シーケンス開始
-- tap : シーケンス継続中
** attribute [#o054971f]
- nt: 同一キーの連続タップ回数
- nr: 同一キーのrepeat回数
- nh: 同一シーケンス内のhold回数:廃止
- is_same_key: メタをのぞいて前回と同じキー
- ng_repeat: repeatがこないところでis_repeat(interval)
** event.type [#jcd625a7]
- click : シーケンス開始
- tap : シーケンス継続
- repeat : os key repeat
** trans [#pc22b979]
|state|condition|next state|type|action|nt|nh|nr|ng|note|
||!=same key|-> NORMAL|(N)CT||c1,t1|(N)c0|(N)0|||
|NORMAL|is_hold|-> HOLD|R|||++|(H)1|||
||is_repeat|-|(N)CT||c1,t++|(N)c0|(N)0|++||
||else(ct)|-|(N)CT||c1,t++|(N)c0|(N)0|||
|HOLD|is_repeat|-> REPEAT|R||||(R)++|||
||is_hold|-|R||||(H)1|++||
||else(ct)|-> NORMAL|(N)CT||c1,t1|(N)c0|(N)0|||
|REPEAT|is_repeat|-|R||||(R)++|||
||is_hold|-> NORMAL|(N)CT|||(N)c0|(N)0|||
||else(ct)|-> NORMAL|(N)CT||c1,t1|(N)c0|(N)0|||
** transition [#j1daa198]
CTHREB
click, tap, repeat
2000, 500, 150, 150, 150, 2000
|status|Ckick|Tap|Hold|Repeat|End|Break||
|NORMAL|NORMAL|NORMAL|HOLD|(NORMAL)[1]|ERROR|NORMAL||
|HOLD|(NORMAL)[2]|(NORMAL)[3]|(HOLD)[4]|REPEAT|NORMAL|NOR...
|REPEAT|NORMAL|NORMAL|(HOLD)[5]|REPEAT|NORMAL|NORMAL||
|500|NORMAL|421(NG)|NORMAL|500|NORMAL|500|NORMAL|
|150|HOLD|150|NORMAL(NG)|171(NG)|HOLD|150|HOLD|
|150|REPEAT|150|NG REPEAT 1[1]|150|NORMAL(NG)[2|3]|150(N...
|150|REPEAT|150|NG REPEAT 2|150|NG REPEAT 1|150|NORMAL(NG)|
|150|REPEAT|150|NG REPEAT 3|150|NG REPEAT 2|150|NG REPEAT...
- [4] (CASE 1) HOLD -> HOlD は前が tap|click
- [4] (CASE 2) hold ~ repeat なら今回がrepeatかも
- [5] (CASE 1) hold 今回が tap|click
- [5] (CASE 2) hold ~ repeat なら今回がrepeatかも
|status|event|next|type|ng|note|||
|NORMAL|H|HOLD|repeat|0||||
||C|-|click|0||||
||T|-|tap|0||||
||R (NG)|-|click|tap|++|直前のNORMALはHOLD|REPEAT|||
||E (NG)|-|x|0||||
||B|-|x|0||||
|HOLD|R|REPEAT|repeat|0|rush中のhold回数をカウントするな...
||C|NORMAL|click|0||||
||T|NORMAL|tap|0||||
||H(NG)|HOLD|repeat|0|直前のHOLDはclip|tap|||
||E|NORMAL|x|0||||
||B|NORMAL|x|0||||
|REPEAT|R|REPEAT|repeat|0||||
||C|NORMAL|click|0||||
||T|NORMAL|tap|0||||
||H(NG)|NORMAL(NG)|clip | tap|0|直前のREPATはclip|tap|||
||E|NORMAL|x|0||||
||B|NORMAL|x|0||||
** entry [#x1b321c6]
|status|prev|type|ser|nt|nr|nh|note|
|NORMAL||click|x|1|0|0|series off|
|||tap:diff|o|1|0|-||
|||tap:same|o|++|0|-||
||!=NORMAL||-|1|0|-|tap reset|
|HOLD|NORMAL||o|-|1|-|直前がhold_start|
||HOLD||o|-|1|-|直前がhold_start|
|REPEAT|||o|-|++|*|nr==2 ならnh++|
** example [#q9eaf209]
|||interval|status|TYPE|nt|nr|||
|tan|j|800|NORMAL-CLI|click|1|0|||
|-|j|500|BGCOLOR(orange):HOLD|repeat|1|1|||
|-|j|150|REPEAT|repeat|1|2|||
|-|j|150|REPEAT|repeat|1|3|||
|ta|k|800|NORMAL-CLI|click|1|0|||
|tan|k|300|NORMAL-TAP|tap|2|0|||
|-|k|500|BGCOLOR(orange):HOLD|repeat|2|1|||
|-|k|150|REPEAT|repeat|2|2|||
|-|k|150|REPEAT|repeat|2|3|||
** NG example [#xc495c83]
*** is_repeat 失敗 : NORMAL [#t349611b]
|||interval|status|TYPE|ng|nt|nr|note|
|tan|j|is_repeat|REPEAT|repeat|0|1|2||
|-|j|NG repeat|NORMAL|tap|0|2|0||
|-|j|is_repeat|NORMAL|tap|1|3|0||
|-|j|is_repeat|REPEAT|repeat|2|1|4|ng==2 なら nt--, nr=2,...
*** is_hold 失敗 : NORMAL [#pb11181a]
|||interval|status|TYPE|ng|nt|nr|note|
|tan|j|521|NORMAL|click|tap|0|1|0||
|-|j|is_repeat|NORMAL|tap|1|2|0||
|-|j|is_repeat|REPEAT|repeat|2|1|2|ng==2 なら nt--, nr=2,...
*** is_hold 失敗 : HOLD [#w8a1bc12]
*** is_hold 失敗 : REPEAT [#r4c55cf2]
** 特殊事情 [#wd9c8bf1]
- IMEは最初の1文字だけon_keyにキャッチされる
-- "あbc"とタイプしてEnterで確定すると"あ"だけ入力と認識...
- ⌘+vのペーストはon_keyでは無視される
Page: