のどか

Windows 11対応

2021-07-23時点で入手可能なWindows 11のInsider版にて、のどかが動作するか確認しました。
特に問題が無いように思います。Windows 10からのアップグレード後の最初のログイン時に、キー入力ができなくなることもなく、キーの入れ替え等は動作しています。Windows 11ではデバイスドライバの作りを変えたとの情報もあったので、少し心配していたのですが、大丈夫そうです。

また、親指の友Mk-IIキーボードドライバについても、動作しているように見えます。なおIMEの設定は以前の版を有効にしています。ちなみに、のどかと親指の友キーボードドライバは共存できないので、Windows再起動時にログイン画面でパスワードが正しく入力できない状態に遭遇しましたが、スクリーンキーボードを起動してパスワード入力を実行しログインが出来ました。

Windows 11対応” への32件のフィードバック

  1. Windows 10 update でときどき動かなくなっていたので心配していました.使えるそうなので安心しました.

  2. 本日Windows11にしたのですが、残念ながら、ドライバのインストールが出来ないらしく、インストール後にのどか起動時にエラーが出ました。
    仕方なく、デバイスドライバ無しモードを試してみましたが、こちらは、CTRLとCAPSを入れ替えると、CTRL(CAPS)を押した瞬間に、押しっぱなし状態になって、キーが入力できなくなります…

    すみませんが、ご対応をお願いしたいです…

    1. 御連絡ありがとうございます。のどかのデバイスドライバのインストールは、infファイルを右クリックしてインストールされましたか? 現在のどかのアプリ側がインストールされた状態でデバイスドライバだけが無い状態であれば、Windowsを再起動してから、デバイスドライバのインストール後、再起動するとどうでしょうか? 以上、よろしくお願いいたします。

      1. ご返信ありがとうございます。
        右クリックからインストールしていたのですが、ご返信を見てふと気づいた点があり、解決しました。
        NAS上(信頼できる場所ではないところ)に、のどかを保管していたため、そこからの右クリックインストールだと、特にエラーなどが出ることなく失敗するようです。

        デスクトップに一度コピーしてからのインストールとすることで解決しました。
        ありがとうございました。

        1. 動いて何よりです。また新しい情報をありがとうございます。デバイスドライバのインストールの際、ネットワークドライブ上だとダメなのですね。知りませんでした。ありがとうございます。

  3. 本当に、ありがとうございました。
    もう、のどかでCTRL+テンキーで色々とショートカット登録(+マウスは左手)で最適化してしまっていて、のどか無しだと、仕事にも支障が出るレベルなので、ホントに焦りました。
    これでまたしばらく安心してパソコンを使うことが出来ます。ありがとうございます!

  4. 二つほど質問させて下さい。

    のどかで、切り取り、コピー、貼り付け時に、
    それぞれ違う音を鳴らしたいのですが可能でしょうか?

    自作キーボード側で出力したF13~F24(捨てショートカットキー扱い)を、
    のどかで変換してしたいのですが、どうすれば良いでしょうか?

     key F13 = C-X (と一緒に音を鳴らす)

    ↑みたいなことをしたいのです。

  5. お問合せありがとうございます。調べてみました。
    1. 音を鳴らす方法
    &ShellExecute を使って、mshta.exeを呼べばならせるだろうと思います。

    https://appletllc.com/web/nodoka-doc/CUSTOMIZE-ja.html#function_ShellExecute
    &ShellExecuteの説明

    https://language-and-engineering.hatenablog.jp/entry/20100729/p1
    バッチで,wavなどの音声を再生しよう (コマンドプロンプトから音を鳴らす方法)

    2. F13~F24を使う
     def key F13 = &0x64 を設定すれば、F13キーの設定が使えるようになるものと思います。

    もし異なるスキャンコードをキーボードが出している場合には、設定ダイアログを出して、調査ボタンを押して、スキャンコードの調査のところの箱をクリックして、キーを押せば、スキャンコードが判ります。

    以上、よろしくよろしくお願いいたします。

  6. できました!
    何か月も迷っていた問題が解決して、
    これで独自キーマップの構築が捗ります。
    どうもありがとうございました。

  7. 本日、Windows11 22H2へのアップデートを行ったところ、何らかの理由でキーボードドライバが上書きされたようで、キーボードが効かない状態になりました。
    幸い、顔認証でログイン出来たので、のどかを削除、ドライバ再インストール、のどか再インストールで元に戻りました。
     
    富士通の2in1PCなので、環境に強く依存する現象の可能性も高いのですが、アップデート時には念のためのどかを一度削除頂くのが安全かと思い、情報共有を致します。

    1. 情報ありがとうございます。一度遭遇したことがある場合には、アンインストールして、アップデート後、インストールが必須だと考えた方が良いですね。

  8. M1 Mac 上でParallels DesktopにてクリーンインストールしたWindows11を使っています。
    これまでUS配列のHHKBで日本語英語切り替えを仮想マシンのWindowsにも反映させるために用いておりましたが、(Intel Mac + Windows10)
    今回は、のどかのインストール後、再起動するとデバイスドライバが正しくインストールされていません、というエラーとなってしまいます。
    上の方のようにNASからのインストールということもなく、ローカルからのインストールです。
    drivers から個別に inf ファイルを右クリックしてインストールを試しましたが
    x64, x86 両方とも同じ結果(エラー)でした。
    M1 Mac での Parallels では Arm版 Windows11 をインストールすることになりますが、
    それが原因でしょうか?
    Arm版Windows11ではx64エミュレータがデフォルトで入っていると理解していたのですが。
    正しいdriverのインストール方法についてご教示頂ければ幸いです。

    1. お問合せありがとうございます。Arm版Windowsでは、カーネルモードのデバイスドライバは、x86, x64版ではなく、Arm版である必要があります。このケースは想定しておらず大変申し訳ありませんが、提供しておらず提供の予定もありません。以上よろしくお願いいたします。

      https://answers.microsoft.com/ja-jp/windows/forum/all/windows/3fb16aef-b236-4148-8a75-778b59b7a9b2
      Windows 11のArm版アプリへの対応程度について

      1. のどかにはドライバーをインストールしないで利用できるモードがあったと思います.通常のインテル版Windows10で,このモードを使っているマシンを持っています.(ときどき,スタート後に入力を受けつけなくなりますが,IMEのON/OFFで受けつけるようになります.)
        このモードなら使えるのではないかと想像します.責任は持てませんので,自己責任で試して下さい.

        1. お返事ありがとうございます。
          ドライバを入れないバージョンで設定してみようと思いますが、
          もう少しご助言頂ければ幸いです。

          M1 Mac + HHKB Pro2 で
          ・Mac 上では Karabiner-Elements で右コマンド => F13 にマッピングし、
           F13 を入力ソース(英語/日本語) 切り替え に設定しています。
          ・同じように 右コマンドを押しただけで Win11 でも
           入力ソース(英語/日本語) 切り替えにしたいのです。

          Windows11上でののどかでの「右コマンド」キーの
          スキャンコードは
          0x38 D-NL-LeftAlt
          0x2a D-A-NL-LeftShift

          また仮想キーは
          0x12 &VK( D-MENU )
          0x10 &VK( D-SHIFT )

          となっています。(1回の押下で2つずつコードが出てくる)
          このスキャンコードである
          0x38 D-NL-LeftAlt
          0x2a D-A-NL-LeftShift
          を何らかの1つの仮想キーにマッピングし、それを入力ソース切り替えに
          設定すれば良いと思うのですが、

          このような「複合キー」が入力になっている場合の設定方法が
          書いてあるマニュアルのページをご存知でしょうか?

          1. 残念ながら,設定に関してあまり詳しくはありません.
            dot.nodokaやdefault.nodokaを見て試行錯誤したことはありますが,その程度です.

          2. お問合せありがとうございます。検討してみましたが実現解が見当たらず出来ないと考えた方が良いだろうと思います。お役に立てずに大変申し訳ありません。


            HHKB Pro2のマニュアル等も確認しましたが、右コマンドキーはWindowsモードであれば、Windowsキーのはずですが、そうではないモードをお使いという事になると推測します。

            ここで、右コマンドキーなのに、左ALTキーと、左Shiftキーが順次押されるコードが出てくるとのことですから、どちらもモディファイヤーキーであり、それぞれモディファイヤーキーから外して、
            https://appletllc.com/web/nodoka-doc/CUSTOMIZE-ja.html#mod

            別のキーに定義して、&Prefixを使えば、2個目のキーでIME ON/OFFにすることが出来る可能性がありますが、

            https://appletllc.com/web/nodoka-doc/CUSTOMIZE-ja.html#function_Prefix

            問題は左ALTキーと左シフトキーそれぞれ単独で存在しているキーが別にあるので、その機能を壊すことにつながります。

            また別の問題があり、デバイスドライバ―を使わないLL Hook版では、右シフトを認識できないというWindowsに依存した問題があり、右シフトは左シフトに置き換えるということを実施する必要があります。

            https://appletllc.com/web/nodoka-doc/CUSTOMIZE-ja.html#option_keyboardLLhook

  9. お世話になります。
    windows10からwindows11にアップデートした際、一部動作に不具合が生じており、色々試したのですが解決しないため、質問をさせていただければと存じます。

    従来より、英字キーボードにて、CapsLockキーとコントロールキーを入れ替えて使っておりました。

    —–
    mod control += CapsLock
    key *CapsLock = *LeftControl
    mod control -= LeftControl
    key *LeftControl = *CapsLock
    —-

    windows11にアップデート後、改めてのどかをインストールしリファレンスファイルを読み込んだところ、「CapsLockの物理キーを打鍵すると、その後コントロール修飾が固定された状態になる」という現象が発生しました。
    つまり、一度CapsLockの物理キーを打鍵したのち、独立してAキーを押せば全選択になり、独立してFキーを押せば検索窓が開く、といったような状況です。
    逆に言うと、通常のキー入力が出来なくなります。
    このような状況は、Shift → CapsLockと打鍵すると解除されます。
    CapsLockキーとコントロールキーの入れ替えは生産性の要のため、どうにか上記症状を回避できれば、と考えております。

    他の記述が何かしら干渉している可能性がありますので、参考までに、現在使用しているリファレンスファイルの記述を以下にまるごと記載いたします。
    以上、お手数をおかけいたしますが、何かしらアドバイスを頂けますと幸いです。
    どうぞよろしくお願い致します。

    —-
    include “104.nodoka”

    # ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    # ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    #
    # キーシーケンス定義
    #
    # ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    # ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    # カーソル移動キーを複数回連続で押す。
    keyseq $Up5 = Up Up Up Up Up
    keyseq $Up10 = $Up5 $Up5
    keyseq $Up20 = $Up5 $Up5 $Up5 $Up5
    keyseq $Down5 = Down Down Down Down Down
    keyseq $Down10 = $Down5 $Down5
    keyseq $Down20 = $Down5 $Down5 $Down5 $Down5
    keyseq $Left = Left Left Left Left Left
    keyseq $Right5 = Right Right Right Right Right

    # コマンドモード切替
    keyseq $ComOn = &Toggle(Lock0,on)
    keyseq $ComOff = &Toggle(Lock0,off)

    # 選択モード切替
    keyseq $SelOn = &Toggle(Lock1,on)
    keyseq $SelOff = &Toggle(Lock1,off)

    keymap Global

    # ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    # Global 修飾キー定義 ■■■■■■■■■■■■■■■■■■■
    # ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    # Enterキーをワンタッチで日英切り替えにする
    key *Enter = S-*CapsLock

    # Capslockとcontrolを入れ替える
    mod control += CapsLock
    key *CapsLock = *LeftControl
    mod control -= LeftControl
    key *LeftControl = *CapsLock

    #スペースキーに修飾キーを追加する
    mod Mod1 += !!Space
    key R-*Space = &Ignore

    # 右altキーをEnterキーに変更する
    mod alt -= RAlt
    key *RAlt = *Enter

    # printscreenキーをaltキーに変更する
    mod alt += PrintScreen
    key *PrintScreen = *RAlt

    # 右Shiftキーをprintscreenキーに変更する
    key *RightShift = *PrintScreen

    # 右Ctrlキーをaltキーに変更する
    mod alt += RightControl
    key *RightControl = *RAlt

    # コマンドモード切替キーを設定する
    mod alt -=LAlt
    key *LAlt = $ComOn

    #SemicolonとBackspaceを入れ替える
    key Semicolon = BS
    key BS = Semicolon

    key IC-Semicolon = BS
    key IC-BS = Semicolon

    #Quoteとdeleteを入れ替える
    key Quote = Del
    key Del = Quote

    key IC-Quote = Del
    key IC-Del = Quote

    #Mod1のコンテンツ
    key M1-*G = &SetImeStatus(on) K U T E N N Space Enter
    key M1-*H = &SetImeStatus(on) S A I G O N O M A R U Space Enter
    key M1-*X = &SetImeStatus(on) H I D A R I T U K I K A K K O Space Enter M I G I T U K I K A K K O Space Enter Left
    key M1-*C = &SetImeStatus(on) H I D A R I S U M I K A K K O Space Enter M I G I S U M I K A K K O Space Enter Left
    key M1-*V = &SetImeStatus(on) H I D A R I F U T U K A K K O Space Enter M I G I F U T U K A K K O Space Enter Left
    key M1-*B = &SetImeStatus(on) S A N T E N N Space Enter
    key M1-*A = &SetImeStatus(on) K U R O M A R U Space Enter
    key M1-*S = &SetImeStatus(on) Space H A I F U N N Space Enter
    key M1-*D = &SetImeStatus(on) Space Space K U R O T E N N Space Enter
    key M1-*F = &SetImeStatus(on) K O M E J I R U S I Space Enter
    key M1-*T = &SetImeStatus(on) M I G I Y A J I R U S I Space Enter
    key M1-*R = &SetImeStatus(on) F U T A E Y A J I R U S I Space Enter
    key M1-*E = &SetImeStatus(on) P U R A S U Space Enter
    key M1-*W = &SetImeStatus(on) T O U S I K I Enter
    key M1-*Q = &SetImeStatus(on) M A I N A S U Space Enter
    key M1-*Z = &SetImeStatus(on) H I D A R I K A K O Space Enter M I G I K A K O Space Enter Left
    key M1-*M = &SetImeStatus(on) P A S U I C H I Space Enter
    key M1-*Comma = &SetImeStatus(on) P A S U N I Space Enter
    key M1-*Period = &SetImeStatus(on) J I T A J U U Space Enter
    key M1-*J = &SetImeStatus(on) O S E M O R I Space Enter Enter
    key M1-*K = &SetImeStatus(on) O T S U M O R I Space Enter Enter
    key M1-*L = &SetImeStatus(on) Y O R O O N E Space Enter
    key M1-*U = &SetImeStatus(on) M E A D O I C H I Space Enter
    key M1-*I = &SetImeStatus(on) M E A D O N I Space Enter
    key M1-*O = &SetImeStatus(on) M E A D O S A N Space Enter

    #コマンドモードのコンテンツ
    key L0-A = C-Left
    key L0-F = C-Right
    key L0-S = Left
    key L0-D = Right
    key L0-K = Up
    key L0-L = Down
    key L0-I = $Up5 $Up5
    key L0-O = $Down5 $Down5
    key L0-U = PageUp
    key L0-P = PageDown
    key L0-J = Home # 行頭へ移動
    key L0-Semicolon = End # 行末へ移動
    key L0-X = BackSpace
    key L0-C = Delete
    key L0-V = C-V $ComOff
    key L0-LAlt = $ComOff
    key L0-H = $SelOn

    #選択モードのコンテンツ
    key L1-S = S-Left
    key L1-D = S-Right
    key L1-K = S-Up
    key L1-L = S-Down
    key ~IC-L1-X = C-X $SelOff
    key ~IC-L1-C = C-C $SelOff
    key L1-H = $SelOff

    # 選択モード中に使った場合、選択モードをオフにする操作
    key C-Z = $SelOff C-Z
    key C-X = $SelOff C-X
    key C-C = $SelOff C-C
    key C-V = $SelOff C-V

    # 文字変換中のキー入力効率化

    key IC-Quote = C-Down # 部分確定
    key IC-M1-A = S-Left # カレント文節を縮める
    key IC-M1-F = S-Right # カレント文節を広げる
    key IC-M1-S = Left # カレント文節を左へ
    key IC-M1-D = Right # カレント文節を右へ
    key IC-M1-Semicolon = End # 最後の文節がカレント文節になる。
    key IC-M1-L = Down # 次の候補へ
    key IC-M1-K = Up # 前の候補へ
    key IC-M1-I = PageUp # 次候補群を表示
    key IC-M1-O = PageDown # 前候補群を表示
    key IC-M1-U = F6 # ひらがな
    key IC-M1-J = F7 # カタカナ
    key IC-M1-T = F9 # 全角英数
    key IC-M1-Y = F10 # 半角英数

    1. moritaさん、お問合せありがとうございます。
      こちら、承認しないと表示されないので、何度も書き込みされたのに表示されず、お手数をおかけして、申し訳ありませんでした。

      窓使いの憂鬱の時代から、モディファイヤーキーが押しっぱなしになるというのは、報告されている不具合ですが、解決策が見つかっていない不具合となります。

      復旧策としては、実施されているように、Ctrlキーが押された状態の場合には、Ctrlキーを押して離すことです。Shift → CapsLockではなく、CapsLockだけ押して離しても復旧するものと思います。

      発生させなくする解決策は判っていません。解決策を提示できず大変申し訳ありません。

      以上、よろしくお願いいたします。

      1. 早速コメント頂きありがとうございます。
        解決策がない旨承知いたしました。

      2. 先ほど入力途中に送信してしまいました。失礼いたしました。

        復旧策ですが、ご提示いただいたCapsLockだけ押す、だと復旧せず、何故かShift → CapsLockと押すと復旧をします。これはたまたま見つけました。
        とりあえず公式に原因不明とお聞きし区切りがつきましたので、次善の策を考えたいと思います。

        のどかには本当に助けられています。今回のようなサポート含め、ありがとうございます。
        引き続きよろしくお願いいたします。

        1. モリタ様、コメントどうもありがとうございます。今後ともよろしくお願いいたします。

  10. Windows 22H2 OSビルド 22621.1992 において、のどかインストール後、キーボードおよびマウスが使えなくなります。一度インストールに失敗し、OSインストール直後に再インストールしても現象は変わりませんでした。
    インストール中には、競合するデバイスドライバ (SynTP)がある旨の表示が一旦されました。
    デバイスドライバをインストールしない方式を選ぶことによって正常に動作しました。
    以上ご報告まで。

    1. 情報ありがとうございます。SynTPがあっても、レジストリ上での順番を調整してインストールするので、インストーラーとしては警告を出して、ユーザーの指示を優先としています。しかしインストール後動かないということで、SynTPとの共存不可という事例ともとらえることができます。SynTPは、Synaptics Pointing Deviceのデバイスドライバでしょうから、ない装置もあると思いますが、ノートPCで、これがある場合、通常除外はできないだろうと思います。重ねて情報提供ありがとうございました。

  11. OS
      エディション Windows 11 Pro
      バージョン 22H2
      インストール日 ‎2022/‎10/‎29
      OS ビルド 22621.2215
      エクスペリエンス Windows Feature Experience Pack 1000.22662.1000.0

    のどか
      4.30 for x64 (nodokad: $Revision: 1.33 $)

    dot.nodoka

    include “read-keyboard-define.nodoka”
    keymap Global
    def option mouse-event = enable

    上記環境において、Ctrl-Shift-Escなどでタスクマネジャーを起動すると、タスクマネジャー以外のウィンドウに対するマウス操作ができなくなるようです。
    タスクマネジャーを終了すれば、他のウィンドウに対してマウス操作ができるようになります。
    #def option mouse-event = enable
    のように、dot.nodokaの末尾の行をコメントアウト(して再読み込み)すると、タスクマネジャーを起動しても、他のウィンドウに対して問題なくマウス操作できるようです。

    本、dot.nodokaは原因切り分けのために最小限の要素を含んだものです。
    実際は、大きなファイルで様々な設定をしており、タスクマネジャー起動時は、nodokaを一時停止して運用しています。
    これがバグか仕様か、なんらかのAPI制限か、分かっておりませんが、可能であれば、
    def option mouse-event = enable
    であっても、タスクマネジャー起動中に他のウィンドウに対してマウス操作ができるとありがたいです。

    1. お問い合わせありがとうございます。メールもありがとうございました。こちらの書き込みは、確認してから表示させるようにしているのでお手数をおかけして大変申し訳ありません。

      お問い合わせの問題は、Windows Vista以降でのUIPIの分離に関するもので、文末に示したドキュメントの内容が近いのだと思いますが、あまり明確には書かれていません。タスクマネージャー、グループポリシーマネージャなど、一見ユーザー権限で動いているようでしかし、システム変更に関するものは、マウスのフックが阻害されてしまいます。

      のどかは管理者権限のウィンドウへの操作は出来るのですが、本件だけはうまくいかないです。

      解決策としては、nodoka64_hil.exe -m を使えば、タスクマネージャーが表に居ても大丈夫なように見えます。nodoka64_hel.exeは、高ILにしているので、それが関係しているだろうと思います。副作用はあり、nodoka64_hil.exe実行時に、権限の昇格ダイアログが開きます。

      https://learn.microsoft.com/ja-jp/windows/win32/winauto/uiauto-securityoverview
      支援技術のセキュリティに関する考慮事項

      以上、よろしくお願いいたします。

      1. 回答ありがとうございます。

        ILによる制約があるのですね。良く理解できました。
        nodoka64_hil.exe で解決できました。

        ただ、指摘されているように、昇格ダイアログが表示される制約があるため、ひとまず、運用としては、従来のhilではないnodokaを動かすことにしました。
        そして、高いILで何かを動かしてしまい、マウスが効かなくなったときには、キーボードのWindowsキー で nodoka と入力してEnterなどで、nodokaの設定ダイアログを画面に表示させ、そこで一時停止をすることで、回避しようと思います。

        また、この運用を試しているときに気づいたのですが、タスクマネジャー起動直後は、タスクマネジャーにフォーカスがあり、他のウィンドウに対してマウスが効かないという本現象が発生しますが、一度、Alt-TABなどで、タスクマネジャー以外の、通常ILのアプリにフォーカスを移すと、本現象は解消され、次にタスクマネジャーにフォーカスを当てるまでは、再発しないようです。
        ですので、高ILのアプリを起動してしまった場合、ひとまず、Alt-TABでフォーカスを変えるというのでも、十分実運用に耐えそうなことが分かりました。

        1. ご確認いただき大変ありがとうございます。またAlt-Tabでフォーカスを移す方法は、新情報だと思います。ありがとうございます。今後ともよろしくお願いいたします。

  12. CtrlキーとCAPS LOCKキーを入れ替えた場合、Ctrlキーが押されたままの状態になる問題ですが、逃げる方法を見つけました。
    Microsoft社から、ctrl2cap
    https://learn.microsoft.com/ja-jp/sysinternals/downloads/ctrl2cap
    と言うソフトが提供されています。このソフトを使い、kernel レベルでキーを入れ替えます。そして、nodoka 側でキーを入れ替えている部分を削除します。こうする事で、nodoka を使っても CAPSLOCKキーに ctrl キーを割り当てられます。
    但し、ctrlキーを CAPSLOCKキーに割り当てるだけなので、CAPSLOCKキーはなくなってしまうのが欠点です。

    1. 情報ありがとうございます。ctrl2capは昔から存在を知っていますが、nodokaと同時に使ったことはなかったです。ソースコードは昔は公開されていたので持っているので、具体的にどのようなことを実施しているか確認してみようと思います。

      1. https://learn.microsoft.com/ja-jp/sysinternals/downloads/ctrl2cap
        ソースコードを見る必要もないようです。上記ページの情報では、スキャンコードを入れ替えて上位フィルタに渡すので物理的に置き換えたのと同じということになっているということと理解します。のどかというか窓使いの憂鬱では、デバイスドライバを使っているものの、キーコードの入れ替えはユーザーモードプログラムで実施しているので、作りとしては等価といえるのですが、TATが長いので落としてしまうことがあるのかもと考えます。別解としては、親指の友のようにキーレイアウトを変更したり、あるいはscanmapコードをレジストリで入れ替えるような作りならば、タイムラグは無いので、Ctrlキーが押されたままにはならないだろうと考えます。

morita へ返信する コメントをキャンセル