mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf8e10533b | ||
|
|
927ef81363 | ||
|
|
6fc43ddaf6 | ||
|
|
0759adeaf1 | ||
|
|
43a1ea3035 | ||
|
|
af14e672c9 | ||
|
|
2b3803eb5e | ||
|
|
4580d3a730 | ||
|
|
0ce45eb0b7 | ||
|
|
85c3c5926c | ||
|
|
323fa19e2d | ||
|
|
de0e025472 | ||
|
|
b032867236 | ||
|
|
c8e232907f | ||
|
|
994592f985 | ||
|
|
4d5b7dea14 | ||
|
|
4d5eeb3d7d | ||
|
|
4edfa97e03 | ||
|
|
5f154f0a00 | ||
|
|
94f8b758b3 | ||
|
|
f0db2c0512 | ||
|
|
8ea690a1b3 | ||
|
|
b07b4bb97b | ||
|
|
5b897ce223 | ||
|
|
da33dfec55 | ||
|
|
a4316ba486 | ||
|
|
da83f04a30 |
7
Makefile
7
Makefile
@@ -514,6 +514,9 @@ $(SUBPROJECTS): %: %-allkm
|
||||
cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi;
|
||||
# Check if the submodules are dirty, and display a warning if they are
|
||||
ifndef SKIP_GIT
|
||||
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --init lib/chibios; fi
|
||||
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --init lib/chibios-contrib; fi
|
||||
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --init lib/ugfx; fi
|
||||
git submodule status --recursive 2>/dev/null | \
|
||||
while IFS= read -r x; do \
|
||||
case "$$x" in \
|
||||
@@ -551,6 +554,10 @@ test: test-all
|
||||
.PHONY: test-clean
|
||||
test-clean: test-all-clean
|
||||
|
||||
lib/%:
|
||||
git submodule sync $?
|
||||
git submodule update --init $?
|
||||
|
||||
git-submodule:
|
||||
git submodule sync --recursive
|
||||
git submodule update --init --recursive
|
||||
|
||||
@@ -92,7 +92,7 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u
|
||||
| KC_RCBR | } |
|
||||
| KC_LABK | < |
|
||||
| KC_RABK | > |
|
||||
| KC_PIPE | | |
|
||||
| KC_PIPE | | |
|
||||
| KC_COLN | : |
|
||||
|
||||
## Mod Tap
|
||||
|
||||
@@ -1,8 +1,107 @@
|
||||
# RGB Lighting
|
||||
|
||||
<!-- FIXME: Describe how to use RGB Lighting here. -->
|
||||
If you've installed addressable RGB lights on your keyboard you can control them with QMK. Currently we support the following addressable LEDs on Atmel AVR processors:
|
||||
|
||||
## RGB Under Glow Mod
|
||||
* WS2811 and variants (WS2812, WS2812B, WS2812C, etc)
|
||||
* SK6812RGBW
|
||||
|
||||
Some keyboards come with RGB LEDs pre-installed. Others have to have LEDs installed after the fact. See below for information on modifying your keyboard.
|
||||
|
||||
## Selecting Colors
|
||||
|
||||
QMK uses Hue, Saturation, and Value to set color rather than using RGB. You can use the color wheel below to see how this works. Changing the Hue will cycle around the circle. Saturation will affect the intensity of the color, which you can see as you move from the inner part to the outer part of the wheel. Value sets the overall brightness.
|
||||
|
||||
![gitbook/images/color-wheel.svg]
|
||||
|
||||
If you would like to learn more about HSV you can start with the [wikipedia article](https://en.wikipedia.org/wiki/HSL_and_HSV).
|
||||
|
||||
## Configuration
|
||||
|
||||
Before RGB Lighting can be used you have to enable it in `rules.mk`:
|
||||
|
||||
RGBLIGHT_ENABLE = yes
|
||||
|
||||
You can configure the behavior of the RGB lighting by defining values inside `config.h`.
|
||||
|
||||
### Required Configuration
|
||||
|
||||
At minimum you have to define the pin your LED strip is connected to and the number of LEDs connected.
|
||||
|
||||
```c
|
||||
#define RGB_DI_PIN D7 // The pin the LED strip is connected to
|
||||
#define RGBLED_NUM 14 // Number of LEDs in your strip
|
||||
```
|
||||
|
||||
### Optional Configuration
|
||||
|
||||
You can change the behavior of the RGB Lighting by setting these configuration values. Use `#define <Option> <Value>` in a `config.h` at the keyboard, revision, or keymap level.
|
||||
|
||||
| Option | Default Value | Description |
|
||||
|--------|---------------|-------------|
|
||||
| `RGBLIGHT_HUE_STEP` | 10 | How many hues you want to have available. |
|
||||
| `RGBLIGHT_SAT_STEP` | 17 | How many steps of saturation you'd like. |
|
||||
| `RGBLIGHT_VAL_STEP` | 17 | The number of levels of brightness you want. |
|
||||
|
||||
### Animations
|
||||
|
||||
If you have `#define RGBLIGHT_ANIMATIONS` in your `config.h` you will have a number of animation modes you can cycle through using the `RGB_MOD` key. You can also `#define` other options to tweak certain animations.
|
||||
|
||||
| Option | Default Value | Description |
|
||||
|--------|---------------|-------------|
|
||||
| `RGBLIGHT_ANIMATIONS` | | `#define` this to enable animation modes. |
|
||||
| `RGBLIGHT_EFFECT_SNAKE_LENGTH` | 4 | The number of LEDs to light up for the "snake" mode. |
|
||||
| `RGBLIGHT_EFFECT_KNIGHT_LENGTH` | 3 | The number of LEDs to light up for the "knight" mode. |
|
||||
| `RGBLIGHT_EFFECT_KNIGHT_OFFSET` | 0 | Start the knight animation this many LEDs from the start of the strip. |
|
||||
| `RGBLIGHT_EFFECT_KNIGHT_LED_NUM` | RGBLED_NUM | The number of LEDs to have the "knight" animation travel. |
|
||||
| `RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL` | 1000 | How long to wait between light changes for the "christmas" animation. Specified in ms. |
|
||||
| `RGBLIGHT_EFFECT_CHRISTMAS_STEP` | 2 | How many LED's to group the red/green colors by for the christmas mode. |
|
||||
|
||||
You can also tweak the behavior of the animations by defining these consts in your `keymap.c`. These mostly affect the speed different modes animate at.
|
||||
|
||||
```c
|
||||
// How long (in ms) to wait between animation steps for the breathing mode
|
||||
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the rainbow mode
|
||||
const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the swirl mode
|
||||
const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the snake mode
|
||||
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the knight modes
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
|
||||
|
||||
// These control which colors are selected for the gradient mode
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
```
|
||||
|
||||
## RGB Lighting Keycodes
|
||||
|
||||
These control the RGB Lighting functionality.
|
||||
|
||||
| Long Name | Short Name | Description |
|
||||
|-----------|------------|-------------|
|
||||
||`RGB_TOG`|toggle on/off|
|
||||
||`RGB_MOD`|cycle through modes|
|
||||
||`RGB_HUI`|hue increase|
|
||||
||`RGB_HUD`|hue decrease|
|
||||
||`RGB_SAI`|saturation increase|
|
||||
||`RGB_SAD`|saturation decrease|
|
||||
||`RGB_VAI`|value (brightness) increase|
|
||||
||`RGB_VAD`|value (brightness) decrease|
|
||||
|`RGB_MODE_PLAIN`|`RGB_M_P `| Switch to the static no animation mode |
|
||||
|`RGB_MODE_BREATHE`|`RGB_M_B`| Switch to the breathing mode |
|
||||
|`RGB_MODE_RAINBOW`|`RGB_M_R`| Switch to the rainbow mode ||
|
||||
|`RGB_MODE_SWIRL`|`RGB_M_SW`| Switch to the swirl mode |
|
||||
|`RGB_MODE_SNAKE`|`RGB_M_SN`| Switch to the snake mode |
|
||||
|`RGB_MODE_KNIGHT`|`RGB_M_K`| Switch to the knight animation |
|
||||
|`RGB_MODE_XMAS`|`RGB_M_X`| Switch to the Christmas animation |
|
||||
|`RGB_MODE_GRADIENT`|`RGB_M_G`| Switch to the static gradient mode |
|
||||
|
||||
## Hardware Modification
|
||||
|
||||

|
||||
|
||||
@@ -17,33 +116,6 @@ In order to use the underglow animation functions, you need to have `#define RGB
|
||||
Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default:
|
||||
|
||||
#define RGB_DI_PIN F4 // The pin your RGB strip is wired to
|
||||
#define RGBLIGHT_ANIMATIONS // Require for fancier stuff (not compatible with audio)
|
||||
#define RGBLED_NUM 14 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
You'll need to edit `RGB_DI_PIN` to the pin you have your `DI` on your RGB strip wired to.
|
||||
|
||||
The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboards/planck/keymaps/yang/keymap.c`
|
||||
|
||||
### WS2812 Wiring
|
||||
|
||||

|
||||
|
||||
Please note the USB port can only supply a limited amount of power to the keyboard (500mA by standard, however, modern computer and most usb hubs can provide 700+mA.). According to the data of NeoPixel from Adafruit, 30 WS2812 LEDs require a 5V 1A power supply, LEDs used in this mod should not more than 20.
|
||||
|
||||
## RGB Lighting Keycodes
|
||||
|
||||
This controls the RGB Lighting functionality. Most keyboards use WS2812 (and compatible) LEDs for underlight or case lighting.
|
||||
|
||||
|Name|Description|
|
||||
|----|-----------|
|
||||
|`RGB_TOG`|toggle on/off|
|
||||
|`RGB_MOD`|cycle through modes|
|
||||
|`RGB_HUI`|hue increase|
|
||||
|`RGB_HUD`|hue decrease|
|
||||
|`RGB_SAI`|saturation increase|
|
||||
|`RGB_SAD`|saturation decrease|
|
||||
|`RGB_VAI`|value increase|
|
||||
|`RGB_VAD`|value decrease|
|
||||
|
||||
@@ -40,8 +40,11 @@ Debian/Ubuntu example:
|
||||
If you're using [homebrew,](http://brew.sh/) you can use the following commands:
|
||||
|
||||
brew tap osx-cross/avr
|
||||
brew install avr-libc
|
||||
brew tap PX4/homebrew-px4
|
||||
brew update
|
||||
brew install avr-gcc
|
||||
brew install dfu-programmer
|
||||
brew install gcc-arm-none-eabi
|
||||
|
||||
This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. Note that the `make` and `make install` portion during the homebrew installation of avr-libc can take over 20 minutes and exhibit high CPU usage.
|
||||
|
||||
|
||||
441
docs/gitbook/images/color-wheel.svg
Normal file
441
docs/gitbook/images/color-wheel.svg
Normal file
@@ -0,0 +1,441 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:ns1="http://sozi.baierouge.fr"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
id="Layer_1"
|
||||
enable-background="new 0 0 360 360"
|
||||
xml:space="preserve"
|
||||
viewBox="0 0 360 360"
|
||||
version="1.1"
|
||||
y="0px"
|
||||
x="0px"
|
||||
>
|
||||
<g
|
||||
>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m193.8 167.46l113.52-113.89c-23.457-23.36-50.2-38.727-82.193-47.23l-41.313 155.45c3.15 0.84 7.66 3.37 9.98 5.67z"
|
||||
fill="#E0C3D3"
|
||||
/>
|
||||
<path
|
||||
d="m209.95 151.26l97.367-97.688c-23.457-23.36-50.2-38.727-82.193-47.23l-35.43 133.29c7.71 1.86 14.76 5.91 20.25 11.63z"
|
||||
fill="#E0A0C3"
|
||||
/>
|
||||
<path
|
||||
d="m225.94 135.21l81.375-81.643c-23.457-23.36-50.2-38.727-82.193-47.23l-29.61 111.4c11.55 2.89 22.11 8.95 30.42 17.47z"
|
||||
fill="#E080B5"
|
||||
/>
|
||||
<path
|
||||
d="m241.95 119.15l65.369-65.585c-23.457-23.36-50.2-38.727-82.193-47.23l-23.784 89.491c15.38 3.919 29.46 12.004 40.6 23.324z"
|
||||
fill="#E061A7"
|
||||
/>
|
||||
<path
|
||||
d="m257.95 103.1l49.371-49.533c-23.457-23.36-50.2-38.727-82.193-47.23l-17.962 67.589c19.22 4.944 36.82 15.052 50.78 29.174z"
|
||||
fill="#E04198"
|
||||
/>
|
||||
<path
|
||||
d="m273.95 87.05l33.373-33.482c-23.457-23.36-50.2-38.727-82.193-47.23l-12.142 45.687c23.07 5.968 44.18 18.099 60.96 35.025z"
|
||||
fill="#E0228B"
|
||||
/>
|
||||
<path
|
||||
d="m289.94 70.999l17.375-17.431c-23.457-23.36-50.2-38.728-82.193-47.231l-6.321 23.784c26.91 6.994 51.54 21.148 71.13 40.878z"
|
||||
fill="#E10071"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m174.73 162.13c2.934-0.792 6.094-0.876 8.876-0.292l41-155.36c-31.994-8.502-61.625-8.332-93.483 0.274l42.101 155.85c-0.01-0.02 1.13-0.37 1.5-0.47z"
|
||||
fill="#FFD9D9"
|
||||
/>
|
||||
<path
|
||||
d="m168.93 139.99c6.926-1.871 14.036-1.906 20.556-0.349l35.12-133.16c-31.994-8.502-61.625-8.332-93.483 0.274l36.127 133.73c0.95-0.27 1.19-0.36 1.67-0.49z"
|
||||
fill="#FFB6B6"
|
||||
/>
|
||||
<path
|
||||
d="m163.03 118.12c10.904-2.946 22.03-2.917 32.267-0.373l29.31-111.27c-31.994-8.502-61.625-8.332-93.483 0.274l30.218 111.86c0.96-0.27 1.19-0.36 1.68-0.49z"
|
||||
fill="#FF8F8F"
|
||||
/>
|
||||
<path
|
||||
d="m157.12 96.243c14.884-4.021 30.029-3.944 43.982-0.413l23.51-89.354c-31.994-8.502-61.625-8.332-93.483 0.274l24.304 89.968c0.96-0.268 1.2-0.344 1.69-0.475z"
|
||||
fill="#FF6E6E"
|
||||
/>
|
||||
<path
|
||||
d="m151.21 74.369c18.863-5.096 38.024-4.964 55.695-0.446l17.71-67.447c-31.994-8.502-61.625-8.332-93.483 0.274l18.395 68.094c0.96-0.267 1.2-0.344 1.69-0.475z"
|
||||
fill="#FF4848"
|
||||
/>
|
||||
<path
|
||||
d="m145.06 52.56c22.919-6.191 46.298-6.016 67.745-0.456l11.81-45.628c-31.994-8.502-61.625-8.332-93.483 0.274l12.484 46.214c0.97-0.263 1.13-0.317 1.45-0.404z"
|
||||
fill="#FF2424"
|
||||
/>
|
||||
<path
|
||||
d="m139.15 30.685c26.906-7.269 54.312-7.036 79.48-0.483l5.978-23.726c-31.994-8.502-61.625-8.332-93.483 0.274l6.575 24.34c0.97-0.262 1.13-0.318 1.45-0.405z"
|
||||
fill="#FF0000"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m173.23 162.6l-42.1-155.85c-31.858 8.606-56.824 23.185-80.185 46.64l114.57 114.36c2.08-2.33 4.86-4.17 7.71-5.15z"
|
||||
fill="#FFEBD9"
|
||||
/>
|
||||
<path
|
||||
d="m167.25 140.48l-36.12-133.73c-31.858 8.606-56.824 23.185-80.185 46.64l98.442 98.288c4.77-5.09 11.17-9.11 17.86-11.2z"
|
||||
fill="#FFD7B3"
|
||||
/>
|
||||
<path
|
||||
d="m161.34 118.61l-30.21-111.86c-31.858 8.606-56.824 23.185-80.185 46.64l82.386 82.283c7.49-7.82 17.47-13.93 28.01-17.06z"
|
||||
fill="#FFC48F"
|
||||
/>
|
||||
<path
|
||||
d="m155.43 96.719l-24.3-89.969c-31.858 8.606-56.824 23.185-80.185 46.64l66.336 66.282c10.2-10.55 23.74-18.78 38.15-22.951z"
|
||||
fill="#FFB26C"
|
||||
/>
|
||||
<path
|
||||
d="m149.52 74.845l-18.39-68.095c-31.858 8.606-56.824 23.185-80.185 46.64l50.287 50.283c12.91-13.273 30.02-23.612 48.29-28.825z"
|
||||
fill="#FF9F48"
|
||||
/>
|
||||
<path
|
||||
d="m143.61 52.964l-12.48-46.214c-31.858 8.606-56.824 23.185-80.185 46.64l34.05 34.204c15.705-16.028 35.495-28.198 58.615-34.63z"
|
||||
fill="#FF8C24"
|
||||
/>
|
||||
<path
|
||||
d="m137.7 31.091l-6.575-24.34c-31.858 8.606-56.824 23.185-80.185 46.64l17.99 18.216c18.435-18.762 41.795-33.041 68.775-40.516z"
|
||||
fill="#FF8000"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m166.24 167.56l-114.82-114.3c-23.36 23.457-36.884 48.514-45.386 80.507l155.98 41.453c0.85-3.15 1.92-5.35 4.23-7.66z"
|
||||
fill="#FFFED9"
|
||||
/>
|
||||
<path
|
||||
d="m149.96 151.35l-98.535-98.09c-23.36 23.457-36.884 48.514-45.386 80.507l133.85 35.573c1.8-6.74 5.26-12.94 10.07-17.99z"
|
||||
fill="#FFFDB3"
|
||||
/>
|
||||
<path
|
||||
d="m133.9 135.37l-82.475-82.11c-23.36 23.457-36.884 48.514-45.386 80.507l111.95 29.753c2.82-10.58 8.31-20.29 15.91-28.15z"
|
||||
fill="#FFFC8F"
|
||||
/>
|
||||
<path
|
||||
d="m117.84 119.37l-66.415-66.11c-23.36 23.457-36.884 48.514-45.386 80.507l90.037 23.929c3.845-14.42 11.364-27.64 21.764-38.33z"
|
||||
fill="#FFFB6C"
|
||||
/>
|
||||
<path
|
||||
d="m101.78 103.39l-50.355-50.13c-23.36 23.457-36.884 48.514-45.386 80.507l68.136 18.108c4.869-18.26 14.403-34.99 27.605-48.49z"
|
||||
fill="#FFFA48"
|
||||
/>
|
||||
<path
|
||||
d="m85.716 87.398l-34.291-34.138c-23.36 23.457-36.884 48.514-45.386 80.507l46.235 12.288c5.893-22.09 17.445-42.34 33.442-58.662z"
|
||||
fill="#FFF924"
|
||||
/>
|
||||
<path
|
||||
d="m69.657 71.411l-18.232-18.151c-23.36 23.457-36.884 48.514-45.386 80.507l24.334 6.468c6.917-25.93 20.488-49.694 39.284-68.829z"
|
||||
fill="#FFFF00"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m162.13 185.27c-0.792-2.934-0.647-7.06-0.061-9.842l-155.89-41.15c-8.503 31.994-8.034 62.733 0.572 94.591l155.85-42.1c-0.02 0.01-0.37-1.13-0.47-1.5z"
|
||||
fill="#EBFFD9"
|
||||
/>
|
||||
<path
|
||||
d="m139.99 191.07c-1.963-7.268-1.891-14.725-0.095-21.517l-133.72-35.27c-8.503 31.994-8.034 62.733 0.572 94.591l133.73-36.127c-0.27-0.96-0.36-1.19-0.49-1.67z"
|
||||
fill="#D8FFB6"
|
||||
/>
|
||||
<path
|
||||
d="m118.12 196.98c-3.039-11.249-2.905-22.722-0.121-33.231l-111.82-29.47c-8.503 31.994-8.034 62.733 0.572 94.591l111.86-30.218c-0.27-0.96-0.36-1.19-0.49-1.67z"
|
||||
fill="#C5FF92"
|
||||
/>
|
||||
<path
|
||||
d="m96.244 202.89c-4.114-15.228-3.942-30.725-0.169-44.949l-89.897-23.66c-8.503 31.994-8.034 62.733 0.572 94.591l89.968-24.304c-0.268-0.97-0.343-1.2-0.474-1.68z"
|
||||
fill="#B1FF6C"
|
||||
/>
|
||||
<path
|
||||
d="m74.371 208.8c-5.189-19.208-4.962-38.724-0.201-56.666l-67.992-17.85c-8.503 31.994-8.034 62.733 0.572 94.591l68.094-18.395c-0.267-0.96-0.343-1.2-0.473-1.68z"
|
||||
fill="#9DFF48"
|
||||
/>
|
||||
<path
|
||||
d="m52.563 214.95c-6.285-23.265-6.011-46.996-0.205-68.714l-46.18-11.96c-8.503 31.994-8.034 62.733 0.572 94.591l46.214-12.484c-0.263-0.97-0.315-1.12-0.401-1.44z"
|
||||
fill="#8AFF24"
|
||||
/>
|
||||
<path
|
||||
d="m30.688 220.86c-7.362-27.251-7.029-55.011-0.229-80.452l-24.28-6.125c-8.503 31.994-8.034 62.733 0.572 94.591l24.34-6.575c-0.264-0.97-0.317-1.12-0.403-1.44z"
|
||||
fill="#71FF00"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m162.6 186.77l-155.85 42.1c8.606 31.857 23.185 56.824 46.641 80.185l114.36-114.57c-2.33-2.09-4.17-4.87-5.15-7.72z"
|
||||
fill="#DCFFDC"
|
||||
/>
|
||||
<path
|
||||
d="m140.48 192.75l-133.73 36.12c8.606 31.857 23.185 56.824 46.641 80.185l98.286-98.442c-5.1-4.78-9.11-11.18-11.2-17.87z"
|
||||
fill="#B6FFB6"
|
||||
/>
|
||||
<path
|
||||
d="m118.61 198.66l-111.86 30.21c8.606 31.857 23.185 56.824 46.641 80.185l82.281-82.387c-7.82-7.49-13.93-17.47-17.06-28.01z"
|
||||
fill="#92FF92"
|
||||
/>
|
||||
<path
|
||||
d="m96.719 204.57l-89.969 24.3c8.606 31.857 23.185 56.824 46.641 80.185l66.28-66.336c-10.55-10.2-18.78-23.74-22.951-38.15z"
|
||||
fill="#6EFF6E"
|
||||
/>
|
||||
<path
|
||||
d="m74.845 210.48l-68.095 18.39c8.606 31.857 23.185 56.824 46.641 80.185l50.281-50.287c-13.274-12.92-23.614-30.02-28.825-48.29z"
|
||||
fill="#4AFF4A"
|
||||
/>
|
||||
<path
|
||||
d="m52.964 216.39l-46.214 12.48c8.606 31.857 23.185 56.824 46.641 80.185l34.202-34.049c-16.028-15.71-28.198-35.5-34.629-58.62z"
|
||||
fill="#27FF27"
|
||||
/>
|
||||
<path
|
||||
d="m31.091 222.3l-24.34 6.575c8.606 31.857 23.185 56.824 46.641 80.185l18.214-17.989c-18.763-18.43-33.043-41.79-40.515-68.77z"
|
||||
fill="#00FF00"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m167.59 193.87l-114.31 114.78c23.455 23.359 47.388 37.112 79.381 45.616l41.606-156.55c-3.16-0.85-4.37-1.55-6.68-3.85z"
|
||||
fill="#DCFFED"
|
||||
/>
|
||||
<path
|
||||
d="m151.42 210.11l-98.14 98.54c23.455 23.359 47.388 37.112 79.381 45.616l35.721-134.41c-6.34-1.86-12.17-5.21-16.96-9.75z"
|
||||
fill="#B6FFD9"
|
||||
/>
|
||||
<path
|
||||
d="m135.43 226.16l-82.15 82.49c23.455 23.359 47.388 37.112 79.381 45.616l29.9-112.51c-10.18-2.89-19.52-8.26-27.13-15.6z"
|
||||
fill="#92FFC6"
|
||||
/>
|
||||
<path
|
||||
d="m119.43 242.22l-66.15 66.43c23.456 23.359 47.388 37.112 79.381 45.616l24.079-90.603c-14.02-3.92-26.87-11.31-37.31-21.45z"
|
||||
fill="#6EFFB3"
|
||||
/>
|
||||
<path
|
||||
d="m103.44 258.28l-50.16 50.37c23.455 23.359 47.388 37.112 79.381 45.616l18.258-68.701c-17.86-4.95-34.22-14.35-47.48-27.29z"
|
||||
fill="#4AFFA0"
|
||||
/>
|
||||
<path
|
||||
d="m87.451 274.34l-34.17 34.31c23.455 23.359 47.388 37.112 79.381 45.616l12.438-46.801c-21.69-5.97-41.58-17.4-57.649-33.13z"
|
||||
fill="#27FF8D"
|
||||
/>
|
||||
<path
|
||||
d="m71.459 290.39l-18.179 18.26c23.455 23.359 47.388 37.112 79.381 45.616l6.618-24.9c-25.53-6.99-48.93-20.44-67.821-38.98z"
|
||||
fill="#00FF80"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m173.85 197.82l-41.812 156.61c31.993 8.501 61.11 8.47 92.969-0.136l-42.101-155.85c-2.95 0.59-6.08 0.35-9.06-0.62z"
|
||||
fill="#DCFFFE"
|
||||
/>
|
||||
<path
|
||||
d="m167.98 219.87l-35.941 134.56c31.993 8.501 61.11 8.47 92.969-0.136l-36.127-133.73c-6.82 1.57-14.22 1.29-20.9-0.69z"
|
||||
fill="#B6FFFD"
|
||||
/>
|
||||
<path
|
||||
d="m162.15 241.77l-30.107 112.65c31.993 8.501 61.11 8.47 92.969-0.136l-30.219-111.86c-10.69 2.62-22.24 2.33-32.64-0.65z"
|
||||
fill="#92FFFC"
|
||||
/>
|
||||
<path
|
||||
d="m156.32 263.68l-24.276 90.754c31.993 8.501 61.11 8.47 92.969-0.136l-24.305-89.969c-14.54 3.66-30.26 3.33-44.38-0.64z"
|
||||
fill="#6EFFFB"
|
||||
/>
|
||||
<path
|
||||
d="m150.49 285.57l-18.446 68.856c31.993 8.501 61.11 8.47 92.969-0.136l-18.396-68.095c-18.41 4.7-38.28 4.34-56.12-0.63z"
|
||||
fill="#4AFFFA"
|
||||
/>
|
||||
<path
|
||||
d="m144.7 307.61l-12.655 46.815c31.993 8.501 61.11 8.47 92.969-0.136l-12.484-46.215c-23.22 6.1-46.19 5.49-67.83-0.45z"
|
||||
fill="#27FFF9"
|
||||
/>
|
||||
<path
|
||||
d="m138.88 329.52l-6.839 24.913c31.994 8.501 61.11 8.47 92.969-0.136l-6.575-24.341c-27.08 7.13-54.2 6.49-79.56-0.43z"
|
||||
fill="#00FFFF"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m192.47 193.82c-2.109 1.906-5.088 3.48-8.022 4.273-0.373 0.101-1.527 0.377-1.533 0.354l42.101 155.85c31.857-8.606 57.647-23.407 81.009-46.862l-113.56-113.61z"
|
||||
fill="#DCEFFF"
|
||||
/>
|
||||
<path
|
||||
d="m208.69 210.01c-4.857 4.652-11.156 8.255-18.107 10.133-0.485 0.131-0.729 0.176-1.699 0.42l36.127 133.73c31.857-8.606 57.647-23.407 81.009-46.862l-97.33-97.42z"
|
||||
fill="#B6DEFF"
|
||||
/>
|
||||
<path
|
||||
d="m224.73 226.01c-7.572 7.374-17.307 13.052-28.233 16.004-0.486 0.131-0.732 0.17-1.701 0.42l30.219 111.86c31.857-8.606 57.647-23.407 81.009-46.862l-81.3-81.42z"
|
||||
fill="#92CEFF"
|
||||
/>
|
||||
<path
|
||||
d="m240.78 242.02c-10.285 10.097-23.467 17.838-38.372 21.864-0.484 0.131-0.729 0.186-1.696 0.438l24.305 89.969c31.857-8.606 57.647-23.407 81.009-46.862l-65.25-65.41z"
|
||||
fill="#6EBEFF"
|
||||
/>
|
||||
<path
|
||||
d="m208.31 285.76c-0.485 0.132-0.731 0.185-1.698 0.439l18.396 68.095c31.857-8.606 57.647-23.407 81.009-46.862l-49.444-49.336c-13 12.81-29.38 22.56-48.27 27.66z"
|
||||
fill="#4AADFF"
|
||||
/>
|
||||
<path
|
||||
d="m213.98 307.7c-0.324 0.088-0.49 0.122-1.456 0.38l12.484 46.215c31.857-8.606 57.647-23.407 81.009-46.862l-33.533-33.371c-15.72 15.59-35.58 27.44-58.5 33.63z"
|
||||
fill="#279EFF"
|
||||
/>
|
||||
<path
|
||||
d="m219.89 329.57c-0.325 0.088-0.491 0.121-1.457 0.38l6.575 24.341c31.857-8.606 57.647-23.407 81.009-46.862l-17.47-17.385c-18.43 18.34-41.75 32.27-68.65 39.53z"
|
||||
fill="#0080FF"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m197.71 185.73c-0.843 3.153-2.941 5.768-5.242 8.083l113.97 113.5c23.359-23.456 39.325-47.987 47.829-79.98l-156.56-41.6z"
|
||||
fill="#DCDCFF"
|
||||
/>
|
||||
<path
|
||||
d="m219.85 191.62c-2.041 6.976-5.889 13.329-11.148 18.372l97.727 97.328c23.359-23.456 39.325-47.987 47.829-79.98l-134.41-35.72z"
|
||||
fill="#B6B6FF"
|
||||
/>
|
||||
<path
|
||||
d="m241.75 197.44c-3.064 10.814-8.936 20.677-16.995 28.538l81.675 81.342c23.359-23.456 39.325-47.987 47.829-79.98l-112.52-29.9z"
|
||||
fill="#9292FF"
|
||||
/>
|
||||
<path
|
||||
d="m263.66 203.26c-4.089 14.652-11.976 28.037-22.837 38.716l65.61 65.343c23.359-23.456 39.325-47.987 47.829-79.98l-90.6-24.08z"
|
||||
fill="#6E6EFF"
|
||||
/>
|
||||
<path
|
||||
d="m285.56 209.08c-5.112 18.491-15.019 35.392-28.682 48.887l49.554 49.352c23.359-23.456 39.325-47.987 47.829-79.98l-68.7-18.26z"
|
||||
fill="#4A4AFF"
|
||||
/>
|
||||
<path
|
||||
d="m307.46 214.9c-6.137 22.329-18.063 42.745-34.525 59.06l33.496 33.358c23.359-23.456 39.325-47.987 47.829-79.98l-46.81-12.44z"
|
||||
fill="#2727FF"
|
||||
/>
|
||||
<path
|
||||
d="m329.36 220.72c-7.161 26.167-21.104 50.1-40.368 69.23l17.438 17.366c23.359-23.456 39.325-47.987 47.829-79.98l-24.9-6.62z"
|
||||
fill="#0000FF"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m198.44 177.09c0.588 2.949 0.342 6.08-0.624 9.056l156.61 41.813c8.501-31.994 8.47-61.111-0.136-92.969l-155.85 42.1z"
|
||||
fill="#ECDCFF"
|
||||
/>
|
||||
<path
|
||||
d="m220.56 171.12c1.57 6.827 1.293 14.228-0.688 20.901l134.56 35.941c8.501-31.994 8.47-61.111-0.136-92.969l-133.73 36.13z"
|
||||
fill="#D8B6FF"
|
||||
/>
|
||||
<path
|
||||
d="m242.43 165.21c2.612 10.689 2.32 22.245-0.657 32.643l112.65 30.108c8.501-31.994 8.47-61.111-0.136-92.969l-111.85 30.22z"
|
||||
fill="#C492FF"
|
||||
/>
|
||||
<path
|
||||
d="m264.32 159.29c3.655 14.55 3.324 30.265-0.649 44.388l90.754 24.277c8.501-31.994 8.47-61.111-0.136-92.969l-89.96 24.3z"
|
||||
fill="#B16EFF"
|
||||
/>
|
||||
<path
|
||||
d="m286.2 153.38c4.699 18.412 4.345 38.281-0.625 56.128l68.855 18.446c8.501-31.994 8.47-61.111-0.136-92.969l-68.1 18.39z"
|
||||
fill="#9E4AFF"
|
||||
/>
|
||||
<path
|
||||
d="m308.08 147.47c6.088 23.216 5.471 46.185-0.464 67.83l46.814 12.655c8.501-31.994 8.47-61.111-0.136-92.969l-46.21 12.48z"
|
||||
fill="#8B27FF"
|
||||
/>
|
||||
<path
|
||||
d="m329.95 141.56c7.131 27.078 6.49 54.192-0.435 79.554l24.911 6.84c8.501-31.994 8.47-61.111-0.136-92.969l-24.34 6.58z"
|
||||
fill="#8000FF"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
<g
|
||||
>
|
||||
<path
|
||||
d="m198.09 175.56c0.101 0.374 0.377 1.528 0.354 1.534l155.85-42.101c-8.606-31.858-23.408-57.649-46.862-81.009l-113.63 113.48c1.9 2.11 3.5 5.16 4.29 8.1z"
|
||||
fill="#FEDCFF"
|
||||
/>
|
||||
<path
|
||||
d="m220.14 169.42c0.131 0.486 0.176 0.729 0.42 1.699l133.73-36.126c-8.606-31.858-23.407-57.648-46.862-81.009l-97.479 97.275c4.61 4.84 8.32 11.25 10.19 18.16z"
|
||||
fill="#FDB6FF"
|
||||
/>
|
||||
<path
|
||||
d="m242.01 163.51c0.131 0.484 0.169 0.729 0.419 1.697l111.86-30.218c-8.606-31.858-23.408-57.649-46.862-81.009l-81.486 81.231c7.34 7.56 13.13 17.41 16.07 28.3z"
|
||||
fill="#FC92FF"
|
||||
/>
|
||||
<path
|
||||
d="m263.89 157.6c0.13 0.484 0.185 0.725 0.438 1.692l89.969-24.304c-8.606-31.858-23.408-57.649-46.862-81.009l-65.48 65.173c10.06 10.28 17.91 23.57 21.93 38.45z"
|
||||
fill="#FB6EFF"
|
||||
/>
|
||||
<path
|
||||
d="m285.76 151.69c0.131 0.483 0.183 0.724 0.438 1.69l68.095-18.395c-8.606-31.858-23.408-57.649-46.862-81.009l-49.482 49.121c12.79 13 22.71 29.74 27.8 48.6z"
|
||||
fill="#FA4AFF"
|
||||
/>
|
||||
<path
|
||||
d="m307.7 146.03c0.087 0.321 0.12 0.48 0.378 1.447l46.215-12.484c-8.606-31.858-23.408-57.649-46.862-81.009l-33.484 33.07c15.59 15.719 27.55 36.039 33.74 58.969z"
|
||||
fill="#F927FF"
|
||||
/>
|
||||
<path
|
||||
d="m329.58 140.12c0.086 0.321 0.118 0.48 0.377 1.446l24.341-6.575c-8.606-31.858-23.52-58.061-46.974-81.421l-17.375 17.432c18.32 18.435 32.35 42.199 39.62 69.109z"
|
||||
fill="#FF00FF"
|
||||
/>
|
||||
</g
|
||||
>
|
||||
</g
|
||||
>
|
||||
<metadata
|
||||
><rdf:RDF
|
||||
><cc:Work
|
||||
><dc:format
|
||||
>image/svg+xml</dc:format
|
||||
><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage"
|
||||
/><cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/publicdomain/"
|
||||
/><dc:publisher
|
||||
><cc:Agent
|
||||
rdf:about="http://openclipart.org/"
|
||||
><dc:title
|
||||
>Openclipart</dc:title
|
||||
></cc:Agent
|
||||
></dc:publisher
|
||||
></cc:Work
|
||||
><cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/publicdomain/"
|
||||
><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction"
|
||||
/><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution"
|
||||
/><cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
|
||||
/></cc:License
|
||||
></rdf:RDF
|
||||
></metadata
|
||||
></svg
|
||||
>
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -24,6 +24,7 @@ sort of like macro. Unfortunately, each OS has different ideas on how Unicode is
|
||||
This is the current list of Unicode input method in QMK:
|
||||
|
||||
* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex.
|
||||
* UC_OSX_RALT: Same as UC_OSX, but sends the Rigt Alt key for unicode input
|
||||
* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else.
|
||||
* UC_WIN: (not recommended) Windows built-in Unicode input. To enable: create registry key under `HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad` of type `REG_SZ` called `EnableHexNumpad`, set its value to 1, and reboot. This method is not recommended because of reliability and compatibility issue, use WinCompose method below instead.
|
||||
* UC_WINC: Windows Unicode input using WinCompose. Requires [WinCompose](https://github.com/samhocevar/wincompose). Works reliably under many (all?) variations of Windows.
|
||||
|
||||
53
keyboards/bananasplit/keymaps/rask/README.md
Normal file
53
keyboards/bananasplit/keymaps/rask/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# rask's BananaSplit60
|
||||
|
||||

|
||||
|
||||
## Notes
|
||||
|
||||
### Layers
|
||||
|
||||
Base layer is a regular HHKBish ANSI layer. Toggling the
|
||||
alternate base layer (Fn3) makes it simpler to play games with
|
||||
the left space being set to be an actual Space.
|
||||
|
||||
Layer 1 (Fn1) contains usual 60% functionalities such as the
|
||||
F-row, while Layer 2 (Fn2) contains media controls.
|
||||
|
||||
The final layer (Fn4) is a special layer that acts as a lock
|
||||
layer, meaning the keyboard is locked while the layer
|
||||
is active. This firmware assumes a lock switch (read below).
|
||||
|
||||
### Lock switches
|
||||
|
||||
1.25u between the split space halves and the 1u key right
|
||||
left of LeftArrow are to be operated with a lock switch.
|
||||
If you don't have lock switches you should swap the `MO()`
|
||||
calls with `TG()` calls to make the layer toggles work
|
||||
with regular non/locking switches.
|
||||
|
||||
## How to make and flash
|
||||
|
||||
(These instructions are for Linux-based operating systems
|
||||
with `dfu-programmer` available.)
|
||||
|
||||
`cd` into the `bananasplit` keyboard's directory and run
|
||||
|
||||
make rask
|
||||
|
||||
which should result in a file called `bananasplit_rask.hex` appearing
|
||||
in your QMK root directory.
|
||||
|
||||
Now plug in your BananaSplit60 keyboard via USB. Verify
|
||||
with `lsusb` that it appears. At least my PCB did not have
|
||||
anything preflashed so you should see `atmega32u4` or similar
|
||||
in the `lsusb` output.
|
||||
|
||||
Now you can flash the firmware by
|
||||
|
||||
$ sudo dfu-programmer atmega32u4 erase
|
||||
$ cd /qmk_firmware/root/directory
|
||||
$ sudo dfu-programmer atmega32u4 flash bananasplit_rask.hex
|
||||
|
||||
_If_ you happen to have some other `atmega32u4` based device
|
||||
I suggest you plug it out before flashing your BS60 just to
|
||||
prevent accidentally flashing your old device.
|
||||
72
keyboards/bananasplit/keymaps/rask/keymap.c
Normal file
72
keyboards/bananasplit/keymaps/rask/keymap.c
Normal file
@@ -0,0 +1,72 @@
|
||||
#include "bananasplit.h"
|
||||
|
||||
// rask's BananaSplit60 layout
|
||||
|
||||
#define L_BASE 0
|
||||
#define L_BASE_ALT 1
|
||||
#define L_ONE 2
|
||||
#define L_TWO 3
|
||||
#define L_LOCK 4
|
||||
|
||||
#define ______ KC_TRNS
|
||||
#define XXXXXX KC_NO
|
||||
|
||||
// L_BASE
|
||||
// Initial layer with default keymap
|
||||
//
|
||||
// L_BASE_ALT
|
||||
// Layer with some standardisation e.g. make
|
||||
// space key "full" to make gaming less of a
|
||||
// chore
|
||||
//
|
||||
// L_ONE
|
||||
// General things like F-row and navigation
|
||||
//
|
||||
// L_TWO
|
||||
// Media controls and more exotic keybinds
|
||||
//
|
||||
// L_LOCK
|
||||
// Lock the keyboard, release to unlock
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[L_BASE] = KEYMAP_HHKB_ARROW( \
|
||||
KC_GRV, 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_BSLS, KC_DEL, \
|
||||
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_BSPC, \
|
||||
MO(L_ONE), 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RSFT, KC_SLSH), KC_UP, MO(L_TWO), \
|
||||
KC_LCTRL, KC_LGUI, KC_LALT, KC_BSPC, MO(L_BASE_ALT), KC_SPACE, KC_RALT, MO(L_LOCK), KC_LEFT, KC_DOWN, KC_RIGHT \
|
||||
),
|
||||
|
||||
[L_BASE_ALT] = KEYMAP_HHKB_ARROW( \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, KC_SPACE, ______, ______, ______, ______, ______, ______, ______ \
|
||||
),
|
||||
|
||||
[L_ONE] = KEYMAP_HHKB_ARROW( \
|
||||
KC_ESC, 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_PSCR, KC_INS, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_PGUP, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_PGDN, KC_END \
|
||||
|
||||
),
|
||||
|
||||
[L_TWO] = KEYMAP_HHKB_ARROW( \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, \
|
||||
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, \
|
||||
______, ______, ______, ______, ______, ______, ______, ______, KC_MSTP, ______, ______, ______, ______, \
|
||||
______, KC_APP, ______, ______, ______, ______, ______, ______, ______, ______, ______ \
|
||||
),
|
||||
|
||||
[L_LOCK] = KEYMAP_HHKB_ARROW( \
|
||||
XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \
|
||||
XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \
|
||||
XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \
|
||||
XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, \
|
||||
XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, XXXXXX, ______, XXXXXX, XXXXXX, XXXXXX \
|
||||
),
|
||||
};
|
||||
@@ -7,6 +7,9 @@
|
||||
#ifdef SUBPROJECT_rev2
|
||||
#include "rev2.h"
|
||||
#endif
|
||||
#ifdef SUBPROJECT_rev3
|
||||
#include "rev3.h"
|
||||
#endif
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
|
||||
@@ -67,5 +67,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#ifdef SUBPROJECT_rev2
|
||||
#include "rev2/config.h"
|
||||
#endif
|
||||
#ifdef SUBPROJECT_rev3
|
||||
#include "rev3/config.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
#define _CL 2
|
||||
@@ -33,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _CL: Control layer
|
||||
*/
|
||||
[_CL] = KEYMAP(
|
||||
BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RGB_TOG, RGB_VAI, \
|
||||
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______,_______,RGB_TOG, RGB_VAI, \
|
||||
_______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
|
||||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
MO(_FL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_SAI, \
|
||||
|
||||
@@ -8,10 +8,11 @@ A fully customizable 66% keyboard.
|
||||
* Hardware Supported: Clueboard 66% PCB
|
||||
* rev1 (1.0)
|
||||
* rev2 (2.0, 2.0.1, 2.1, 2.5, 2.5.1, 2.6)
|
||||
* rev3 (2.7)
|
||||
* Hardware Availability: [clueboard.co](https://clueboard.co/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cluepad-default
|
||||
make clueboard-rev3-default
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
||||
|
||||
@@ -30,10 +30,17 @@
|
||||
/* Underlight configuration
|
||||
*/
|
||||
#define RGB_DI_PIN D7
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 14 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_HUE_STEP 32
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 // How many LEDs wide to light up
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 1 // The led to start at
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
|
||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
|
||||
|
||||
#endif
|
||||
|
||||
3
keyboards/clueboard/rev3/Makefile
Normal file
3
keyboards/clueboard/rev3/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
ifndef MAKEFILE_INCLUDED
|
||||
include ../../../Makefile
|
||||
endif
|
||||
46
keyboards/clueboard/rev3/config.h
Normal file
46
keyboards/clueboard/rev3/config.h
Normal file
@@ -0,0 +1,46 @@
|
||||
#ifndef REV3_CONFIG_H
|
||||
#define REV3_CONFIG_H
|
||||
|
||||
#include "../config.h"
|
||||
|
||||
#define PRODUCT_ID 0x2370
|
||||
#define DEVICE_VER 0x0001
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 8
|
||||
|
||||
// ROWS: Top to bottom, COLS: Left to right
|
||||
/* Row pin configuration
|
||||
* row: 0 1 2 3 4 5 6 7 8 9
|
||||
* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 }
|
||||
/* Column pin configuration
|
||||
* col: 0 1 2 3 4 5 6 7
|
||||
* pin: F0 F1 F4 F5 F6 F7 E6 B1
|
||||
*/
|
||||
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* Backlight configuration
|
||||
*/
|
||||
#define BACKLIGHT_LEVELS 1
|
||||
|
||||
/* Underlight configuration
|
||||
*/
|
||||
#define RGB_DI_PIN D7
|
||||
#define RGBLED_NUM 18 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 32
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 666*2
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3 // How many LEDs wide to light up
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 // The led to start at
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 5 // How many LEDs to travel
|
||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4 // How many LEDs wide to light up
|
||||
|
||||
#endif
|
||||
63
keyboards/clueboard/rev3/rev3.c
Normal file
63
keyboards/clueboard/rev3/rev3.c
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "rev3.h"
|
||||
#include <avr/io.h>
|
||||
#include "backlight.h"
|
||||
#include "print.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
matrix_init_user();
|
||||
led_init_ports();
|
||||
|
||||
// JTAG disable for PORT F. write JTD bit twice within four cycles.
|
||||
MCUCR |= (1<<JTD);
|
||||
MCUCR |= (1<<JTD);
|
||||
}
|
||||
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
void backlight_init_ports(void) {
|
||||
print("init_backlight_pin()\n");
|
||||
// Set our LED pins as output
|
||||
DDRD |= (1<<6); // Esc
|
||||
DDRB |= (1<<7); // Page Up
|
||||
DDRD |= (1<<4); // Arrows
|
||||
|
||||
// Set our LED pins low
|
||||
PORTD &= ~(1<<6); // Esc
|
||||
PORTB &= ~(1<<7); // Page Up
|
||||
PORTD &= ~(1<<4); // Arrows
|
||||
}
|
||||
|
||||
void backlight_set(uint8_t level) {
|
||||
if ( level == 0 ) {
|
||||
// Turn off light
|
||||
PORTD |= (1<<6); // Esc
|
||||
PORTB |= (1<<7); // Page Up
|
||||
PORTD |= (1<<4); // Arrows
|
||||
} else {
|
||||
// Turn on light
|
||||
PORTD &= ~(1<<6); // Esc
|
||||
PORTB &= ~(1<<7); // Page Up
|
||||
PORTD &= ~(1<<4); // Arrows
|
||||
}
|
||||
}
|
||||
|
||||
void led_init_ports() {
|
||||
// * Set our LED pins as output
|
||||
DDRB |= (1<<4);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
DDRB |= (1<<4);
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||
// Turn capslock on
|
||||
PORTB |= (1<<4);
|
||||
} else {
|
||||
// Turn capslock off
|
||||
PORTB &= ~(1<<4);
|
||||
}
|
||||
}
|
||||
52
keyboards/clueboard/rev3/rev3.h
Normal file
52
keyboards/clueboard/rev3/rev3.h
Normal file
@@ -0,0 +1,52 @@
|
||||
#ifndef REV3_H
|
||||
#define REV3_H
|
||||
|
||||
#include "../clueboard.h"
|
||||
|
||||
/* Clueboard matrix layout
|
||||
* ,-----------------------------------------------------------. ,---.
|
||||
* | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 55| 56| | 57|
|
||||
* |-----------------------------------------------------------| |---|
|
||||
* | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67|
|
||||
* |-----------------------------------------------------------| `---'
|
||||
* | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75|
|
||||
* |------------------------------------------------------------.
|
||||
* | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86|
|
||||
* |------------------------------------------------------------------.
|
||||
* | 40| 41| 42| 43| 45| 46| 90| 92| 93| 94| 95| 96| 97|
|
||||
* `------------------------------------------------------------------'
|
||||
* ,-----------------------------------------------------------. ,---.
|
||||
* | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins|
|
||||
* |-----------------------------------------------------------| |---|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|
|
||||
* |-----------------------------------------------------------| `---'
|
||||
* |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent|
|
||||
* |--------------------------------------------------------------.
|
||||
* |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up|
|
||||
* |------------------------------------------------------------------.
|
||||
* |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt|
|
||||
* `------------------------------------------------------------------'
|
||||
*/
|
||||
// The first section contains all of the arguments
|
||||
// The second converts the arguments into a two-dimensional array
|
||||
|
||||
#define KEYMAP( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \
|
||||
k40, k41, k42, k43, k45, k46, k90, k92, k93, k94, k95, k96, k97 \
|
||||
) { \
|
||||
{ k00, k01, k02, k03, k04, k05, k06, k07 }, \
|
||||
{ k10, k11, k12, k13, k14, k15, k16, k17 }, \
|
||||
{ k20, k21, k22, k23, k24, k25, k26, k27 }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k36, k37 }, \
|
||||
{ k40, k41, k42, k43, KC_NO, k45, k46, KC_NO }, \
|
||||
{ k50, k51, k52, k53, k54, k55, k56, k57 }, \
|
||||
{ k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \
|
||||
{ k70, k71, k72, k73, k74, k75, KC_NO, KC_NO }, \
|
||||
{ k80, k81, k82, k83, k84, k85, k86, KC_NO }, \
|
||||
{ k90, KC_NO, k92, k93, k94, k95, k96, k97 } \
|
||||
}
|
||||
|
||||
#endif
|
||||
1
keyboards/clueboard/rev3/rules.mk
Normal file
1
keyboards/clueboard/rev3/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
BACKLIGHT_ENABLE = yes
|
||||
@@ -1,3 +1,3 @@
|
||||
ifndef MAKEFILE_INCLUDED
|
||||
include ../../../Makefile
|
||||
include ../../Makefile
|
||||
endif
|
||||
|
||||
@@ -47,4 +47,44 @@
|
||||
/* 7 */ { KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7, KC_NO, KC_NO, KC_NO, KC_NO, KO7, KC_NO, KQ7, KR7 } \
|
||||
}
|
||||
|
||||
/*
|
||||
Matrix col/row mapping (TKL)
|
||||
|
||||
,----. ,-------------------. ,-------------------. ,-------------------. ,--------------.
|
||||
| J6 | | I4 | H4 | H2 | H6 | | A7 | E6 | D2 | D4 | | B4 | B7 | B6 | B0 | | C7 | C5 | A5 |
|
||||
`----' `-------------------' `-------------------' `-------------------' `--------------'
|
||||
,-------------------------------------------------------------------------. ,--------------.
|
||||
| J4 | J7 | I7 | H7 | G7 | G4 | F4 | F7 | E7 | D7 | R7 | R4 | E4 | B2 | | L4 | O4 | Q4 |
|
||||
|-------------------------------------------------------------------------| |--------------|
|
||||
| J2 | J5 | I5 | H5 | G5 | G2 | F2 | F5 | E5 | D5 | R5 | R2 | E2 | B3 | | K4 | O7 | Q7 |
|
||||
|-------------------------------------------------------------------------| '--------------'
|
||||
| O5 | J3 | I3 | H3 | G3 | G6 | F6 | F3 | E3 | D3 | R3 | R6 | B1 |
|
||||
|-------------------------------------------------------------------------| ,----.
|
||||
| N2 | J1 | I1 | H1 | G1 | G0 | F0 | F1 | E1 | D1 | R0 | N3 | | O6 |
|
||||
|-------------------------------------------------------------------------| ,--------------.
|
||||
| A4 | P2 | C6 | K6 | C0 | M3 | D0 | A1 | | O0 | K0 | L0 |
|
||||
`-------------------------------------------------------------------------' `--------------'
|
||||
*/
|
||||
|
||||
#define KEYMAP_TKL( \
|
||||
KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
|
||||
KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
|
||||
KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
|
||||
KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
|
||||
KN2, KI6, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
|
||||
KA4, KP2, KC6, KK6, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
|
||||
) \
|
||||
{ \
|
||||
/* Columns and rows need to be swapped in the below definition */ \
|
||||
/* A B C D E F G H I J K L M N O P Q R */ \
|
||||
/* 0 */ { KC_NO, KB0, KC0, KD0, KC_NO, KF0, KG0, KC_NO, KC_NO, KC_NO, KK0, KL0, KC_NO, KC_NO, KO0, KC_NO, KC_NO, KR0 }, \
|
||||
/* 1 */ { KA1, KB1, KC_NO, KD1, KE1, KF1, KG1, KH1, KI1, KJ1, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
/* 2 */ { KC_NO, KB2, KC_NO, KD2, KE2, KF2, KG2, KH2, KI2, KJ2, KC_NO, KC_NO, KC_NO, KN2, KC_NO, KP2, KC_NO, KR2 }, \
|
||||
/* 3 */ { KC_NO, KB3, KC_NO, KD3, KE3, KF3, KG3, KH3, KI3, KJ3, KC_NO, KC_NO, KM3, KN3, KC_NO, KC_NO, KC_NO, KR3 }, \
|
||||
/* 4 */ { KA4, KB4, KC_NO, KD4, KE4, KF4, KG4, KH4, KI4, KJ4, KK4, KL4, KC_NO, KC_NO, KO4, KC_NO, KQ4, KR4 }, \
|
||||
/* 5 */ { KA5, KC_NO, KC5, KD5, KE5, KF5, KG5, KH5, KI5, KJ5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KR5 }, \
|
||||
/* 6 */ { KC_NO, KB6, KC6, KC_NO, KE6, KF6, KG6, KH6, KI6, KJ6, KK6, KC_NO, KC_NO, KC_NO, KO6, KC_NO, KC_NO, KR6 }, \
|
||||
/* 7 */ { KA7, KB7, KC7, KD7, KE7, KF7, KG7, KH7, KI7, KJ7, KC_NO, KC_NO, KC_NO, KC_NO, KO7, KC_NO, KQ7, KR7 } \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
21
keyboards/frosty_flake/keymaps/tkl/Makefile
Normal file
21
keyboards/frosty_flake/keymaps/tkl/Makefile
Normal file
@@ -0,0 +1,21 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
8
keyboards/frosty_flake/keymaps/tkl/config.h
Normal file
8
keyboards/frosty_flake/keymaps/tkl/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
||||
11
keyboards/frosty_flake/keymaps/tkl/keymap.c
Normal file
11
keyboards/frosty_flake/keymaps/tkl/keymap.c
Normal file
@@ -0,0 +1,11 @@
|
||||
#include "frosty_flake.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP_TKL(\
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_GRV, 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_INS, KC_HOME, KC_PGUP, \
|
||||
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_DEL, KC_END, KC_PGDN, \
|
||||
KC_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_LSFT,KC_NUBS,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_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT )
|
||||
};
|
||||
1
keyboards/frosty_flake/keymaps/tkl/readme.md
Normal file
1
keyboards/frosty_flake/keymaps/tkl/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# TKL keymap for frosty_flake
|
||||
@@ -1,16 +1,46 @@
|
||||
Frosty Flake Controller
|
||||
===
|
||||
# Frosty Flake Controller
|
||||
|
||||
This is the firmware for Rev. 20140521 of the Frosty Flake controller by [Bathroom Epiphanies](http://bathroomepiphanies.com/controllers/), a replacement controller for the [Cooler Master Quick Fire Rapid](http://www.coolermaster.com/peripheral/keyboards/quickfirerapid/).
|
||||
This is the firmware for Rev. 20140521 of the Frosty Flake controller
|
||||
by [Bathroom Epiphanies](http://bathroomepiphanies.com/controllers/),
|
||||
a replacement controller for the [Cooler Master Quick Fire
|
||||
Rapid](http://www.coolermaster.com/peripheral/keyboards/quickfirerapid/).
|
||||
|
||||
The code was adapted from the [BathroomEpiphanies TMK Firmware](https://github.com/BathroomEpiphanies/epiphanies_tmk_keyboard/tree/master/be_controllers), but has been cleaned up to match the [schematic](https://deskthority.net/wiki/File:Frosty_Flake_Schematics.pdf) and gone through some minor refactoring for QMK.
|
||||
The code was adapted from the [BathroomEpiphanies TMK
|
||||
Firmware](https://github.com/BathroomEpiphanies/epiphanies_tmk_keyboard/tree/master/be_controllers),
|
||||
but has been cleaned up to match the
|
||||
[schematic](https://deskthority.net/wiki/File:Frosty_Flake_Schematics.pdf)
|
||||
and gone through some minor refactoring for QMK.
|
||||
|
||||
Keyboard Maintainer: QMK Community
|
||||
Hardware Supported: Frosty Flake
|
||||
Hardware Availability: https://1upkeyboards.com/qfr-frosty-flake-controller.html
|
||||
## 104 and 87 layout support
|
||||
|
||||
Support for both 104 key and 87 key layouts is provided. See the
|
||||
keymaps `default` (104) and `tkl` (87) for example layouts.
|
||||
|
||||
Keyboard Maintainer: QMK Community
|
||||
Hardware Supported: Frosty Flake
|
||||
Hardware Availability: https://1upkeyboards.com/qfr-frosty-flake-controller.html
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make frosty_flake-default
|
||||
104 key default layout:
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
||||
```
|
||||
make frosty_flake-default
|
||||
```
|
||||
|
||||
To directly flash the frosty_flake after compiling use
|
||||
|
||||
```
|
||||
make frosty_flake-default-dfu
|
||||
```
|
||||
|
||||
87 key tkl layout:
|
||||
|
||||
```
|
||||
make frosty_flake-tkl-dfu
|
||||
```
|
||||
|
||||
See [build environment
|
||||
setup](https://docs.qmk.fm/build_environment_setup.html) then the
|
||||
[make instructions](https://docs.qmk.fm/make_instructions.html) for
|
||||
more information.
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
:0B0000000000000000000000000001F4
|
||||
:00000001FF
|
||||
:0F000000000000000000000000000000000001F0
|
||||
:00000001FF
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
:0B0000000000000000000000000000F5
|
||||
:00000001FF
|
||||
:0F000000000000000000000000000000000000F1
|
||||
:00000001FF
|
||||
|
||||
3
keyboards/lets_split/keymaps/henxing/Makefile
Normal file
3
keyboards/lets_split/keymaps/henxing/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
51
keyboards/lets_split/keymaps/henxing/Readme.md
Normal file
51
keyboards/lets_split/keymaps/henxing/Readme.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Let's Split the Atreus
|
||||
|
||||
This keymap is a port of the Atreus keymap to the Let's Split keyboard, using a
|
||||
similar method of handling layer switches as the `default` keymap.
|
||||
|
||||
|
||||
# Layers
|
||||
|
||||
The following tables are the layers as implemented.
|
||||
|
||||
### Underscores in Layer
|
||||
|
||||
Any underscore represents a key that is mapped to `KC_NO`, or no keypress. The
|
||||
2x3 block in the middle is like this because the Atreus does not have any keys
|
||||
there. It has been left blank for the user to add her own special keypresses or
|
||||
macros that she finds useful to have on that particular layer.
|
||||
|
||||
|
||||
## `_QWERTY`
|
||||
|
||||
```c
|
||||
/*
|
||||
* q w e r t _ _ y u i o p
|
||||
* a s d f g _ _ h j k l ;
|
||||
* z x c v b _ _ n m , . /
|
||||
* esc tab gui shift bksp ctrl alt space fn - ' enter
|
||||
*/
|
||||
```
|
||||
|
||||
|
||||
## `_LOWER`
|
||||
|
||||
```c
|
||||
/*
|
||||
* ! @ up { } _ _ pgup 7 8 9 *
|
||||
* # left down right $ _ _ pgdn 4 5 6 +
|
||||
* [ ] ( ) & _ _ ` 1 2 3 \
|
||||
* lower insert gui shift bksp ctrl alt space fn . 0 =
|
||||
*/
|
||||
```
|
||||
|
||||
## `_RAISE`
|
||||
|
||||
```c
|
||||
/*
|
||||
* insert home up end pgup _ _ up F7 F8 F9 F10
|
||||
* del left down right pgdn _ _ down F4 F5 F6 F11
|
||||
* _ volup _ _ reset _ _ F1 F2 F3 F12
|
||||
* _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause
|
||||
*/
|
||||
```
|
||||
37
keyboards/lets_split/keymaps/henxing/config.h
Normal file
37
keyboards/lets_split/keymaps/henxing/config.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
This is the c configuration file for the keymap
|
||||
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
Copyright 2015 Jack Humbert
|
||||
|
||||
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
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define _MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#endif
|
||||
114
keyboards/lets_split/keymaps/henxing/keymap.c
Normal file
114
keyboards/lets_split/keymaps/henxing/keymap.c
Normal file
@@ -0,0 +1,114 @@
|
||||
#include "lets_split.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _QWERTY 0
|
||||
#define _LOWER 1
|
||||
#define _RAISE 2
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE
|
||||
};
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/*
|
||||
* q w e r t _ _ y u i o p
|
||||
* a s d f g _ _ h j k l ;
|
||||
* z x c v b _ _ n m , . /
|
||||
* esc tab gui shift bksp ctrl alt space fn - ' enter
|
||||
*/
|
||||
[_QWERTY] = KEYMAP( \
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, \
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
|
||||
KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, LOWER, KC_MINS, KC_QUOT, KC_ENT \
|
||||
),
|
||||
|
||||
/*
|
||||
* ! @ up { } _ _ pgup 7 8 9 *
|
||||
* # left down right $ _ _ pgdn 4 5 6 +
|
||||
* [ ] ( ) & _ _ ` 1 2 3 \
|
||||
* lower insert gui shift bksp ctrl alt space fn . 0 =
|
||||
*/
|
||||
[_LOWER] = KEYMAP( \
|
||||
KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, \
|
||||
KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_NO, KC_NO, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, \
|
||||
KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_NO, KC_NO, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, \
|
||||
RAISE, KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL \
|
||||
),
|
||||
|
||||
/*
|
||||
* insert home up end pgup _ _ up F7 F8 F9 F10
|
||||
* del left down right pgdn _ _ down F4 F5 F6 F11
|
||||
* _ volup _ _ reset _ _ F1 F2 F3 F12
|
||||
* _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause
|
||||
*/
|
||||
[_RAISE] = KEYMAP( \
|
||||
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10, \
|
||||
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11, \
|
||||
KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_NO, KC_NO, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, \
|
||||
KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, QWERTY, KC_PSCR, KC_SLCK, KC_PAUS \
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
|
||||
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
|
||||
#endif
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
// The value to return
|
||||
bool return_value = false;
|
||||
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
break;
|
||||
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
}
|
||||
break;
|
||||
|
||||
case RAISE:
|
||||
persistent_default_layer_set(1UL<<_RAISE);
|
||||
break;
|
||||
default:
|
||||
|
||||
// If the keycode is not handled by any of the other cases, we
|
||||
// should return true
|
||||
return_value = true;
|
||||
break;
|
||||
}
|
||||
|
||||
return return_value;
|
||||
}
|
||||
@@ -1 +1,16 @@
|
||||
#include "lets_split.h"
|
||||
#include "lets_split.h"
|
||||
|
||||
#ifdef ONEHAND_ENABLE
|
||||
__attribute__ ((weak))
|
||||
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
{{5, 4}, {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4}},
|
||||
{{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}},
|
||||
{{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}},
|
||||
{{5, 7}, {4, 7}, {3, 7}, {2, 7}, {1, 7}, {0, 7}},
|
||||
{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
|
||||
{{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
|
||||
{{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
|
||||
{{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -2,11 +2,7 @@
|
||||
#define SPLIT_KEYBOARD_UTIL_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifdef EE_HANDS
|
||||
#define EECONFIG_BOOTMAGIC_END (uint8_t *)10
|
||||
#define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END
|
||||
#endif
|
||||
#include "eeconfig.h"
|
||||
|
||||
#define SLAVE_I2C_ADDRESS 0x32
|
||||
|
||||
|
||||
1
keyboards/mitosis/keymaps/carvac_dv/Makefile
Normal file
1
keyboards/mitosis/keymaps/carvac_dv/Makefile
Normal file
@@ -0,0 +1 @@
|
||||
MOUSEKEY_ENABLE = yes
|
||||
131
keyboards/mitosis/keymaps/carvac_dv/keymap.c
Normal file
131
keyboards/mitosis/keymaps/carvac_dv/keymap.c
Normal file
@@ -0,0 +1,131 @@
|
||||
// This is the Dvorak-friendly layout for the Mitosis by CarVac (/u/CarVac)
|
||||
// It features space on the left thumb, shift on the right thumb, a
|
||||
// number layer with all the numbers on the home row, and a function layer
|
||||
// that provides mouse keys among other things.
|
||||
|
||||
#include "mitosis.h"
|
||||
|
||||
enum mitosis_layers
|
||||
{
|
||||
_STD,
|
||||
_NUM,
|
||||
_FN
|
||||
};
|
||||
|
||||
|
||||
//Mousekeys
|
||||
#define MOUSEKEY_DELAY 300
|
||||
#define MOUSEKEY_INTERNAL 50
|
||||
#define MOUSEKEY_MAX_SPEED 20
|
||||
#define MOUSEKEY_TIME_TO_MAX 30
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 8
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* QWERTY
|
||||
* .--------------------------------------------..--------------------------------------------.
|
||||
* | Q | W | E | R | T || Y | U | I | O | P |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | A | S | D | F | G || J | H | K | L | ; |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | Z | X | C | V | B || N | M | , | . | / |
|
||||
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
|
||||
* | PGUP | PSCR | LCTRL | SPACE || LSHIFT | ENTER | UP | BACKSP |
|
||||
* |--------+--------+--------+--------||--------+--------+--------+--------|
|
||||
* | PGDN | LGUI | LALT | FN || NUM | LEFT | DOWN | RIGHT |
|
||||
* '-----------------------------------''-----------------------------------'
|
||||
*/
|
||||
|
||||
[_STD] = { /* Standard; as compatible with dvorak and qwerty as possible */
|
||||
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P },
|
||||
{KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN },
|
||||
{KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH },
|
||||
{XXXXXXX, KC_PGUP, KC_PSCR, KC_LCTL, KC_SPC, KC_LSFT, KC_ENT, KC_UP, KC_BSPC, XXXXXXX },
|
||||
{XXXXXXX, KC_PGDN, KC_LGUI, KC_LALT, MO(_FN), MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX }
|
||||
},
|
||||
|
||||
/* Number layout, for data entry and programming purposes (Dvorak result in parens)
|
||||
* .--------------------------------------------..--------------------------------------------.
|
||||
* | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 |
|
||||
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
|
||||
* | F11 | F12 | | || | | | |
|
||||
* |--------+--------+--------+--------||--------+--------+--------+--------|
|
||||
* | | | | || | | | |
|
||||
* '-----------------------------------''-----------------------------------'
|
||||
*/
|
||||
|
||||
[_NUM] = { /* Number layout along the home row for maximum speed*/
|
||||
{KC_TAB, _______, _______, KC_MINS, KC_EQL, KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC },
|
||||
{KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 },
|
||||
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 },
|
||||
{XXXXXXX, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, XXXXXXX },
|
||||
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }
|
||||
},
|
||||
|
||||
|
||||
/* Fn layout, for typing purposes (Dvorak result in parens)
|
||||
* .--------------------------------------------..--------------------------------------------.
|
||||
* | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ |
|
||||
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
|
||||
* | VOLU | | | || | | PGUP | |
|
||||
* |--------+--------+--------+--------||--------+--------+--------+--------|
|
||||
* | VOLD | | | || | HOME | PGDN | END |
|
||||
* '-----------------------------------''-----------------------------------'
|
||||
*/
|
||||
|
||||
[_FN] = { /* Function Layer, primary alternative layer featuring numpad on right hand,
|
||||
cursor keys on left hand, and all symbols*/
|
||||
{KC_GRV, _______, KC_MS_U, _______, _______, KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC },
|
||||
{KC_ESC, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT },
|
||||
{KC_APP, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, KC_BSPC, KC_DEL, KC_INS, KC_BSLS },
|
||||
{XXXXXXX, KC_VOLU, _______, _______, _______, _______, _______, KC_PGUP, _______, XXXXXXX },
|
||||
{XXXXXXX, KC_VOLD, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END, XXXXXXX }
|
||||
},
|
||||
|
||||
/* blank key layout template
|
||||
* .--------------------------------------------..--------------------------------------------.
|
||||
* | | | | | || | | | | |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | | | | | || | | | | |
|
||||
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
|
||||
* | | | | | || | | | | |
|
||||
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
|
||||
* | | | | || | | | |
|
||||
* |--------+--------+--------+--------||--------+--------+--------+--------|
|
||||
* | | | | || | | | |
|
||||
* '-----------------------------------''-----------------------------------'
|
||||
*/
|
||||
|
||||
};
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
switch (layer) {
|
||||
case _STD:
|
||||
set_led_off;
|
||||
break;
|
||||
case _FN:
|
||||
set_led_blue;
|
||||
break;
|
||||
case _NUM:
|
||||
set_led_red;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
17
keyboards/mitosis/keymaps/mjt/Makefile
Normal file
17
keyboards/mitosis/keymaps/mjt/Makefile
Normal file
@@ -0,0 +1,17 @@
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
API_SYSEX_ENABLE = no
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
@@ -1,74 +1,24 @@
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include "config_common.h"
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#include "../../config.h"
|
||||
|
||||
#define VENDOR_ID 0xFEEB
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER MJT
|
||||
#define PRODUCT Mitosis
|
||||
#define DESCRIPTION q.m.k. keyboard firmware for Mitosis
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 10
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define AUDIO_VOICES
|
||||
#define C6_AUDIO
|
||||
|
||||
// fix iPhone power adapter issue
|
||||
#define USB_MAX_POWER_CONSUMPTION 50
|
||||
// #define CATERINA_BOOTLOADER
|
||||
|
||||
/* define if matrix has ghost */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
//#define BACKLIGHT_LEVELS 3
|
||||
|
||||
#define ONESHOT_TIMEOUT 500
|
||||
|
||||
|
||||
/* key combination for command */
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
//UART settings for communication with the RF microcontroller
|
||||
#define SERIAL_UART_BAUD 1000000
|
||||
#define SERIAL_UART_DATA UDR1
|
||||
#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1)
|
||||
#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1))
|
||||
#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1))
|
||||
#define SERIAL_UART_INIT() do { \
|
||||
/* baud rate */ \
|
||||
UBRR1L = SERIAL_UART_UBRR; \
|
||||
/* baud rate */ \
|
||||
UBRR1H = SERIAL_UART_UBRR >> 8; \
|
||||
/* enable TX and RX */ \
|
||||
UCSR1B = _BV(TXEN1) | _BV(RXEN1); \
|
||||
/* 8-bit data */ \
|
||||
UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \
|
||||
} while(0)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -28,6 +28,7 @@ enum mitosis_keycodes
|
||||
MACSLEEP,
|
||||
FNMAC,
|
||||
FNPC,
|
||||
AUDIOTEST,
|
||||
DYNAMIC_MACRO_RANGE,
|
||||
};
|
||||
|
||||
@@ -236,7 +237,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
persistent_function_layer_set(_FUNCTIONPC);
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_NOTE_ARRAY(tone_fnpc, false, 0);
|
||||
PLAY_SONG(tone_fnpc);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
@@ -245,9 +246,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
persistent_function_layer_set(_FUNCTIONMAC);
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_NOTE_ARRAY(tone_fnmac, false, 0);
|
||||
PLAY_SONG(tone_fnmac);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case AUDIOTEST:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(music_scale);
|
||||
register_code(KC_M);
|
||||
unregister_code(KC_M);
|
||||
#endif
|
||||
register_code(KC_A);
|
||||
} else {
|
||||
unregister_code(KC_A);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
//If any other key was pressed during the layer mod hold period,
|
||||
@@ -279,12 +293,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
void startup_user()
|
||||
{
|
||||
_delay_ms(20); // gets rid of tick
|
||||
PLAY_NOTE_ARRAY(tone_startup, false, 0);
|
||||
PLAY_SONG(tone_startup);
|
||||
}
|
||||
|
||||
void shutdown_user()
|
||||
{
|
||||
PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
|
||||
PLAY_SONG(tone_goodbye);
|
||||
_delay_ms(150);
|
||||
stop_all_notes();
|
||||
}
|
||||
@@ -296,7 +310,7 @@ void music_on_user(void)
|
||||
|
||||
void music_scale_user(void)
|
||||
{
|
||||
PLAY_NOTE_ARRAY(music_scale, false, 0);
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define MANUFACTURER Ortholinear Keyboards
|
||||
#define MANUFACTURER OLKB
|
||||
#define PRODUCT The Planck Keyboard
|
||||
#define DESCRIPTION A compact ortholinear keyboard
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ NKRO_ENABLE = yes # N-key rollover required for use as a steno board
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = no
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
|
||||
@@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
|
||||
{_______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
|
||||
{_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = yes
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
@@ -53,10 +53,10 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = yes # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
|
||||
79
keyboards/satan/keymaps/rask63/keymap.c
Normal file
79
keyboards/satan/keymaps/rask63/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
#include "satan.h"
|
||||
|
||||
#define _BASE 0
|
||||
#define _FNO 1
|
||||
#define _FNT 2
|
||||
|
||||
#define ________ KC_TRNS
|
||||
#define XXXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/*
|
||||
Base layer
|
||||
|
||||
-------------------------------------------------------------------------------------------
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | Del |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Fn1 | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Shift | Z | X | C | V | B | N | M | , | . | / | Up | Fn2 |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Ctrl | Win | Alt | Space | AltGr | Left | Down | Right |
|
||||
-------------------------------------------------------------------------------------------
|
||||
*/
|
||||
[_BASE] = KEYMAP_HHKB(
|
||||
KC_GRV, 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_BSLS, KC_DEL, \
|
||||
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_BSPC, \
|
||||
MO(_FNO), 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FNT), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
/*
|
||||
Fn1 layer
|
||||
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Prsc| Ins |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | | | | | | | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| NONE | | | | | | | | | | | | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | | | | | PgUp | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | Home | PgDn | End |
|
||||
-------------------------------------------------------------------------------------------
|
||||
*/
|
||||
[_FNO] = KEYMAP_HHKB(
|
||||
KC_ESC, 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_PSCR, KC_INS, \
|
||||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
|
||||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
|
||||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, KC_PGUP, ________, \
|
||||
________, ________, ________, ________, ________, KC_HOME, KC_PGDN, KC_END),
|
||||
|
||||
/*
|
||||
Fn2 layer
|
||||
|
||||
TODO: macro buttons
|
||||
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | | | | | | | | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | | | Prev| Play| Next| | |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| CapsLk | | | | | | | | | Vol-| Vol+| Mute| |
|
||||
-------------------------------------------------------------------------------------------
|
||||
| | | | | | | | | | Stop| | | NONE|
|
||||
-------------------------------------------------------------------------------------------
|
||||
| Reset | Menu | | | M1 | M2 | M3 | M4 |
|
||||
-------------------------------------------------------------------------------------------
|
||||
*/
|
||||
[_FNT] = KEYMAP_HHKB(
|
||||
________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, \
|
||||
________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MPRV, KC_MPLY, KC_MNXT, ________, ________, \
|
||||
KC_CAPS, ________, ________, ________, ________, ________, ________, ________, ________, KC_VOLD, KC_VOLU, KC_MUTE, ________, \
|
||||
________, ________, ________, ________, ________, ________, ________, ________, ________, KC_MSTP, ________, ________, ________, \
|
||||
RESET, KC_MENU, ________, ________, ________, ________, ________, ________),
|
||||
};
|
||||
21
keyboards/tv44/keymaps/jetpacktuxedo/Makefile
Normal file
21
keyboards/tv44/keymaps/jetpacktuxedo/Makefile
Normal file
@@ -0,0 +1,21 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
8
keyboards/tv44/keymaps/jetpacktuxedo/config.h
Normal file
8
keyboards/tv44/keymaps/jetpacktuxedo/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
||||
41
keyboards/tv44/keymaps/jetpacktuxedo/keymap.c
Normal file
41
keyboards/tv44/keymaps/jetpacktuxedo/keymap.c
Normal file
@@ -0,0 +1,41 @@
|
||||
#include "tv44.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP_ARROW_COMMAND( /* Qwerty */
|
||||
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(1), KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[1] = KEYMAP_ARROW_COMMAND( /* LAYER 2 */
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_QUOT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_BSLS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
[2] = KEYMAP_ARROW_COMMAND( /* LAYER 1 */
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_DQUO, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_PGUP, KC_PIPE,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
|
||||
),
|
||||
[3] = KEYMAP_ARROW_COMMAND( /* LAYER 3 */
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[4] = KEYMAP_ARROW_COMMAND( /* Gaming Layer*/
|
||||
KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
|
||||
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
};
|
||||
49
keyboards/tv44/keymaps/jetpacktuxedo/readme.md
Normal file
49
keyboards/tv44/keymaps/jetpacktuxedo/readme.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Jetpacktuxedo's minivan layout
|
||||
|
||||
This differs quite a bit from the stock layout but leaves keys in a more familiar position in my opinion. It is designed to use the arrow+command layout, but I used a fairly similar layout for the normal arrow layout. Additionally, I use an mx lock switch on the key between the right space key and the arrow cluster. If you don't want to use a lock switch you should change MO(4) on the base layer to use TG(4) instead for a similar effect.
|
||||
|
||||
## Base Layer (0)
|
||||
|
||||
The base layer is pretty simple, straight qwerty layout where available. Of note: /? is to the right of the arrow keys. Yes this is kinda weird sometimes, but you get used to it. Tab is tab when pressed and fn2 when held. GESC is esc when used alone, but ~ when shifted.
|
||||
```
|
||||
|GESC| Q | W | E | R | T | Y | U | I | O | P | BSPC |
|
||||
| TAB | A | S | D | F | G | H | J | K | L | ; |ENTER|
|
||||
|SHIFT | Z | X | C | V | B | N | M | , | . | UP | / |
|
||||
|CTRL|WIN |ALT |FN 3| FN 1 | SPACE | FN 4 |LEFT|DOWN|RIGH|
|
||||
```
|
||||
## Numeric Layer (1)
|
||||
|
||||
This layer has the numrow as well as swapping the arrow keys for a nav cluster, and swapping ;: for '" and /? for \|. With that almost all of the missing keys are accounted for.
|
||||
```
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL |
|
||||
| | | | | | | | | - | = | ' | |
|
||||
| | | | | | | | | | |PGUP| \ |
|
||||
| | | | | | | |HOME|PGDN|END |
|
||||
```
|
||||
## Symbolic Layer (2)
|
||||
|
||||
I don't want to be using two key combos constantly, so I also added this symbol layer that is basically shift+numeric layer
|
||||
```
|
||||
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | DEL |
|
||||
| | | | | | | | | _ | + | " | |
|
||||
| | | | | | | | | | |PGUP| | |
|
||||
| | | | | | | |HOME|PGDN|END |
|
||||
```
|
||||
## Fkeys (3)
|
||||
|
||||
I very rarely use Fkeys, but figured I'd throw them on anyway just in case. The setup basically mimics the way Fkeys are usually done on a 60%, with F11 and F12 still on - and =, even though the location of those keys has moved.
|
||||
```
|
||||
| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 | |
|
||||
| | | | | | | | | |F11 |F12 | |
|
||||
| | | | | | | | | | | | |
|
||||
| | | | | | | | | | |
|
||||
```
|
||||
## Gaming Layer (4)
|
||||
|
||||
Originally this was just going to be a gaming layer (make esc just esc, make tab just tab, move space to the left side), but I ended up in a hotel without a usb mouse, so I added mousekeys to it as well.
|
||||
```
|
||||
|ESC | | | | | |MWUP|MRCK|M_UP|MLCK| | |
|
||||
| TAB | | | | | |MWDN|M_LF|M_DN|M_RG| | |
|
||||
| | | | | | | | | | | | |
|
||||
| | | | | SPACE | | | | | |
|
||||
```
|
||||
@@ -51,7 +51,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#define BACKLIGHT_PIN F5
|
||||
#define BACKLIGHT_BREATHING
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#define BACKLIGHT_LEVELS 6
|
||||
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
|
||||
@@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
|
||||
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | ~L1 | Alt |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
|
||||
* | ~L1 | Alt |AltShf| Left | Right| | Up | Down |AltShf| Alt | ~L1 |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | App | Home | | PgUp |Ctrl/Esc|
|
||||
@@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB),
|
||||
KC_UP, KC_DOWN,RALT(KC_RSFT), KC_RALT, MO(SYMB),
|
||||
|
||||
KC_PGUP, CTL_T(KC_ESC),
|
||||
KC_PGDN,
|
||||
@@ -102,9 +102,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | Lclk | Rclk | | F12 |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play |
|
||||
* | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | Prev | Next | | |
|
||||
* | | | | | | | | | | | Prev | Play | Next | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | |VolUp |VolDn | Mute | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
@@ -129,8 +129,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// right hand
|
||||
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_F12,
|
||||
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_MPLY,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
|
||||
KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
|
||||
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key).
|
||||
|
||||
## How is it different from the default ErgoDox EZ layout?
|
||||
## How is it different from the default ErgoDox EZ default_osx layout?
|
||||
|
||||
This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means:
|
||||
|
||||
@@ -18,15 +18,16 @@ This layout more closely resembles that of the Mac keyboard, and has some other
|
||||
|
||||
### Other changes
|
||||
|
||||
- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most.
|
||||
- **Mouse uses Vim-style navigation**. To activate "Media mode," hold the 'a' key. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys.
|
||||
- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most.
|
||||
- **Mouse uses Vim-style navigation**. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys.
|
||||
- **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach.
|
||||
- **The Toggle L1 keys have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that I did not toggle L1 frequently at all, and found using the momentary keys to access L1 to fit my workflow better.
|
||||
- **The "~"/L1 key in the bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold."
|
||||
- **The Home and End buttons have been shifted up on the left thumb, and Shift inserted below them.** This makes doing Shift-5 and other such combinations less painful.
|
||||
- **The Page Up and Page Down buttons have been shifted up on the right thumb.** I don't use either of these keys often, and wanted to free up some real estate.
|
||||
- **The bottommost-inner keys on the left and right thumb are momentary L2 and momentary L1, respectively**. I have found that both modes are useful, and this seemed like a reasonably accessible place to put these.
|
||||
- **The Toggle L1 keys in the center of the keyboard have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that the ~L1 would be better situated elsewhere.
|
||||
- **The "~" key in the extreme bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold."
|
||||
- **The Home and End buttons have been shifted up on the left thumb, and ~L2 inserted below them.** Nearly all of my media layer changes are on the right side, so the ~L2 key is on the left side.
|
||||
- **The Page Up and Page Down buttons have been shifted up on the right thumb, and ~L1 inserted below them.** I don't use either of the "Page" keys often, and use this ~L1 more than any other.
|
||||
- **Traditional numpad layout.** The base of most numpads is a double-wide "0" key to the left of a "." key. This is reflected in my layout by having two "0" keys to the left of a "." key.
|
||||
- **The function keys (F1-F12) have been moved to L2.** They were in the way in L1.
|
||||
- **⏯ lives on ',' in the media layer, between ⏪ on 'm' and ⏩ on '.'.** This is the way they are laid out on the mac keyboard, and makes the most sense to me.
|
||||
- **The keys on the bottom-right that were formerly "[" and "]" are now Alt-Shift and Alt, respectively.** This enables me to do those `C-M-<key>` bindings in emacs. I use L1 for "[" and "]".
|
||||
|
||||
**I'm always open to feedback and/or suggestions!**
|
||||
|
||||
@@ -56,8 +56,7 @@ MSG_CLEANING = Cleaning project:
|
||||
MSG_CREATING_LIBRARY = Creating library:
|
||||
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \
|
||||
Some git sub-modules are out of date or modified, please consider runnning:$(BOLD)\n\
|
||||
git submodule sync --recursive\n\
|
||||
git submodule update --init --recursive$(NO_COLOR)\n\n\
|
||||
make git-submodule\n\
|
||||
You can ignore this warning if you are not compiling any ChibiOS keyboards,\n\
|
||||
or if you have modified the ChibiOS libraries yourself. \n\n
|
||||
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "print.h"
|
||||
#include "audio.h"
|
||||
#include "keymap.h"
|
||||
#include "wait.h"
|
||||
|
||||
#include "eeconfig.h"
|
||||
|
||||
@@ -122,14 +123,19 @@ bool glissando = true;
|
||||
#ifndef STARTUP_SONG
|
||||
#define STARTUP_SONG SONG(STARTUP_SOUND)
|
||||
#endif
|
||||
#ifndef AUDIO_ON_SONG
|
||||
#define AUDIO_ON_SONG SONG(AUDIO_ON_SOUND)
|
||||
#endif
|
||||
#ifndef AUDIO_OFF_SONG
|
||||
#define AUDIO_OFF_SONG SONG(AUDIO_OFF_SOUND)
|
||||
#endif
|
||||
float startup_song[][2] = STARTUP_SONG;
|
||||
float audio_on_song[][2] = AUDIO_ON_SONG;
|
||||
float audio_off_song[][2] = AUDIO_OFF_SONG;
|
||||
|
||||
void audio_init()
|
||||
{
|
||||
|
||||
if (audio_initialized)
|
||||
return;
|
||||
|
||||
// Check EEPROM
|
||||
if (!eeconfig_is_enabled())
|
||||
{
|
||||
@@ -137,46 +143,49 @@ void audio_init()
|
||||
}
|
||||
audio_config.raw = eeconfig_read_audio();
|
||||
|
||||
// Set port PC6 (OC3A and /OC4A) as output
|
||||
if (!audio_initialized) {
|
||||
|
||||
#ifdef C6_AUDIO
|
||||
DDRC |= _BV(PORTC6);
|
||||
#else
|
||||
DDRC |= _BV(PORTC6);
|
||||
PORTC &= ~_BV(PORTC6);
|
||||
#endif
|
||||
// Set port PC6 (OC3A and /OC4A) as output
|
||||
|
||||
#ifdef B5_AUDIO
|
||||
DDRB |= _BV(PORTB5);
|
||||
#else
|
||||
DDRB |= _BV(PORTB5);
|
||||
PORTB &= ~_BV(PORTB5);
|
||||
#endif
|
||||
#ifdef C6_AUDIO
|
||||
DDRC |= _BV(PORTC6);
|
||||
#else
|
||||
DDRC |= _BV(PORTC6);
|
||||
PORTC &= ~_BV(PORTC6);
|
||||
#endif
|
||||
|
||||
#ifdef C6_AUDIO
|
||||
DISABLE_AUDIO_COUNTER_3_ISR;
|
||||
#endif
|
||||
|
||||
#ifdef B5_AUDIO
|
||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||
#endif
|
||||
#ifdef B5_AUDIO
|
||||
DDRB |= _BV(PORTB5);
|
||||
#else
|
||||
DDRB |= _BV(PORTB5);
|
||||
PORTB &= ~_BV(PORTB5);
|
||||
#endif
|
||||
|
||||
// TCCR3A / TCCR3B: Timer/Counter #3 Control Registers
|
||||
// Compare Output Mode (COM3An) = 0b00 = Normal port operation, OC3A disconnected from PC6
|
||||
// Waveform Generation Mode (WGM3n) = 0b1110 = Fast PWM Mode 14 (Period = ICR3, Duty Cycle = OCR3A)
|
||||
// Clock Select (CS3n) = 0b010 = Clock / 8
|
||||
#ifdef C6_AUDIO
|
||||
DISABLE_AUDIO_COUNTER_3_ISR;
|
||||
#endif
|
||||
|
||||
#ifdef B5_AUDIO
|
||||
DISABLE_AUDIO_COUNTER_1_ISR;
|
||||
#endif
|
||||
|
||||
#ifdef C6_AUDIO
|
||||
TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
|
||||
TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
|
||||
#endif
|
||||
// TCCR3A / TCCR3B: Timer/Counter #3 Control Registers
|
||||
// Compare Output Mode (COM3An) = 0b00 = Normal port operation, OC3A disconnected from PC6
|
||||
// Waveform Generation Mode (WGM3n) = 0b1110 = Fast PWM Mode 14 (Period = ICR3, Duty Cycle = OCR3A)
|
||||
// Clock Select (CS3n) = 0b010 = Clock / 8
|
||||
|
||||
#ifdef B5_AUDIO
|
||||
TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
|
||||
TCCR1B = (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10);
|
||||
#endif
|
||||
#ifdef C6_AUDIO
|
||||
TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30);
|
||||
TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30);
|
||||
#endif
|
||||
|
||||
audio_initialized = true;
|
||||
#ifdef B5_AUDIO
|
||||
TCCR1A = (0 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (0 << WGM10);
|
||||
TCCR1B = (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (1 << CS11) | (0 << CS10);
|
||||
#endif
|
||||
|
||||
audio_initialized = true;
|
||||
}
|
||||
|
||||
if (audio_config.enable) {
|
||||
PLAY_SONG(startup_song);
|
||||
@@ -720,9 +729,13 @@ void audio_on(void) {
|
||||
audio_config.enable = 1;
|
||||
eeconfig_update_audio(audio_config.raw);
|
||||
audio_on_user();
|
||||
PLAY_SONG(audio_on_song);
|
||||
}
|
||||
|
||||
void audio_off(void) {
|
||||
PLAY_SONG(audio_off_song);
|
||||
wait_ms(100);
|
||||
stop_all_notes();
|
||||
audio_config.enable = 0;
|
||||
eeconfig_update_audio(audio_config.raw);
|
||||
}
|
||||
|
||||
@@ -127,6 +127,14 @@
|
||||
E__NOTE(_GS6), \
|
||||
E__NOTE(_A6 ),
|
||||
|
||||
#define AUDIO_ON_SOUND \
|
||||
E__NOTE(_A5 ), \
|
||||
E__NOTE(_A6 ),
|
||||
|
||||
#define AUDIO_OFF_SOUND \
|
||||
E__NOTE(_A6 ), \
|
||||
E__NOTE(_A5 ),
|
||||
|
||||
#define MUSIC_SCALE_SOUND MUSIC_ON_SOUND
|
||||
|
||||
#define MUSIC_OFF_SOUND \
|
||||
|
||||
@@ -49,6 +49,9 @@ void unicode_input_start (void) {
|
||||
case UC_OSX:
|
||||
register_code(KC_LALT);
|
||||
break;
|
||||
case UC_OSX_RALT:
|
||||
register_code(KC_RALT);
|
||||
break;
|
||||
case UC_LNX:
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
@@ -78,6 +81,9 @@ void unicode_input_finish (void) {
|
||||
case UC_WIN:
|
||||
unregister_code(KC_LALT);
|
||||
break;
|
||||
case UC_OSX_RALT:
|
||||
unregister_code(KC_RALT);
|
||||
break;
|
||||
case UC_LNX:
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
|
||||
@@ -37,6 +37,7 @@ void register_hex(uint16_t hex);
|
||||
#define UC_WIN 2 // Windows 'HexNumpad'
|
||||
#define UC_BSD 3 // BSD (not implemented)
|
||||
#define UC_WINC 4 // WinCompose https://github.com/samhocevar/wincompose
|
||||
#define UC_OSX_RALT 5 // Mac OS X using Right Alt key for Unicode Compose
|
||||
|
||||
#define UC_BSPC UC(0x0008)
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ bool process_unicode_map(uint16_t keycode, keyrecord_t *record) {
|
||||
const uint32_t* map = unicode_map;
|
||||
uint16_t index = keycode - QK_UNICODE_MAP;
|
||||
uint32_t code = pgm_read_dword(&map[index]);
|
||||
if (code > 0xFFFF && code <= 0x10ffff && input_mode == UC_OSX) {
|
||||
if (code > 0xFFFF && code <= 0x10ffff && (input_mode == UC_OSX || input_mode == UC_OSX_RALT)) {
|
||||
// Convert to UTF-16 surrogate pair
|
||||
code -= 0x10000;
|
||||
uint32_t lo = code & 0x3ff;
|
||||
@@ -59,7 +59,7 @@ bool process_unicode_map(uint16_t keycode, keyrecord_t *record) {
|
||||
register_hex32(hi + 0xd800);
|
||||
register_hex32(lo + 0xdc00);
|
||||
unicode_input_finish();
|
||||
} else if ((code > 0x10ffff && input_mode == UC_OSX) || (code > 0xFFFFF && input_mode == UC_LNX)) {
|
||||
} else if ((code > 0x10ffff && (input_mode == UC_OSX || input_mode == UC_OSX_RALT)) || (code > 0xFFFFF && input_mode == UC_LNX)) {
|
||||
// when character is out of range supported by the OS
|
||||
unicode_map_input_error();
|
||||
} else {
|
||||
|
||||
@@ -249,105 +249,153 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
reset_keyboard();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
return false;
|
||||
case DEBUG:
|
||||
if (record->event.pressed) {
|
||||
print("\nDEBUG: enabled.\n");
|
||||
debug_enable = true;
|
||||
print("DEBUG: enabled.\n");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
return false;
|
||||
#ifdef FAUXCLICKY_ENABLE
|
||||
case FC_TOG:
|
||||
if (record->event.pressed) {
|
||||
FAUXCLICKY_TOGGLE;
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FC_ON:
|
||||
if (record->event.pressed) {
|
||||
FAUXCLICKY_ON;
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FC_OFF:
|
||||
if (record->event.pressed) {
|
||||
FAUXCLICKY_OFF;
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
#endif
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
rgblight_toggle();
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
rgblight_toggle();
|
||||
}
|
||||
return false;
|
||||
case RGB_MOD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_step();
|
||||
}
|
||||
return false;
|
||||
case RGB_HUI:
|
||||
if (record->event.pressed) {
|
||||
rgblight_increase_hue();
|
||||
}
|
||||
return false;
|
||||
case RGB_HUD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
return false;
|
||||
case RGB_SAI:
|
||||
if (record->event.pressed) {
|
||||
rgblight_increase_sat();
|
||||
}
|
||||
return false;
|
||||
case RGB_SAD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_decrease_sat();
|
||||
}
|
||||
return false;
|
||||
case RGB_VAI:
|
||||
if (record->event.pressed) {
|
||||
rgblight_increase_val();
|
||||
}
|
||||
return false;
|
||||
case RGB_VAD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_PLAIN:
|
||||
if (record->event.pressed) {
|
||||
rgblight_mode(1);
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_BREATHE:
|
||||
if (record->event.pressed) {
|
||||
if ((2 <= rgblight_get_mode()) && (rgblight_get_mode() < 5)) {
|
||||
rgblight_step();
|
||||
} else {
|
||||
rgblight_mode(2);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_MOD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_step();
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_RAINBOW:
|
||||
if (record->event.pressed) {
|
||||
if ((6 <= rgblight_get_mode()) && (rgblight_get_mode() < 8)) {
|
||||
rgblight_step();
|
||||
} else {
|
||||
rgblight_mode(6);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_HUI:
|
||||
if (record->event.pressed) {
|
||||
rgblight_increase_hue();
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_SWIRL:
|
||||
if (record->event.pressed) {
|
||||
if ((9 <= rgblight_get_mode()) && (rgblight_get_mode() < 14)) {
|
||||
rgblight_step();
|
||||
} else {
|
||||
rgblight_mode(9);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_HUD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_SNAKE:
|
||||
if (record->event.pressed) {
|
||||
if ((15 <= rgblight_get_mode()) && (rgblight_get_mode() < 20)) {
|
||||
rgblight_step();
|
||||
} else {
|
||||
rgblight_mode(15);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SAI:
|
||||
if (record->event.pressed) {
|
||||
rgblight_increase_sat();
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_KNIGHT:
|
||||
if (record->event.pressed) {
|
||||
if ((21 <= rgblight_get_mode()) && (rgblight_get_mode() < 23)) {
|
||||
rgblight_step();
|
||||
} else {
|
||||
rgblight_mode(21);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SAD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_decrease_sat();
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_XMAS:
|
||||
if (record->event.pressed) {
|
||||
rgblight_mode(24);
|
||||
}
|
||||
return false;
|
||||
case RGB_MODE_GRADIENT:
|
||||
if (record->event.pressed) {
|
||||
if ((25 <= rgblight_get_mode()) && (rgblight_get_mode() < 34)) {
|
||||
rgblight_step();
|
||||
} else {
|
||||
rgblight_mode(25);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_VAI:
|
||||
if (record->event.pressed) {
|
||||
rgblight_increase_val();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_VAD:
|
||||
if (record->event.pressed) {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
#ifdef PROTOCOL_LUFA
|
||||
case OUT_AUTO:
|
||||
if (record->event.pressed) {
|
||||
set_output(OUTPUT_AUTO);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case OUT_USB:
|
||||
if (record->event.pressed) {
|
||||
set_output(OUTPUT_USB);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
#ifdef BLUETOOTH_ENABLE
|
||||
case OUT_BT:
|
||||
if (record->event.pressed) {
|
||||
set_output(OUTPUT_BLUETOOTH);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_NKRO:
|
||||
@@ -454,7 +502,6 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
unregister_mods(MOD_BIT(KC_LSFT));
|
||||
}
|
||||
return false;
|
||||
// break;
|
||||
}
|
||||
|
||||
case KC_RSPC: {
|
||||
@@ -477,7 +524,6 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
unregister_mods(MOD_BIT(KC_RSFT));
|
||||
}
|
||||
return false;
|
||||
// break;
|
||||
}
|
||||
case GRAVE_ESC: {
|
||||
uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)
|
||||
|
||||
@@ -401,6 +401,14 @@ enum quantum_keycodes {
|
||||
RGB_SAD,
|
||||
RGB_VAI,
|
||||
RGB_VAD,
|
||||
RGB_MODE_PLAIN,
|
||||
RGB_MODE_BREATHE,
|
||||
RGB_MODE_RAINBOW,
|
||||
RGB_MODE_SWIRL,
|
||||
RGB_MODE_SNAKE,
|
||||
RGB_MODE_KNIGHT,
|
||||
RGB_MODE_XMAS,
|
||||
RGB_MODE_GRADIENT,
|
||||
|
||||
// Left shift, open paren
|
||||
KC_LSPO,
|
||||
@@ -534,6 +542,14 @@ enum quantum_keycodes {
|
||||
|
||||
#define KC_GESC GRAVE_ESC
|
||||
|
||||
#define RGB_M_P RGB_MODE_PLAIN
|
||||
#define RGB_M_B RGB_MODE_BREATHE
|
||||
#define RGB_M_R RGB_MODE_RAINBOW
|
||||
#define RGB_M_SW RGB_MODE_SWIRL
|
||||
#define RGB_M_SN RGB_MODE_SNAKE
|
||||
#define RGB_M_K RGB_MODE_KNIGHT
|
||||
#define RGB_M_X RGB_MODE_XMAS
|
||||
#define RGB_M_G RGB_MODE_GRADIENT
|
||||
|
||||
// L-ayer, T-ap - 256 keycode max, 16 layer max
|
||||
#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8))
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "debug.h"
|
||||
#include "led_tables.h"
|
||||
|
||||
|
||||
__attribute__ ((weak))
|
||||
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
|
||||
__attribute__ ((weak))
|
||||
@@ -32,7 +31,7 @@ const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
__attribute__ ((weak))
|
||||
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
__attribute__ ((weak))
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
|
||||
__attribute__ ((weak))
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
|
||||
@@ -197,6 +196,14 @@ void rgblight_step_reverse(void) {
|
||||
rgblight_mode(mode);
|
||||
}
|
||||
|
||||
uint32_t rgblight_get_mode(void) {
|
||||
if (!rgblight_config.enable) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return rgblight_config.mode;
|
||||
}
|
||||
|
||||
void rgblight_mode(uint8_t mode) {
|
||||
if (!rgblight_config.enable) {
|
||||
return;
|
||||
@@ -220,6 +227,8 @@ void rgblight_mode(uint8_t mode) {
|
||||
// MODE 9-14, rainbow swirl
|
||||
// MODE 15-20, snake
|
||||
// MODE 21-23, knight
|
||||
// MODE 24, xmas
|
||||
// MODE 25-34, static rainbow
|
||||
|
||||
#ifdef RGBLIGHT_ANIMATIONS
|
||||
rgblight_timer_enable();
|
||||
@@ -539,56 +548,44 @@ void rgblight_effect_snake(uint8_t interval) {
|
||||
}
|
||||
}
|
||||
void rgblight_effect_knight(uint8_t interval) {
|
||||
static int8_t pos = 0;
|
||||
static uint16_t last_timer = 0;
|
||||
uint8_t i, j, cur;
|
||||
int8_t k;
|
||||
LED_TYPE preled[RGBLED_NUM];
|
||||
static int8_t increment = -1;
|
||||
if (timer_elapsed(last_timer) < pgm_read_byte(&RGBLED_KNIGHT_INTERVALS[interval])) {
|
||||
return;
|
||||
}
|
||||
last_timer = timer_read();
|
||||
|
||||
static int8_t low_bound = 0;
|
||||
static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
|
||||
static int8_t increment = 1;
|
||||
uint8_t i, cur;
|
||||
|
||||
// Set all the LEDs to 0
|
||||
for (i = 0; i < RGBLED_NUM; i++) {
|
||||
preled[i].r = 0;
|
||||
preled[i].g = 0;
|
||||
preled[i].b = 0;
|
||||
for (j = 0; j < RGBLIGHT_EFFECT_KNIGHT_LENGTH; j++) {
|
||||
k = pos + j * increment;
|
||||
if (k < 0) {
|
||||
k = 0;
|
||||
}
|
||||
if (k >= RGBLED_NUM) {
|
||||
k = RGBLED_NUM - 1;
|
||||
}
|
||||
if (i == k) {
|
||||
sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&preled[i]);
|
||||
}
|
||||
}
|
||||
led[i].r = 0;
|
||||
led[i].g = 0;
|
||||
led[i].b = 0;
|
||||
}
|
||||
if (RGBLIGHT_EFFECT_KNIGHT_OFFSET) {
|
||||
for (i = 0; i < RGBLED_NUM; i++) {
|
||||
cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % RGBLED_NUM;
|
||||
led[i].r = preled[cur].r;
|
||||
led[i].g = preled[cur].g;
|
||||
led[i].b = preled[cur].b;
|
||||
// Determine which LEDs should be lit up
|
||||
for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) {
|
||||
cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % RGBLED_NUM;
|
||||
|
||||
if (i >= low_bound && i <= high_bound) {
|
||||
sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]);
|
||||
} else {
|
||||
led[cur].r = 0;
|
||||
led[cur].g = 0;
|
||||
led[cur].b = 0;
|
||||
}
|
||||
}
|
||||
rgblight_set();
|
||||
if (increment == 1) {
|
||||
if (pos - 1 < 0 - RGBLIGHT_EFFECT_KNIGHT_LENGTH) {
|
||||
pos = 0 - RGBLIGHT_EFFECT_KNIGHT_LENGTH;
|
||||
increment = -1;
|
||||
} else {
|
||||
pos -= 1;
|
||||
}
|
||||
} else {
|
||||
if (pos + 1 > RGBLED_NUM + RGBLIGHT_EFFECT_KNIGHT_LENGTH) {
|
||||
pos = RGBLED_NUM + RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
|
||||
increment = 1;
|
||||
} else {
|
||||
pos += 1;
|
||||
}
|
||||
|
||||
// Move from low_bound to high_bound changing the direction we increment each
|
||||
// time a boundary is hit.
|
||||
low_bound += increment;
|
||||
high_bound += increment;
|
||||
|
||||
if (high_bound <= 0 || low_bound >= RGBLIGHT_EFFECT_KNIGHT_LED_NUM - 1) {
|
||||
increment = -increment;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,18 +23,19 @@
|
||||
#endif
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH
|
||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7
|
||||
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 4
|
||||
#endif
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7
|
||||
#endif
|
||||
#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
|
||||
#endif
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH
|
||||
#define RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH 4
|
||||
#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 0
|
||||
#endif
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_KNIGHT_LED_NUM
|
||||
#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM RGBLED_NUM
|
||||
#endif
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL
|
||||
@@ -89,6 +90,7 @@ void rgblight_toggle(void);
|
||||
void rgblight_enable(void);
|
||||
void rgblight_step(void);
|
||||
void rgblight_step_reverse(void);
|
||||
uint32_t rgblight_get_mode(void);
|
||||
void rgblight_mode(uint8_t mode);
|
||||
void rgblight_set(void);
|
||||
void rgblight_update_dword(uint32_t dword);
|
||||
|
||||
@@ -133,10 +133,19 @@ typedef struct
|
||||
/* index of interface */
|
||||
#define KEYBOARD_INTERFACE 0
|
||||
|
||||
#ifdef MOUSE_ENABLE
|
||||
# define MOUSE_INTERFACE (KEYBOARD_INTERFACE + 1)
|
||||
// It is important that the Raw HID interface is at a constant
|
||||
// interface number, to support Linux/OSX platforms and chrome.hid
|
||||
// If Raw HID is enabled, let it be always 1.
|
||||
#ifdef RAW_ENABLE
|
||||
# define RAW_INTERFACE (KEYBOARD_INTERFACE + 1)
|
||||
#else
|
||||
# define MOUSE_INTERFACE KEYBOARD_INTERFACE
|
||||
# define RAW_INTERFACE KEYBOARD_INTERFACE
|
||||
#endif
|
||||
|
||||
#ifdef MOUSE_ENABLE
|
||||
# define MOUSE_INTERFACE (RAW_INTERFACE + 1)
|
||||
#else
|
||||
# define MOUSE_INTERFACE RAW_INTERFACE
|
||||
#endif
|
||||
|
||||
#ifdef EXTRAKEY_ENABLE
|
||||
@@ -145,16 +154,10 @@ typedef struct
|
||||
# define EXTRAKEY_INTERFACE MOUSE_INTERFACE
|
||||
#endif
|
||||
|
||||
#ifdef RAW_ENABLE
|
||||
# define RAW_INTERFACE (EXTRAKEY_INTERFACE + 1)
|
||||
#else
|
||||
# define RAW_INTERFACE EXTRAKEY_INTERFACE
|
||||
#endif
|
||||
|
||||
#ifdef CONSOLE_ENABLE
|
||||
# define CONSOLE_INTERFACE (RAW_INTERFACE + 1)
|
||||
# define CONSOLE_INTERFACE (EXTRAKEY_INTERFACE + 1)
|
||||
#else
|
||||
# define CONSOLE_INTERFACE RAW_INTERFACE
|
||||
# define CONSOLE_INTERFACE EXTRAKEY_INTERFACE
|
||||
#endif
|
||||
|
||||
#ifdef NKRO_ENABLE
|
||||
|
||||
Reference in New Issue
Block a user