LCtrlのモディファイヤーをCtrlからWinにして、キー自体も入れ替える設定ファイル。
#
include "109.nodoka"
Keymap Global
key F1 = &DescribeBindings
mod Ctrl -= LCtrl
mod Win += LCtrl
key LCtrl = LWin
以下、F1キーを押したときのログ
window Global ( /.*/ || /.*/ ) = &OtherWindowClass
mod Shift = LeftShift RightShift
mod Control = RightControl
mod Alt = LeftAlt RightAlt
mod Windows = LeftWindows RightWindows LeftControl
key F1 = &DescribeBindings
key LeftControl = LeftWindows
[2] については、こちらの定義したキーマップが複雑 (4, 5個の階層をもつようなキーマップ群) でしたので、
親の設定を子が上書きして、想定した挙動となっていないようでした。
あまりちゃんとした理解ができていないのですが、 key A = B と書いていたところを
def subst A = B に書き換えてやることによって私の望む挙動にすることができました。
問題点として
mod0+P or Nを同時に押下し、キー操作を中止し、改めて単独で P or N を押下すると、
mod0(英数キー)を押下していないのに mod0 + P or N と同じ操作の扱いになってしまいます。
この問題を解決するためにはどのように記述すればよろしいでしょうか?
何度も申し訳ありませんがよろしくお願いいたします。
●設定ファイル内容
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include "104.nodoka"
define USEdefault
include "default.nodoka"
#window W /\.exe:Emacs/ : Global
#window W /:Emacs/ : Global
window W /macs/ : Global
key x = e m a c s
#window W2 /\\notepad\.exe/ : Global # なぜマッチしない?
window W2 /notepad\.exe/ : Global # matched
key x = n o t e p a d
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
●問題
CLASS: C:\Users\hoge\apps\emacs-24.5\bin\emacs.exe:Emacs
TITLE: C:\Users\hoge\apps\emacs-24.5\bin\emacs.exe:emacs@VAIO
↑アプリ(NTEmacs)上では、window W にマッチして key x=... が働く
と期待しているのですが、 x 押してもそのまま x が入力されるだけです。
メモ帳の上で x 押すと notepad が入力されます。(W2は成功)
失敗環境: のどか4.29 Windows7-32bit
別のWindows環境では期待通り x → emacs となりました。
成功環境: のどか4.26 Windows7-64bit
●ログ
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
のどか 4.29 for x86
built by applet@airport (Sep 18 2015 00:21:53, Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 14.00)
started at 2016年6月6日 9:52:10
C:\Program Files\nodoka\nodoka.exe
use Keyboard filter driver.
------------------------------------------------------------
log was cleared at 2016年6月6日 11:43:00
HWND: 0
THREADID:5892
CLASS: C:\Users\hoge\apps\emacs-24.5\bin\emacs.exe
TITLE: C:\Users\hoge\apps\emacs-24.5\bin\emacs.exe