- New member
- Reputation: 0
- Registered: 23-Nov-2015
- Posts: 1
I have started to use Colemak recently but something kept bothering me: the fact that there are extra keys on the bottom row and number pad of Brazilian (ABNT/ABNT2) keyboards, and that installing the regular Colemak package just disables them. The fact that the Right Shift key is farther away on ABNT layout because of this extra key had always bothered me (really awful design IMO), but having a disabled key in between makes it a lot more uncomfortable to use, so I looked up a way to fix that. I decided to post it here in case it might help other people.
I basically assigned the Rshift key to the extra key on the bottom row (so it's effectively like having a larger Rshift key), and restored the regular (,) and secondary (.) decimal keys to their default places in the number pad. I have made the setup files for both regular (with Caps Lock) and Backspace versions available below. Note that you might have to restart your computer for the ABNT and Backspace keys to work properly.
Details of what I did, if anyone wants to do their own modifications:
I found out that while the kbd.h file in MSKLC does correctly assign the keys to their standard values (VK_ABNT_C1 and VK_ABNT_C2), they actually don't work (probably an oversight by the programmers). Since ABNT_C1 (bottom row, scan code 0x73) has the exact same functionality the key to its left has now, I decided to use the method described here to reassign it to RShift and make the gap shorter, and while I left RShift unmodified, it could possibly be changed to something else. ABNT_C2 (number pad, scan code 0x7E) cannot be changed on kbd.h in a way to make it function the same way it does by default, so I had to do that by modifying the original KLC source for the Colemak package.
The relevant values you can change in kbd.h (both are under the "KBD_TYPE <= 6" block) are
#define T73 _EQ( ABNT_C1 )
#define T7E _EQ( ABNT_C2 ) // KB3270 => BACKTAB