What do you program your function and navigation keys to do?

I finally got my Hidari built and now I have a full Numpad, and I need to do something with it, as I don’t really need a numpad (I just filled the numpad with keys for now). I bought the board more for the left side arrows, and wanting some navigation keys on the left hand side.

But, now that I have all these keys to work with I would love to hear about what people use their function keys and nav keys for. Any cool macros you have set up? I’m not even sure what is possible to be honest. I do know, that once I use the solder PCB I am going to go with a full 1u macropad setup.

Right now I definitely need “insert” as I use it in a mind mapping program I use. I also use page up and page down a bit. I am not a huge f-row user.

I do a ton of cutting and pasting for work so I was thinking of setting up dedicated keys for that. Though I am not even sure if that is possible as I am completely new to this.

Thanks for any ideas you share!


I like to use my arrow keys for media control on a second layer largely because I’ve had several other boards do this by default and I like being consistent.

I honestly think Media keys are my number one additional functionality.

This is the issue I have had when getting back into TKLs and boards with macro pads… when you actually sit down and have to think of what to use the extra keys, it is sometimes hard to come up with things.

Play/Pause, Skip forward, Skip back, Mute are good media keys. VolUp and VolDn are other good ones. I will say that I have all of these keys mapped to a layer largely under my home row, and I have built a muscle memory up there that I tend to use more.

More recently I experimented with dedicated copy and paste macros for the Mac. Along with dedicated undo and redo keys. They get some use, but honestly more often than not, I forget they are there.

