That is exactly the problem ... they keyboard does not send an "A" .. it sends a scancode for A as defined on a ANSI QWERTY keyboard.
It's up to the OS to interpret that ... for example it may interpret that as a B instead, because your logical layout has been defined to have a B on that key.
Well that's how I understand how QMK operates.... hence my comment earlier about it faking being an ANSI QWERTY board to the OS.
xev reports this from my MS Natural (QWERTY) keyboard when pressing a A
I must be having a senior moment. You have completely lost me.
xev from my splitography which has row-2-col-4 defined as "A"
KeyPress event, serial 28, synthetic NO, window 0x2400001,
root 0x16b, subw 0x0, time 92507274, (197,329), root:(892,347),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x2400001,
root 0x16b, subw 0x0, time 92507275, (197,329), root:(892,347),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x2400001,
root 0x16b, subw 0x0, time 92530303, (197,329), root:(892,347),
state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x2400001,
root 0x16b, subw 0x0, time 92530645, (197,329), root:(892,347),
state 0x1, keycode 38 (keysym 0x41, A), same_screen YES,
XLookupString gives 1 bytes: (41) "A"
XmbLookupString gives 1 bytes: (41) "A"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x2400001,
root 0x16b, subw 0x0, time 92530647, (197,329), root:(892,347),
state 0x1, keycode 38 (keysym 0x41, A), same_screen YES,
XLookupString gives 1 bytes: (41) "A"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x2400001,
root 0x16b, subw 0x0, time 92531019, (197,329), root:(892,347),
state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
So you don't want this? I can plug this onto a Windows/OSX/Linux box and produce "aA" leaving all systems with their defaulted US keyboard.
I am very confused as to what you are trying to emulate.