-
Notifications
You must be signed in to change notification settings - Fork 300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
キー割り当てでShift+数字を設定すると期待動作をしない #1947
Comments
shiftkeyを使うときにエラーがでるのを修正 ついでに close VOICEVOX#1947
issue作成ありがとうございます! 今まで気づきませんでした・・・。 解決策はちょっとわからないのですが、原因をとりあえず調べてみました。 shift+なにかで、押されたキーの方ではなく入力される文字側が記録されるのは、おそらくショートカットキー登録の時にevent.keyを参照しているからだと思われます。 voicevox/src/plugins/hotkeyPlugin.ts Lines 314 to 324 in 0d96fa8
event.keyではなくevent.codeの方を使うと押されているのが何かが記録できそうです。 ただこの場合、押されているキーが もしさらに調べた方や知っている方がいたらコメント募集中です! |
あとこれに似た件なので追加するのですが、矢印キーもevent.keyではArrowUpなのですがHotkeyJSではUpとするべきなので、ホットキーが効かないということが起きています(こっちはreplaceでいけると思います) |
ほんとですね!! 詳しく調べてたのですが、とりあえず記録時は |
ちなみに以前使ってた なのでもしかしたら過去のバージョンで登録した 保存するのは Githubのショートカットキーみたいに |
上のpullrequestの感じでしょうか(@がBracketLeftになったりと全部に対応するのは難しそうなのでできそうなものだけ受け付ける形で書きました)!
|
プルリクエストありがとうございます!!!
await keyboard.getLayoutMap().then((m) => Array.from(m.entries())) ちなみに僕の環境ですとこんな感じでした。 [
['KeyE', 'e'],
['KeyD', 'd'],
['KeyU', 'u'],
['Minus', '-'],
['KeyH', 'h'],
['KeyZ', 'z'],
['Equal', '^'],
['KeyP', 'p'],
['Semicolon', ';'],
['BracketRight', '['],
['Slash', '/'],
['BracketLeft', '@'],
['KeyL', 'l'],
['Digit8', '8'],
['KeyW', 'w'],
['KeyS', 's'],
['Digit5', '5'],
['Digit9', '9'],
['KeyO', 'o'],
['Period', '.'],
['Digit6', '6'],
['KeyV', 'v'],
['Digit3', '3'],
['Backquote', '半角/全角'],
['KeyG', 'g'],
['KeyJ', 'j'],
['KeyQ', 'q'],
['Digit1', '1'],
['KeyT', 't'],
['KeyY', 'y'],
['Quote', ':'],
['Backslash', ']'],
['KeyK', 'k'],
['KeyF', 'f'],
['KeyI', 'i'],
['KeyR', 'r'],
['KeyX', 'x'],
['KeyA', 'a'],
['Digit2', '2'],
['Digit7', '7'],
['KeyM', 'm'],
['Digit4', '4'],
['IntlYen', '¥'],
['Digit0', '0'],
['KeyN', 'n'],
['KeyB', 'b'],
['IntlRo', '\\'],
['KeyC', 'c'],
['Comma', ','],
] ↑にないキーがたくさんありそう。テンキー入力とか。 ただそもそもhotkeys-jsで |
とりあえず現状のキーボードショートカットに関してまとめるとこうでしょうか。
ちなみにVSCodeを調べるとこうでした。
その他メモ
理想をまとめると、たぶんこう
|
|
|
コメントありがとうございます!! draftプルリク見させていただきました、とてもシンプルだなと感じました! テキスト入力がほとんど無い場合はもう自作にするのが楽な気がします。 ・・・・・・・・・・どっちが良いですかねぇ 😇 😇 😇 |
悩ましいです... 検証やテストは大変そうなのでその面ではkeystrokesの方が良さそうです ですが、draftの方式の方が反応しないというバグは起こさないようにできます。 またdraftの方では、絞り込むときにテキスト欄で有効かという最も絞りやすい物から絞り込めるので(修正しました)理論上は速くできるはずです |
なるほどです!
|
|
手元のmacでキー登録画面で試してみた感じ、cmd+cなどelectron側に設定されてそうなやつも反応してそうでした!
確認ありがとうございます!! できれば実装まである程度さらった方が安心だろうなと思いました。 1つ可能性としては、ショートカットに関係なく押しっぱなしにしておきたいキーが無いか想像しておくと良いかも・・・? あと作るライブラリの仕様なのですが、多分同じショートカットキーに2つ以上の操作を割り当てられるようにしておくと将来の変更に強いかもと思いました! まだちょっと不安なのでもしよかったら意見いただけると。。 @sevenc-nanashi |
大丈夫だと思います。 (長押しで連続実行されるの防げないかな…って思ったけどCtrl-Zは需要がありそうだし残したほうがいいかな、って思ったりした) |
確認してみました!
一応Numlockが想像できましたが(自宅にあるテンキーが多分そうなっている)、ctrl, alt, shift, meta以外は同時押しに関係しないので大丈夫そうです!
実装します!※3 (その他)
※1~4は右のpullRequest内で追加しようと思います #1984 |
VOICEVOX側の実装の確認ありがとうございます!! 意図していたのはhotkeyjs側・mousetrap側(あと可能ならkeystrokeも)の実装の確認でした!
マウスにキー入力を割り当てる、なるほどです!
UI_LOCK中(ダイアログを開いている時や再生中など)でも動かせる系の操作は動くようになっちゃってますね。。 |
なるほど!わかりました! 確認結果ですMoustrap
HotkeysJs気になったところは前に挙げたので全部です KeyStroke
今はキーを押した瞬間にショートカットが動作していますが、離した瞬間に動作するようにすれば、押した後に間違えたと思って長押しすればキャンセルができるという仕様にできそうです
すみません、どちらでもホットキーが動作することが確認できました 🙇 。ツイートの
scopeを切り替えた方が良さそうですね! (今まで書いていなかったことに気が付いたこと) |
おーーー!! ありがとうございます!!! mousetrapのpreventDefaultできる機能なるほどです! KeyStrokeは順番にキー操作していった場合のショートカットキー入力に対応してるんですよね。そのための関数2つなのかなと。 大丈夫な自信がついてきました、ありがとうございます!
なるほどです。
( 📝 マウスでショートカットキー入力するやつの続きコメント)
なるほどです!
なるほどです、気づいてくださってありがとうございます! |
@tsym77yoshi さん、調査ありがとうございました!! ショートカットキーは自前実装しても良いと思いました・・・!! |
不具合の内容
キー割り当てでshift+[1~9の数字]を入力するとshift+["!"~")"]となる。
またその状態では同じキーを押しても動作しない。
現象・ログ
[HotkeyManager] Bind: shift+! to アクセント欄を表示 in talk
等再現手順
キー割り当てで適当なものにshift+[1~9のいずれか]を設定する
期待動作
キー割り当てでshift+数字と表示する
shift+数字で反応するようにする
VOICEVOXのバージョン
0.17.1
OSの種類/ディストリ/バージョン
The text was updated successfully, but these errors were encountered: