--- title: Rainbow keyboard description: Game-specific keyboard layouts are really handy date: 2023-06-15 tags: - keyboards - random draft: false extra: auto_center_images: true excerpt: This post shows off my custom keyboard layout for playing Rainbow Six Siege aliases: - /blog/rainbow-keyboard --- In my ever-continuing quest to do interesting things with custom keyboards, I recently had the idea to take the left half of my [Ferris sweep](https://github.com/davidphilipbarr/Sweep) and configure it specifically for use in the game [Rainbow Six Siege](https://en.wikipedia.org/wiki/Tom_Clancy%27s_Rainbow_Six). This post isn't much of a tutorial, just a showcase of the end result. ## Movement ![](/images/posts/rainbow-keyboard/movement_layout.png) ## Actions ![](/images/posts/rainbow-keyboard/action_layout.png) ## The code The actual firmware file lives [here](https://github.com/ewpratten/qmk_firmware/blob/d6eda8f6a96b2f1753cd59cbb161763500a8afb5/keyboards/ferris/keymaps/ewpratten/keymap.c#L82-L87). In short, the QMK layout definition behind this is as follows: ```c [_RAINBOW] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_A, KC_S, KC_D, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPACE, KC_X, KC_NO, KC_NO ) ```