Thanks for the guide, I have tried my best to follow it, I think I may have a thing or two wrong as I could not get it to work.
I created a
AppDefCfg_KMJ.xml file following your sample xml and placed it at
/appdata/. I then stopped the 3dx service with:
Upon restarting the service by opening the 3Dx GUI window, enabling logging via the task tray, two additional files get created in
\appdata\:
Code: Select all
...\AppData\Roaming\3Dconnexion\3DxWare\Cfg\AppDefCfg_KMJ.xml
...\AppData\Roaming\3Dconnexion\3DxWare\Cfg\Global.xml
...\AppData\Roaming\3Dconnexion\3DxWare\Cfg\UserInfo.xml
Using baretail to read the log fie, I got some lines similar to what you shared:
Code: Select all
...
00000400 3/5/2024 18:9:49.015: CreateCfgChain: CfgChain is
ID=ID_Global_Cfg FileName=C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\Global.xml FileExists=true InheritsFromID=ID_Global_Cfg
ID=ID_Global_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\Global.xml FileExists=true InheritsFromID=
ID=ID_EnUS_LocalizationTables FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\en-US.xml FileExists=true InheritsFromID=
ID=ID_WindowsTerminal FileName=C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\WindowsTerminal-KMJ.xml FileExists=false InheritsFromID=ID_Default_KMJ_Cfg
ID=ID_Default_KMJ_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\AppDefCfg_KMJ.xml FileExists=true InheritsFromID=ID_Default_Cfg
ID=ID_Default_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\AppCfg.xml FileExists=true InheritsFromID=ID_Base_Cfg
ID=ID_Base_Cfg FileName=C:\Program Files\3Dconnexion\3DxWare\3DxWinCore\Cfg\Base.xml FileExists=true InheritsFromID=
00000040 3/5/2024 18:9:49.023: RefreshAffectedCfgs: Rereading C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\PureRef.xml
00000400 3/5/2024 18:9:49.023: Cfg::Cfg(pCfgInfo:ExecutableName: PureRef.exe, appSig:PureRef.exe/PID=11680/Focus=0x291446/Cursor=0x291446) Filename:C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\PureRef.xml
00000400 3/5/2024 18:9:49.023: Cfg::Init: m_pCfgInfo:ExecutableName: PureRef.exe, m_AppSignature:PureRef.exe/PID=11680/Focus=0x291446/Cursor=0x291446) Filename:C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\PureRef.xml
00000040 3/5/2024 18:9:49.024: TlXmlDoc::TlXmlDoc(): Error: Giving up trying to open file C:\Users\user1\AppData\Roaming\3Dconnexion\3DxWare\Cfg\PureRef.xml. errMsg: The system cannot locate the object specified.
...
And then as I move the
device X axis the window under the mouse pointer get scrolled and these lines get printed:
Code: Select all
...
00000020 3/5/2024 19:9:24.282: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.075000, pressLevel=0.572825
00000020 3/5/2024 19:9:24.297: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-78
00000020 3/5/2024 19:9:24.297: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.078000, pressLevel=0.575758
00000020 3/5/2024 19:9:24.313: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-78
00000020 3/5/2024 19:9:24.313: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.078000, pressLevel=0.575758
00000020 3/5/2024 19:9:24.329: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-80
00000020 3/5/2024 19:9:24.329: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.080000, pressLevel=0.577713
00000020 3/5/2024 19:9:24.345: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-78
00000020 3/5/2024 19:9:24.345: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.078000, pressLevel=0.575758
00000080 3/5/2024 19:9:24.345: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0
00000020 3/5/2024 19:9:24.362: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-74
00000020 3/5/2024 19:9:24.362: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.074000, pressLevel=0.571848
00000020 3/5/2024 19:9:24.378: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-62
00000020 3/5/2024 19:9:24.378: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.062000, pressLevel=0.560117
00000020 3/5/2024 19:9:24.393: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-53
00000020 3/5/2024 19:9:24.394: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.053000, pressLevel=0.551320
00000020 3/5/2024 19:9:24.409: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-42
00000020 3/5/2024 19:9:24.409: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.042000, pressLevel=0.540567
00000020 3/5/2024 19:9:24.425: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-26
00000020 3/5/2024 19:9:24.426: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.026000, pressLevel=0.524927
00000020 3/5/2024 19:9:24.441: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-15
00000020 3/5/2024 19:9:24.442: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.015000, pressLevel=0.514174
00000020 3/5/2024 19:9:24.457: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-16
00000020 3/5/2024 19:9:24.457: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.016000, pressLevel=0.515152
00000020 3/5/2024 19:9:24.473: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-18
00000020 3/5/2024 19:9:24.474: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=-0.018000, pressLevel=0.517107
00000004 3/5/2024 19:9:24.489: Device: \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}: EPS mean=62.504801, standardDeviation=0.078185
00000020 3/5/2024 19:9:24.490: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=0
00000020 3/5/2024 19:9:24.490: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x0, delta=0.000000, pressLevel=0.499511
00000004 3/5/2024 19:9:26.777: HIDDev.ProcessInputReport: Battery Level Packet: 14 0 from \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}
00000004 3/5/2024 19:9:26.777: UdCtlDevice_SetBatteryState_AllMatching: Setting (actual) device \\?\HID#VID_256F&PID_C62F#9&83445F7&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030} life to 14, charging to 0
00001000 3/5/2024 19:9:26.777: UdProcessCommEvent: DEVICE_BATTERY_EVENT: Optimization: value didn't change. Not writing files.
...
I am not sure if the above messages correspond to the action in the
Output node:
Code: Select all
<Output>
<ActionID>HIDMouse_X</ActionID>
</Output>
I am not sure what
HIDMouse_X is supposed to do, I tried replacing it, with something I understand:
Code: Select all
<Output>
<ActionID>KB_Keystroke</ActionID>
<Scale>3.00</Scale>
<RepeatStyle>Auto</RepeatStyle>
<KeyStroke><Key>1E</Key></KeyStroke>
</Output>
But this does not seem to get picked up, even after I stopped, then started the service, X axis is still performing wheel scrolling instead of typing
1.
There is still a
AppDefCfg_KMJ.xml over at
C:\Program Files I made a backup of it and deleted it but upon restarting the service, it complains with message box, so I restored it:
Code: Select all
Exception: Object reference not set to an instance of an object.
For completeness sake, the full content of the
AppDefCfg_KMJ.xml file I placed in
/appdata/ is:
Code: Select all
<AppDefCfg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Default="false" CfgFormatVersion="1.3" ThisFileVersion="2.0">
<CfgProperties>
<ID>ID_Default_KMJ_Cfg</ID>5
<Name>STR_DEFAULT_KMJ</Name>
<InheritsFromID>ID_Default_KMJ_Cfg</InheritsFromID>
</CfgProperties>
<AppInfo>
<Signature>
<Transport>KMJ</Transport>
</Signature>
<Options>
<SendDeviceChangeEvent>false</SendDeviceChangeEvent>
</Options>
</AppInfo>
<Devices>
<Device>
<ID>ID_Standard_3D_Mouse</ID>
<Name>Standard 3D Mouse</Name>
<CurrentAxisBank>Default</CurrentAxisBank>
<AxisBank Default="true">
<ID>Default</ID>
<Name>STR_DEFAULT_BANK</Name>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_X</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDMouse_X</ActionID>
</Output>
</Axis>
</AxisBank>
</Device>
</Devices>
<AuthorInfo>
<DriverVersion>17.8.20.20889</DriverVersion>
<LastChange>
<Tool>3DxSmartUI.exe</Tool>
<Version>1.2.24106.20869</Version>
<Date>5/3/2024 3:59:30 PM UTC</Date>
<User>user1</User>
</LastChange>
</AuthorInfo>
</AppDefCfg>
jwick wrote: ↑Fri May 03, 2024 5:07 am
These are the sort of problems you might encounter when we ship a default cfg file (FireFox, Explorer, etc).
Searches are done one axis, and one button, at a time. There's a lot of flexibility there, if you can keep track of what is happening.
Baretail is your friend.
Sounds really intresting for sure, and I will be sure to take a close look when I get my bearings together, thanks!