メディアキーに機能を割り当てたい。特にBrowser Back

  1. 今回、キーストロークで選択開始などをこなっていたら、
    Browser Back key や、Browser Forward key で、
    undo , redoを行得ると楽しそうだな・・と我儘な思いがわいてきました。

    いずれ、メディアキーの対応を検討頂くことは可能でしょうか。
    (前述の2つだけでも)

    参考
    https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

    追伸
    ALT+Leftだとちょっと違うんです。

    現在、わたしは40キーくらいの自作キーボードキットのを使っているのですが、ひとつのキーを、単発で打鍵すると「Browser Back」/長押しすると「Ctrl」に割り当てています。(Mod-Tap key)
    上記のように、1つのキーに、単発/長押しで、別のキーを割り当てていると、
    単発側には、[ALT+?]とか[SHIFT+?]のような「押しながらのキー」を割り当てることができないので、単発でも使える[Browser Back]が重宝しているのです。

    そこで、MeryでもBrower Back(WWW Back)を割り当てることができると、とてもうれしいです。

     |  tak  |  返信
  2. ご愛用いただきありがとうございます。

    メディア キーについてですが、調べてみましたところ、現在、Mery で使用している Windows 標準の API では対応していないようですが、独自に実装すれば対応は可能かもしれません。

    ただし、私は [Browser Back] などのメディア キーが備わったキーボードを持っていないため、動作検証ができません。

    > 参考
    > https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

    たとえば、キーボードの [Browser Back] というキーを押した場合、上記サイトに記載されている、VK_BROWSER_BACK (値は 0xA6) が送信される、という認識で良いでしょうか?

    それから、対応するキーは、以下の範囲に該当するかと思われますが、合ってますでしょうか?

    VK_BROWSER_BACK
    VK_BROWSER_FORWARD
    VK_BROWSER_REFRESH
    VK_BROWSER_STOP
    VK_BROWSER_SEARCH
    VK_BROWSER_FAVORITES
    VK_BROWSER_HOME
    VK_VOLUME_MUTE
    VK_VOLUME_DOWN
    VK_VOLUME_UP
    VK_MEDIA_NEXT_TRACK
    VK_MEDIA_PREV_TRACK
    VK_MEDIA_STOP
    VK_MEDIA_PLAY_PAUSE
    VK_LAUNCH_MAIL
    VK_LAUNCH_MEDIA_SELECT
    VK_LAUNCH_APP1
    VK_LAUNCH_APP2

    これらのキー コードをプログラムを使って送信してみる程度の検証しかできないため、実際のキーボードでも同じように動作するかどうかは不明ですが…。

    とりあえず、実装できた場合、動作検証にご協力いただけると大変助かります。

     |  Kuro  |  返信
  3. > とりあえず、実装できた場合、動作検証にご協力いただけると大変助かります。

    前向きにご検討いただき、ありがとうございます。
    実装された際の検証は、喜んで行います。

    楽しみにしています。

     |  tak  |  返信
  4. ご確認ありがとうございます。

    それでは、前述のとおりの仕様で開発を進めて行きますので、次のバージョンのリリースまで、今しばらくお待ちくださいませ。

     |  Kuro  |  返信
  5. Ver 3.6.3 でメディアキーのバインドに対応したとのことで、手元のキーボードに付いていた以下のキーで試してみたところ、いずれもMeryで設定したショートカット動作と同時に元の機能も発動してしまうようです。 (例: VolumeUp → Windowsの音量UP)

    元々、音量やプレーヤーソフトの操作をするようなキーで、どのウィンドウをアクティブにしていても機能するグローバルフックな挙動をするキーでしたので、そういうものはショートカットキー設定とは相性が悪いかもしれません。

    MediaPrevTrack
    MediaNextTrack
    MediaPlayPause
    MediaStop
    VolumeUp
    VolumeDown
    VolumeMute

     |  yuko  |  返信
  6. 再生系のソフトは起動していない状況では、

    以下のような割り当て手で特に問題ありませんでした。

    ひとまず、確認したもの。

    BrowserBack→戻す
    同Forward →進む
    Play → マクロ実行
    Next    →次のタブへ

    ただ、何らかの再生ソフトを動かしているとYukoさんが検証したとおりになるのでしょうね。

     |  tak  |  返信
  7. >> yuko さん、tak さん

    動作検証へのご協力、ありがとうございます。

    おおー、メディア キーがちゃんと反応してくれたようで、とりあえずひと安心です。

    > いずれもMeryで設定したショートカット動作と同時に元の機能も発動してしまうようです。

    なるほど、そんな副作用があるんですね。実機を持っていないもので、その点まで確認できていませんでした。助かります。

    確かに、他のアプリや OS がグローバル フックしていると、Mery 側ではどうしようもないですね。

    > ただ、何らかの再生ソフトを動かしているとYukoさんが検証したとおりになるのでしょうね。

    そのようですね。

    MediaPrevTrack など、他のアプリや OS の機能と干渉する可能性のあるキーは、対応しないようにするのが良いでしょうか?

    たとえば、VK_BROWSER_BACK ~ VK_BROWSER_HOME の範囲のみサポートするとか。

    それとも、再生ソフトを起動しないか、再生ソフトの設定でホット キーをオフにするなどで、Mery の機能として使えるようになるなら、そのままにしておいて、ユーザーにおまかせでも良い感じでしょうか。

    ほかのアプリが反応しちゃうー、っていう問い合わせが来るかなぁ…😅

     |  Kuro  |  返信
  8. > それとも、再生ソフトを起動しないか、再生ソフトの設定でホット キーをオフにするなどで、Mery の機能として使えるようになるなら、そのままにしておいて、ユーザーにおまかせでも良い感じでしょうか。

    私の手元の環境ではSpotifyのプレーヤーで VK_MEDIA_~ が反応してしまうんですが、Spotifyではこれらのホットキーをオフにする設定がないんですよね。
    基本的に音楽プレーヤーソフトは1つしか動かさないでしょ、というそういう割り切りなんだろうとは思うのですが…。用途的に、VK_VOLUME_~ に次いで「他のアプリ反応しちゃう…」って問い合わせは来やすいかもしれませんね。

    とりあえずは VK_VOLUME_~ のように、OSのグローバルフックが掛かっていると思われるキーについては実用上の問題がほぼ起こると思うので、設定不可とした方がよさそうです。

    VK_LAUNCH_~ もOSのグローバルフックが掛かりそうな名前だなぁとは思ったのですが、試しにAutoHotkeyを使って仮想的にキーコードを送りつける分には特にグローバルフックで何か動くってこともなく、Mery だけのショートカットキー動作が行えました。

    VK_BROWSER_~ もAutoHotkeyで試す限りは大丈夫そうでした。

     |  yuko  |  返信
  9. スレ主さまのように、「1つキーの動作でアプリに応じて ブラウザバック/フォワード や 元に戻す/やり直し を兼用したい」といった用途においては、当初の要望どおり VK_BROWSER_~ さえ対応していれば大丈夫そうですけれどね。

    単純に「キーボードがファームウェアでカスタムできるものだから、ショートカットキーの設定範囲も広くしたい」という用途であれば F13~F24 キーの設定でも十分賄えると思いますから、 「メディアキーのなかで VK_BROWSER_~ だけを対応する」という方針でもよさそう、とも個人的には思いました。

     |  yuko  |  返信
  10. お力添えいただき、ありがとうございます。

    > とりあえずは VK_VOLUME_~ のように、OSのグローバルフックが掛かっていると思われるキーについては実用上の問題がほぼ起こると思うので、設定不可とした方がよさそうです。

    なるほど、問い合わせや利便性の面から考えると、グローバル フックが絡むキーは設定不可としておくのが良さそうですね。

    VK_LAUNCH_ ~ については、仮想キーコードだと問題ないとのことですが、実機での動作は分からないですよね?

    Mery で外部ツールに割り当てられたら面白そう、なんて思ったりしましたが😅

    > 単純に「キーボードがファームウェアでカスタムできるものだから、ショートカットキーの設定範囲も広くしたい」という用途であれば F13~F24 キーの設定でも十分賄えると思いますから、 「メディアキーのなかで VK_BROWSER_~ だけを対応する」という方針でもよさそう、とも個人的には思いました。

    ご意見をいただけて助かります。私のキーボードにはそのようなボタンが付いておらず、個人的には何の意見もありませんので、これらの情報はとても参考になります😊

     |  Kuro  |  返信
  11. > VK_LAUNCH_ ~ については、仮想キーコードだと問題ないとのことですが、実機での動作は分からないですよね?

    さすがにそれらが付いているキーボードは持っていないですね、、、
    昔はメールボタンの付いたキーボードとか見たことありますが、今日日Webメールを使うことが多いですし、メールキーを見かけることもなくなりましたね。

    > ご意見をいただけて助かります。私のキーボードにはそのようなボタンが付いておらず、個人的には何の意見もありませんので、これらの情報はとても参考になります😊

    私は既製品を使っていますが、自作キーボード界隈は https://salicylic-acid3.hatenablog.com/entry/via-manual で紹介されているようなVIAというカスタムソフトを使って、ファームレベルで配列の書き換えを行うのですよね。
    かなり詳細に画像付きで説明されているので分かりますが、F13~F24 キーや、メディアキーも自由自在です。

    F13~F24 は基本的にホットキーなどで使われていることがないため無害なうえ、ハードウェアとしてほぼ存在しないキーにも関わらずMery以外のソフトでも割りとショートカット設定ができるように対応されていることが多いので、AutoHotkeyでショートカットをこねくりまわしていた時期は利用していたことがありました。

     |  yuko  |  返信
  12. 情報ありがとうございます。

    うわー、自作キーボードの世界、初めて知りましたが、これは面白そうですね。

    F24 は笑ってしまいますね。Mery では何も対応した覚えがないのですが、ちゃんと動くのはすごいです。

    VIA 対応のキーボードかぁ…。って、私のおこづかいだと手が届きそうにありませんね。

    > さすがにそれらが付いているキーボードは持っていないですね、、、
    > 昔はメールボタンの付いたキーボードとか見たことありますが、今日日Webメールを使うことが多いですし、メールキーを見かけることもなくなりましたね。

    そうですよねぇ。昔は初心者向けのキーボードって感じで、全然興味がなかったんですが、今になって必要になるとは…。

    というわけで、メディア キーが搭載されたキーボードを買ってきました。(さすがに VIA キーボードは無理)

    ・MediaPlayPause
    ・VolumeMute
    ・VolumeDown
    ・VolumeUp
    ・BrowserHome
    ・LaunchMail
    ・LaunchApp2
    ・電源

    これらのボタンがあります。

    検証してみましたところ、どうやら、キーボードのドライバーの影響が考えられそうです。

    というのも、メーカー製のキーボードのドライバーが当たった状態だと、Mery のショートカットとグローバル フックの機能が同時に動作するということはなく、たとえば、[音量下] を押しても OS の機能が優先されて、Mery にはキーコードが送られませんでした。

    なので、そもそも Mery の設定でキーの割り当てすらできない状態ですね。これなら、現状の仕様のままでも問題ないかと思ったのですが…。

    ドライバーを削除すると、yuko さんのように、Mery のショートカットとグローバルフックの機能が同時に動くようになりました。

    LaunchMail や LaunchApp2 もダメですね。同時にメールや電卓が起動してしまいました。それに、BrowserHome も、同時にブラウザーが起動してしまいました。

    最低限のご要望どおりということで、VK_BROWSER_BACK と VK_BROWSER_FORWARD の 2 つだけ対応するのが無難かもしれませんね。

    でも、ここでどんでん返しです。

    VSCode 先生ですね。なんと、メディア キーを割り当てられました。

    もちろん排他制御とかは入ってないので、VSCode のショートカットとグローバル フックの機能が同時に発動してしまいます。

    音量を下げると同時にテキストをコピーしたり、音量を上げると同時にテキストをペーストしたり、なんでもアリです🤣

    こうなってくると、逆転の発想です。

    たとえば、LaunchMail ボタンにマクロを割り当てて、Mery に定型文を入力すると同時にメーラーを起動するとか、MediaPlayPause ボタンに Zen モードを割り当てて、Zen モードに入ると同時に Spotify で音楽を再生する、なんて使い方もアリなんじゃないかと思い始めました。

    Mery 的には、「VSCode でもそうなってます」って言えるので、問い合わせ対応については問題ないかなと思いますし。

     |  Kuro  |  返信
  13. > Mery 的には、「VSCode でもそうなってます」って言えるので、問い合わせ対応については問題ないかなと思いますし。

    天下のVSCode準拠という逃げ口上があれば問い合わせも怖くありませんねw

    > VIA 対応のキーボードかぁ…。って、私のおこづかいだと手が届きそうにありませんね。

    そんなKuroさんにこちらの商品!
    https://shop.yushakobo.jp/products/7984

    [普通のキーボード] → [Keyboard Quantizer Mini] → [PC]
    と間に噛ませるような形で、キーボードからの出力を途中でカスタマイズしてしまおうというグッズです。(VIA対応キーボードよりは安いものの、懐が痛む値段ですけど…)
    この製品は、ファームの書き換えにVIAではなく「Vial」とか「Remap」とかってカスタムソフトを使うことになる、とREADMEに記載されていますね。特にVialはWebアプリで動作する?らしく、使ってみたいなぁと羨望の眼差しを向けているところです。

    まぁ私の場合、「かえうち」という似たような用途のグッズを持っているので、試したいけど事足りているので買えないのですよね…😅

     |  yuko  |  返信
  14. 私も自作キーボード界隈に、小指程度つっこんでいますが、面白いですよ。
    イベントとかもあって。

    【キーボード好き集まれ!】 キーボード交流会 ”キー部 6% ” 開催 |
    https://www.youtube.com/watch?v=4JDMOe_AXrU

    ファームをC言語やRubyなどでいじくることができるので、
    プログラマーや、元プログラマーも多数、参加しています。

    Keyboard Quantizer は、BlueTooth版も昔使っていて、
    前に気に入ったキーボードを無理くり無線化するために使ってました。

    自由なキーを割り当てる既製品キーボードは、30キー以上では割高になりますが、
    「マクロパッド」(商品名ではなく、一般名称)という商品を探すと、
    Amazonや、AliExpressで、3キー ~ 12キーくらいの完成品が多数売られています。

    4キーくらいのマクロパッドなら、安いものは、2000円程度(送料込みだと3000円弱)で、見つけることができます。

    うまく気に入ることができれば、通常の作業にも、それなりに役に立てることができます。
    (特に多いのは、動画作成 界隈とイラストデザイン界隈ですが、それ以外の作業でも使い道が多いです)

    それこそ、遊舎工房に売っているようなものは、
    3000円くらいのテンキーでも、マクロパッドとテンキーを併用することができます。

     |  tak  |  返信
  15. さきほど機能追加のお礼でBoothで、少しだけお金を使ってきました。マクロパッドでなくとも、今回のメディアキーの埋め合わせを一部でもできたら…

    ところで、日本の会社は窓の杜かVectorか、Githubなら社内PCへのインストールを許可するところも多いので、Vectorも早く更新されるといいなと、どの要望よりも思っています。

    Aliexpressのマクロパッドは更に安いものもえりました。

     |  tak  |  返信
  16. 情報ありがとうございます。

    >> yuko さん

    Keyboard Quantizer Mini、なるほど、そんな方法もあるんですね。

    普通のキーボードが使えるのはお手軽で良さそうですが、これでは今回のような動作検証以外には使い道がなさそうな気が…

    ファンクション キーが 24 個並んでいるキーボードを作りたい、みたいなことには使えなさそうですねw

    でも、キーの長押しや 2 回押しで機能を変えられるのは便利そうだし、マクロ機能も面白そうです。

    > まぁ私の場合、「かえうち」という似たような用途のグッズを持っているので、試したいけど事足りているので買えないのですよね…😅

    いいじゃないですか!おしゃれですね、「かえうち」。やっぱりキートップもカスタマイズしたくなっちゃいますよね。って、高っ!😨

    今回のような検証に使うだけなら、ちょっとオーバースペックな気もしますが、そういうの関係なく、普通に欲しくなりますねコレ。

    >> tak さん

    動画、拝見しました。これは熱い分野ですね。

    個人的には、真ん中で 2 つに割れているキーボードが気に入りました。あれならオフトンで横になりながらでもキーボードが使えそうですね。

    > 4キーくらいのマクロパッドなら、安いものは、2000円程度(送料込みだと3000円弱)で、見つけることができます。

    おお!情報ありがとうございます。これは素晴らしいですね!価格も手ごろだし、実用的で便利そうです。今回のような検証にも十分使えそうですね。

    > さきほど機能追加のお礼でBoothで、少しだけお金を使ってきました。マクロパッドでなくとも、今回のメディアキーの埋め合わせを一部でもできたら…

    ありがとうございます!

    今回、購入したメディア キー対応のキーボードはハードオフで手ごろな価格で見つけたものなので、気にかけていただかなくても大丈夫でしたのに🙇‍♂️

    でも、Browser Back key や Browser Forward key は搭載されていませんし、マクロパッドがあれば今回対応した範囲以外のキーも色々と検証できそうですね。

    いただいたご支援で、マクロパッドを購入させていただき、今後の開発で十分に活用させていただきたいと思います。

    > ところで、日本の会社は窓の杜かVectorか、Githubなら社内PCへのインストールを許可するところも多いので、Vectorも早く更新されるといいなと、どの要望よりも思っています。

    Vector の更新に関しては、まだ具体的な計画が立っていない状況です。

    デジタル署名のないフリーソフトなので、セキュリティ的な面からも Windows のストア アプリとしてのリリースを望む声もありまして…。

    ベータ版は従来どおり無料にするとか、正式版もデジタル署名なしは無料で Vector などで配布するとか…、まだ何も決定していない段階ですね。

    とりあえず、ベータ版の検証を完了させることと、マニュアルの整備が今の目標となっています。

    > Aliexpressのマクロパッドは更に安いものもえりました。

    ありがとうございます!行ってきます!

     |  Kuro  |  返信
スポンサーリンク