Here is a sample of my QMK code for the macros. I was a little frustrated with my initial dive into macros. I don’t think QMK has this section the best documented. It seemed really straight forward initially, but I don’t get why some avenues to get stuff to work seem to work and others don’t. I believe the following code snippet is more of an “old fashion” way.

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
    case MC_UNDO:
        if (record->event.pressed) {
            SEND_STRING(SS_LCMD("z")); // COMMAND + Z

    case MC_REDO:
        if (record->event.pressed) {
            SEND_STRING(SS_LCMD(SS_LSFT("z"))); // COMMAND + SHIFT + Z

    case MC_COPY:
        if (record->event.pressed) {
            // when keycode QMKURL is pressed
            SEND_STRING(SS_LCMD("c")); // COMMAND + C

    case MC_PSTE:
        if (record->event.pressed) {
            // when keycode QMKURL is pressed
            SEND_STRING(SS_LCMD("v")); // COMMAND + V

    return true;

I also saved this link some time ago cause it had some neat macro ideas, but I haven’t gone back and looked at recently. Maybe you will or others will get some ideas out of it!


For the most part, I’ve settled-into a main layout; 67-key with at least one function-layer and the right column being all navigation; Home, PgUp, PgDn, End - and of course the arrows.

I didn’t use the nav keys until getting into prepress, which involves lots of document inspection - those keys I’d never even used and frankly didn’t know the function of before quickly became essential. Now I use them all the time, at work and otherwise.

As for the function layer; mostly obvious stuff. Esc key for tilde, number row for F-keys, Backspace for Delete, volume, basic media controls, etc. I used to use a few macros but haven’t found myself needing them lately; I’d set-up Ctrl+Alt+Del, Alt+F4, and a few others before realizing I could use layered keys in combinations.

1 Like

I think so as the LCtl(kc), LSft(kc), LAlt(kc), and LGui(kc) seem to accomplish the same thing. There may be a difference in how they work or what the code does, I’m no expert on that stuff so I can’t weigh in on whether one method is better.

That being said, a couple “macros” I have on my secondary layer as well as my macropad are RCtl(KC_PGUP) and RCtl(KC_PGDN) for moving through tabs in my web browser, LSft(KC_PGUP) and LSft(KC_PGDN) for scrolling in the terminal. I also have SGUI(KC_4) and SGUI(KC_3) for partial and full screenshots, respectively. These use the Modifier Keys in QMK that send a modifier+basickeycode. I’m on Mac, hence the use of GUI (CMD) in my examples.

So you are a dev ?


The thing that always frustrates me with attempting to program actions to happen via keyboard commands is worrying about overlap. So I can make a key hit command-control-x all at once and then how do I know that won’t be taken by another hotkey in a program?

Right now I have a few random function keys on my macropads to launch different scenes in OBS but there has to be a better way where you are guaranteed to not overlap.

At least some keeb software allows for the programming of defined delays between keys, and even defining how long a given key is pressed, both down to the millisecond. I know QMK supports this, but I haven’t looked into how it works there.

Thanks! It was some time ago, but I think I tried what you are talking about and ran into issues. I can’t really recall what those issues were at this point in time. I just got it them working and then never really touched the stuff again.

My QMK updates were always done in the office depending on how bored or how much of a distraction I wanted. QMK was good cause it looked like I was coding while doing my own thing :joy: Haven’t been in the office in a while to warrant goofing off with QMK.

1 Like

I’m the same way, get it working then try not to break it or if possible leave it alone. Vial has been really helpful in enabling me to use Tap-Dance functions while I’m still figuring how to implement that in code.

1 Like

No. I am an executive director of a non profit. The cutting and pasting is mostly for things like budgets, strategic plans, emails, writing, calendaring, etc.

Nothing as exciting as being a dev :slight_smile:

Thanks for all the replies. I am going to start figuring out what to with all these extra keys this week. In reality I probably need less then half of the numpad, but the Hidari was the only southpaw option with southpaw arrow keys (which is what I really needed) so I will probably have some very pristine, un-shined keycaps as time passes.

1 Like

I use the arrows to go back in text when I notice a spelling error, or to navigate recently used commands n the in-game command prompt.

Don’t think I use them for anything else :thinking:

I use them for media controls (volume up, down, mute), or leave them as is / un-used. Mostly because, when switching keyboards (say, from a TKL to HHKB), chording is a more consistent experience than macro keys.

Honestly, you might just find it faster and more intuitive to use Cmd/Ctrl-C/V for copy paste then having to hunt down the macro key if you really do use it that much.

IME, macro keys are more useful for more complicated key sequences or scripts or something that would normally take several mouse clicks to accomplish.

That is true on the macro being more complicated, it is just the desire to try and use all of the keys on the keyboard :slight_smile:

I am in love with having my arrow keys on the left side of the board, and I actually like the different look of the board with the numpad on the left, so even if I never use all the keys, that may be enough.

1 Like

I use a 60% most of the time with one extra layer set up that has the arrow keys on WASD, tilde under escape, and that’s it. I used to put the F keys on that layer too, but I never used them so I stopped bothering. In the rare case that I need an F key (it’s been a few months, I think it was to get into my computer bios last time) I just grab a tkl for a few min. I used to try to put media keys too but could never remember what was where. I have a dedicated macro pad with the media keys but don’t really use them.

I have a few macros set up for work with autohotkey:

  • sign into restricted system 1 (saves me two mouse clicks)
  • sign into restricted system 2 (saves me typing my credentials and four mouse clicks)
  • open a specific web page in default browser, run some commonly used actions (the page is an index and the actions are to apply filters), and export the results (saving seven mouse clicks and some scrolling)
  • shift + ctrl + end in excel (a common sequence I do, it selects all cells in the table)
  • insert timestamp
  • insert the data in my clipboard into a URL template and then load that URL in default browser (this automates the tail end of a common process I do that used to be manual)

I really like the numpad navigation. I much prefer it to tkl /65,75 navigation. The numlock switch makes it way better as you can quickly switch between nav and numpad. The cross arrows are also good.

I say set up the numpad like this and maybe have / * - as macros for your use case (by making numlock key a layer toggle)

On my 60% I have WASD on the first layer for arrow keys and activate them with hold-shift. It is the most successful use of layers I have had so far, but I still struggle with not having arrow keys on the main layer.

That is interesting. I think I’ll give that a try. Thanks!