nodoka で右 Shift キーが効かなかった件

昨日に引き続きキーカスタマイズのネタです。

実は Windows で Emacs 似のキーバインドを使いたいために nodoka というユーティリティを使っているんです。
で、今まで気付いては忘れてた挙動に「右 Shift キーでは Shift されない」というのがありました。

今回よく調べてみたところ、nodoka を一時停止すると問題無く Shift されるので、設定が原因だろうと色々試しました。
調査とログのダイアログを駆使して探った結果、下のような設定で無事に動きました。


# 右 Shift のキー名を定義
def key E0RightShift E0RShift = E0-0x36
# 右 Shift を 左 Shift とみなす
def subst E0RShift = LShift
# 仮想キーの Shift が押されるように設定
keymap Global
mod shift += E0RShift
key *E0RShift = *LShift
# nodoka を使いたくないキーマップ(KeymapDefault)にも適用
keymap KeymapDefault
mod shift += E0RShift
key *E0RShift = *LShift

これはマニュアル(カスタマイズ詳細)中央あたりの次の部分を参考にしました。

なお、右シフトキーが使えないことは致命的なので、ホスト側の のどか設定ファイルでは、window RemoteDesktop /mstsc\.exe/ を記述し、ホスト側でのキー入れ替えは無いことにして、リモート側のどかの設定ファイルでは、下記のような設定をすると良いでしょう。

def key E0RightShift E0RShift = E0-0x36

mod shift += E0RShift

key *E0RShift = *LShift

カスタマイズまわりはハマると面倒ですね。