geekhack

geekhack Projects => Making Stuff Together! => Topic started by: edrin88 on Mon, 14 August 2023, 03:52:58

Title: Designing kb with special punctuation keys
Post by: edrin88 on Mon, 14 August 2023, 03:52:58
I'd like to do a build with dedicated punctuation keys such as {} () : $ " < > ? ! @ # ~ +.   Specifically for programming, so I don't have to hold down shift for them.  I'm new to kb building though have experience in electronics and microcontrollers. For fabrication my thought is to hand-wire, not PCB, and laser cut a plate from plexi as that's something I have readily available.  With all the guides I'm feeling pretty good about tackling this :)  My question is just, are there any 'gotchas' to watch out for with a special layout like this?
Title: Re: Designing kb with special punctuation keys
Post by: vvp on Mon, 14 August 2023, 08:01:53
Your firmware will need to support macros since e.g. @ will need to be sent as Shift-down, 2-down, 2-up, Shift-up sequence. It is the same for the rest of them. So you want to build a "macro-pad".

If pressing a shift key si a problem for you then consider getting a keyboard with thumb clusters  and remapping shift keys to thumbs.  E.g. like K84CS layout (https://deskthority.net/viewtopic.php?p=348782#p348782). A commercial alternative is Kinesis Advantage 360.

EDIT: The message board wants to be intelligent and decorate my URL  ... badly.
Title: Re: Designing kb with special punctuation keys
Post by: Mandan on Sat, 19 August 2023, 01:09:06
I'd like to do a build with dedicated punctuation keys such as {} () : $ " < > ? ! @ # ~ +.   Specifically for programming, so I don't have to hold down shift for them.

As a matter of curiosity, where will you put the extra keys?  Between the top row and function keys, or on the left where the function keys used to be?

Moving off-topic slightly, there are some "programmer" keymaps that swap the top row keys' shifted states.

"1,!" and "2,@" become "!,1" and "2,@", and so forth.

Hit Capslock or Shift to key numbers, or use the numeric keypad if your keyboard has one.