~ruther/qmk_firmware

7aea67980b0029739d6572f58951bc58e56bf7d5 — James Young 3 years ago 627e35b
Update noroadsleft userspace and keymaps (2022-07-18) (#17714)

* kbdfans/kbd75/rev1:noroadsleft - remove LAYOUT_75_ansi_wkl definition

* coseyfannitutti/discipline:noroadsleft - change KC_GESC to KC_ESC

* update Quantum keycode instances in noroadsleft keymaps

- `RESET` -> `QK_BOOT`
- `EEP_RST` -> `EE_CLR`
- `DEBUG` -> `DB_TOGG`

* create and add G_PWD macro
M keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c => keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c +5 -5
@@ 1,4 1,4 @@
/* Copyright 2021 James Young (@noroadsleft)
/* Copyright 2021-2022 James Young (@noroadsleft)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by


@@ 30,7 30,7 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

    [_DV] = LAYOUT_65_ansi(
        KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
        KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_SLSH, KC_EQL,  KC_BSLS, KC_PGUP,
        FN_CAPS, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS,          KC_ENT,  KC_PGDN,
        KC_LSFT,          KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_RSFT, KC_UP,   KC_END,


@@ 38,7 38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    ),

    [_QW] = LAYOUT_65_ansi(
        KC_GESC, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_HOME,
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_HOME,
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
        FN_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,  KC_PGDN,
        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,


@@ 56,13 56,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_FN] = LAYOUT_65_ansi(
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL,  DM_REC1,
        _______, KC_CALC, KC_APP,  _______, _______, _______, KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, DM_REC2,
        _______, M_SALL,  _______, _______, _______, _______, KC_DEL,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,          DM_RSTP, DM_PLY1,
        _______, M_SALL,  _______, _______, G_PWD,   _______, KC_DEL,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,          DM_RSTP, DM_PLY1,
        _______,          M_UNDO,  M_CUT,   M_COPY,  M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2,
        _______, _______, _______,                            TG(_NP),                   _______, _______, _______, _______, _______, _______
    ),

    [_SY] = LAYOUT_65_ansi(
        TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,   XXXXXXX, DEBUG,   XXXXXXX, VRSN,    XXXXXXX, XXXXXXX,
        TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN,    XXXXXXX, XXXXXXX,
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX, XXXXXXX,
        XXXXXXX,          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,

M keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c => keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c +3 -19
@@ 1,4 1,4 @@
/* Copyright 2020-2021 James Young (@noroadsleft)
/* Copyright 2020-2022 James Young (@noroadsleft)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by


@@ 16,22 16,6 @@

#include "noroadsleft.h"

#define LAYOUT_75_ansi_wkl( \
    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, \
    K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \
    K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313,       K315, \
    K400,       K402, K403, K404, K405, K406, K407, K408, K409, K410, K411,       K413, K414, K415, \
    K500, K501,                         K506,                         K510, K512, K513, K514, K515  \
) { \
    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015 }, \
    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115 }, \
    { K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214,  K215 }, \
    { K300,  KC_NO, K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  KC_NO, K315 }, \
    { K400,  KC_NO, K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411,  KC_NO, K413,  K414,  K415 }, \
    { K500,  K501,  KC_NO, KC_NO, KC_NO, KC_NO, K506,  KC_NO, KC_NO, KC_NO, K510,  KC_NO, K512,  K513,  K514,  K515 }  \
}

enum layer_names {
    _DV,
    _QW,


@@ 88,13 72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          KC_DEL,  DM_REC1,
        _______, KC_CALC, KC_APP,  G_PUSH,  _______, _______, KC_INS,  KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS,          DM_REC2,
        _______, M_SALL,  _______, G_FTCH,  _______, _______, KC_DEL,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,          DM_RSTP,          DM_PLY1,
        _______, M_SALL,  _______, G_FTCH,  G_PWD,   _______, KC_DEL,  KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,          DM_RSTP,          DM_PLY1,
        _______,          M_UNDO,  M_CUT,   M_COPY,  M_PASTE, G_BRCH,  _______, KC_MUTE, KC_VOLD, KC_VOLU, _______,          _______, _______, DM_PLY2,
        _______, _______,                                     _______,                                     _______, _______, _______, _______, _______
    ),

    [_SY] = LAYOUT_75_ansi_wkl(
        TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET,   EEP_RST, DEBUG,   XXXXXXX, VRSN,    XXXXXXX, XXXXXXX, XXXXXXX,
        TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, EE_CLR,  DB_TOGG, XXXXXXX, VRSN,    XXXXXXX, XXXXXXX, XXXXXXX,
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          KC_DEL,  XXXXXXX,
        XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,
        XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,          XXXXXXX,

M keyboards/kc60/keymaps/noroadsleft/keymap.c => keyboards/kc60/keymaps/noroadsleft/keymap.c +3 -3
@@ 1,4 1,4 @@
/* Copyright 2018-2021 James Young (@noroadsleft)
/* Copyright 2018-2022 James Young (@noroadsleft)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by


@@ 101,13 101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_MA] = LAYOUT_60_ansi(
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______,
        _______, _______, _______, G_PUSH,  _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP,
        _______, _______, _______, G_FTCH,  _______, _______, _______, _______, _______, _______, _______, _______,          _______,
        _______, _______, _______, G_FTCH,  G_PWD,   _______, _______, _______, _______, _______, _______, _______,          _______,
        _______,          _______, _______, _______, _______, G_BRCH,  _______, _______, _______, _______, _______,          _______,
        _______, _______, _______,                            _______,                            _______, _______, _______, _______
    ),

    [_SY] = LAYOUT_60_ansi(
        TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET,   XXXXXXX, DEBUG,   XXXXXXX, VRSN,    XXXXXXX,
        TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN,    XXXXXXX,
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,
        XXXXXXX,          XXXXXXX, XXXXXXX, BL_DEC,  BL_TOGG, BL_INC,  BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,

M users/noroadsleft/noroadsleft.c => users/noroadsleft/noroadsleft.c +7 -1
@@ 1,4 1,4 @@
/* Copyright 2020-2021 James Young (@noroadsleft)
/* Copyright 2020-2022 James Young (@noroadsleft)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by


@@ 66,6 66,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
                }
            };
            return false;
        case G_PWD:
            if (record->event.pressed) {
                clear_mods();
                SEND_STRING("$( pwd | sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')");
            };
            return false;
        case M_SALL:
            if (record->event.pressed) {
                tap_code16(C(KC_A));

M users/noroadsleft/noroadsleft.h => users/noroadsleft/noroadsleft.h +2 -1
@@ 1,4 1,4 @@
/* Copyright 2020-2021 James Young (@noroadsleft)
/* Copyright 2020-2022 James Young (@noroadsleft)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by


@@ 25,6 25,7 @@ enum userspace_keycodes {
    G_PUSH,
    G_FTCH,
    G_BRCH,
    G_PWD,
    M_SALL,
    M_UNDO,
    M_CUT,

M users/noroadsleft/readme.md => users/noroadsleft/readme.md +16 -13
@@ 19,25 19,28 @@ Outputs a string that tells me the Git commit from which my flashed firmware was

Some frequently used Git commands.

| Keycode                             | Output                 | Output with <kbd>Shift</kbd> |
| :---------------------------------- | :--------------------- | :--------------------------- |
| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin `     | `git push origin `           |
| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream `  | `git pull upstream `         |
| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master`               | `$(git branch-name)`         |
| Keycode                             | Output                                                | Output with <kbd>Shift</kbd>                          |
| :---------------------------------- | :---------------------------------------------------- | :---------------------------------------------------- |
| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin `                                    | `git push origin `                                    |
| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream `                                 | `git pull upstream `                                  |
| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master`                                              | `$(git branch-name)`                                  |
| [`G_PWD`](./noroadsleft.c#L69-L74)  | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')`  | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')`  |

`$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch.

The `G_PWD` macro outputs a shell expansion that returns the current working directory in relation to `qmk_firmware/keyboards/`, and with the slashes replaced with underscores. I do a lot of keyboard refactoring in QMK, and this is a string I use regularly.

### Customized Keycodes

I used to have a boolean variable that changed the functionality of these keycodes, but I no longer work in the environment that I wrote the functionality for, so I took it out. The keycodes still exist because all my `keymap.c` files reference the custom keycodes I defined.

| Keycode                               | Action    |
| :------------------------------------ | :-------- |
| [`M_SALL`](./noroadsleft.c#L69-L73)   | `Ctrl+A`  |
| [`M_UNDO`](./noroadsleft.c#L74-L82)   | `Ctrl+Z`  |
| [`M_CUT`](./noroadsleft.c#L83-L87)    | `Ctrl+X`  |
| [`M_COPY`](./noroadsleft.c#L88-L92)   | `Ctrl+C`  |
| [`M_PASTE`](./noroadsleft.c#L93-L101) | `Ctrl+V`  |
| [`M_SALL`](./noroadsleft.c#L75-L79)   | `Ctrl+A`  |
| [`M_UNDO`](./noroadsleft.c#L80-L88)   | `Ctrl+Z`  |
| [`M_CUT`](./noroadsleft.c#L89-L93)    | `Ctrl+X`  |
| [`M_COPY`](./noroadsleft.c#L94-L98)   | `Ctrl+C`  |
| [`M_PASTE`](./noroadsleft.c#L99-L107) | `Ctrl+V`  |

### [Emulated Non-US Backslash](./noroadsleft.c#L27-L37)



@@ 47,18 50,18 @@ This macro simulates the Non-US Backslash key if I hold Right Alt and tap the ke

Requires defining `ANSI_NUBS_ROW` and `ANSI_NUBS_COL` in `config.h` at the keymap level.[<sup>1</sup>](#footnotes)

### [Emulated Numeric Keypad](./noroadsleft.c#L102-L116)
### [Emulated Numeric Keypad](./noroadsleft.c#L108-L122)

If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °.

### [Emulated Extended Function Keys](./noroadsleft.c#L117-L131)
### [Emulated Extended Function Keys](./noroadsleft.c#L123-L137)

Similar to the emulated numpad, if I hold the Right Alt key with the Fn key, the function row (`KC_F1` through `KC_F12`) will output keycodes `KC_F13` throught `KC_F24`.


## License

Copyright 2020-2021 James Young (@noroadsleft)
Copyright 2020-2022 James Young (@noroadsleft)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by