Skip to content
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

【機能追加&要対応】キーボードショートカットで登録不可キーの追加&キーボード言語違いでの一部ショートカット初期値の対応 #2390

Open
3 tasks done
kebin628 opened this issue Dec 4, 2024 · 1 comment

Comments

@kebin628
Copy link
Contributor

kebin628 commented Dec 4, 2024

内容

経緯
詳しくはこちらも確認してください。
アプリのUIサイズを変更するショートカットの追加 by kebin628 · Pull Request #2380
#2380 (comment)

↑のプルリク対応中に分かった点です。
現在のボイボショートカット登録からCtrl++を登録しようとした時、ダイアログから登録不可能、認識不可能なことがわかりました。
image

現状のダイアログでの登録コードを確認すると、

const eventKey = event.code.replace(/Key|Digit|Numpad/, "");
if (
/^([A-Z]|\d|Arrow(Up|Down|Left|Right)|Enter|Space|Backspace|Delete|Escape|F\d+|-|/)$/.test(
eventKey,
)
) {
recordedCombination += eventKey;
}
となっており、event.codeを参照しています。
event.codeはEqualなどのベースキー(USキーボードのように+を入力すると画像の様に=が飛んでくる)が参照される為、Ctrl++をしようとした場合

  • Code参照だと弾いている=を使えるようにする必要がある
  • そもそも+を出すために=を叩くのはUSキーボードなので、JSキーボードではSemicolonになる。
    と、キーボードの違いで実質初期キー登録不可、そもそもダイアログで設定できない
    のを何とかしなければ使えなさそうです。

そのため、実際に打たれたコード(code.key)をベースに調整してやり、キーボードの違いと、現状登録できないCodeに対応してやる必要があります。
image

なお、+の他にも

  • ー(Code=Minus)
  • ;(Code=Semicolon、USキーボードだとShift;=:にも関わる)
  • , (Code=Comma。設定開く時にでよく使う)
    あたりが現状のコードだと出ません

Pros 良くなる点

  • キーボード言語設定の違いを吸収できる
  • 初期設定でも一部キーボードショートカットが狂わない
  • 現状使えないキーショートカットがシステムレベルで登録できるようになる

Cons 悪くなる点

  • 特に無いはず

実現方法

event.codeの参照がevent.keyになればパッと見登録時は良さそうですが、その他の実装は現状確認できていません。
また、ヒホさんのリアクションからすると、結構厄介だった話らしく、アイデア募集なりする必要はありそうです。
#2380 (comment)

VOICEVOXのバージョン

0.21.1

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

特にありません

@Hiroshiba
Copy link
Member

isuse作成ありがとうございます!!

そういえばなのですが、ちょっとかなり長い間レビューできてないのですが、以前HotkeyJs周りを内製化したプルリクエストいただきました。

もしかしたらこちらのプルリクエストで解決していたり・・・・・・・?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants