-
Notifications
You must be signed in to change notification settings - Fork 288
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
Mac: Cmdをショートカットキーの修飾キーとして使えるようにする #594
Mac: Cmdをショートカットキーの修飾キーとして使えるようにする #594
Conversation
Quasarの方はどうしたらいいかわからないですが、 |
@madosuki ありがとうございます。参考になります! |
@.madosuki さんの仰るように、electronのbackground.tsで判定して持ってくるというのが筋が通っていそうな気もしますが、まあuaでの判定でも良いかなと感じました! |
@Hiroshiba コメントありがとうございます。教えていただいた Quasar のドキュメントをよく読んだら正しい方法がわかったので、Quasar を使った OS 判定に変えます。 また、Meta キー周りはとりあえず Mac だけ Meta キーを使い他の OS では扱わない旨をコメントで残すようにしようと思います。その処置で足りない恐れがある場合はご指摘ください。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
実際どなたかwindowsで動作チェックして頂けると助かります。
(夜にいらっしゃらなければ夜に試そうかなと思います)
Windowsでショートカットキー周り試しました。 |
これについて気になったので確認してみたところ、 |
@madosuki @seiga-mametani 動作確認ありがとうございます。実際には挙動に変化があるんですね。調べたところ、確かに今までの仕様では Shift or Ctrl or Alt の後に Windows キーを押すと Meta が表示され、ショートカットキーとして使えそうです。意図された仕様ではないとは思うのですが、今回の変化( Windows で Windows キーを VOICEVOX のショートカットキーとして使えなくなる)は許容されそうでしょうか? @Hiroshiba |
OSごとに表示(CmdなのかWinキーなのか)する機構を実装しちゃうと解決ですが、プルリクエストの範囲外という感じでしょうか。 windowsキーが使えなくなるのは一旦許容してしまっても良いと思いますが、過去にwinをショートカットキーに設定していた人の挙動がちょっと問題になるかもと感じました。 でwinでもCmdと表示されるというissueを作れば、まあ開発も既存ユーザーも未来のユーザーもちょっとずつ痛み分けという形にできるかなと思いました。 |
Windows 版ユーザーにとっては不可解な仕様になりますが、「あまりショートカットキーとして Windows キーを使っている人はいなさそうであり、この変更を入れてしまって様子見」ということでしょうか(仮に Windows キーを使っていた人がいたとしても、表示が Cmd になってしまう以外は一応互換性が保たれる)。了解しました。PR がマージされたら早いうちに Issue を立てようと思います。 |
指摘された箇所のOS判定を取り除くと、それはそれで過去の動作と異なるようになる( |
なるほどです。 |
これまでは(おそらく意図せず)[Ctrl|Shift|Alt] + Meta をショートカットキーとして 登録・使用することが可能となっていたが、この変更で不可能になる
わかりました。互換性を切るという方針で、該当部分のコードをPR当初のものに戻しました。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!
変更が小さくてわかりやすくて良いなと思いました。
win・linuxでMetaを良い感じに表示するというissue作成もお願いします!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです!
要議論な点は、Issue化して別途進めましょう...!
内容
ショートカットキーの設定について、Mac でも Shift とCtrl, Alt キーは修飾キーとして使えていましたが、Cmd キーは修飾キーとして使用できませんでした。これを使用できるようにします。
備考: Mac のショートカットキー操作は Undo 操作は Cmd + Z、保存操作は Cmd + S など、Cmd キーを多用します。Mac 対応において Cmd キーが使えるかどうかということは大きい問題だと考えています。
関連 Issue
ref #572
スクリーンショット・動画など
use_cmd_key_mac_720p.mov
その他
Windows と Linux のショートカットキーの設定や使用には影響を与えていないと思います(Ubuntu で Windows キーを押した時などの動作を確認しました)。しかし、いくつか議論の余地がある箇所がありそうです。レビュワーのご意見によっては一旦クローズして、課題解決のための Issue を開くかもしれません。
Meta キーの扱いについて
Mac の Cmd キーはブラウザ上では Meta キーとして扱われます。Meta キーは Windows や Ubuntu では通常 Windows キーです( Ubuntu では Super キーと呼ぶようです)。現状、VOICEVOX では Windows や Ubuntu で Meta キーを使えないようにしているため、「Mac のみが Meta キーを修飾キーとして扱う」と仮定して実装しました。そこで、vue のコンポーネントに「 key の名前として Meta が来たら Cmd に置き換える」という処理をハードコードしてしまっています。例として以下のような箇所があります:
他 OS で今後 Meta キーをどう扱うつもりなのかによっては、これは良くなさそうな気がしているので、良い案があればご提案よろしくお願いします。
また、何らかの事情により「ショートカットキーの表示名を変える」必要があるかもしれないという話題は #547 でも触れられていました。今のところ Windows と Linux で Windows キーの表示はなされないものの、今回提出した PR はそのままだとバグのもとになるかもしれないという認識はしております。姑息的な解決策としてマージしてもらうか、根本的な解決策が見出されるまでペンディングすべきか、自分には判断がつきかねたので、意見を伺うため、一応 PR として出してみました。
OS判定コードについて
voicevox/src/store/setting.ts 内で OS 判定をする方法を色々調べたのですが、Web 系の技術に慣れていないため、UserAgent を使った方法しか探し出せませんでした(他に
process.platform
や$q = useQuasar(); $q.platform.is.mac
などが使えないか試したのですがうまくいきませんでした)。より良い方法があれば教えていただければと思います。