forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keymap] VIA keymap for the Sofle (qmk#10446)
* Added via support * Now uses LTO_ENABLE * Deactivated console to save space * Update keyboards/sofle/keymaps/via/readme.md * Added GPL license * Update keyboards/sofle/keymaps/via/keymap.c * Update keyboards/sofle/keymaps/via/keymap.c * Update keyboards/sofle/keymaps/via/keymap.c * Update keyboards/sofle/keymaps/via/keymap.c
- Loading branch information
Showing
6 changed files
with
285 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
/* Copyright 2020 Josef Adamcik | ||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang | ||
* | ||
* 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/>. | ||
*/ | ||
|
||
#pragma once | ||
|
||
/* The way how "handedness" is decided (which half is which), | ||
see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness | ||
for more options. | ||
*/ | ||
|
||
//Add RGB underglow | ||
#define RGB_DI_PIN D3 | ||
#define RGBLED_NUM 14 | ||
#define RGBLED_SPLIT {7,7} | ||
#define RGBLIGHT_ANIMATIONS |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
/* Copyright 2020 Josef Adamcik | ||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang | ||
* | ||
* 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/>. | ||
*/ | ||
|
||
//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via. | ||
|
||
#ifdef ENCODER_ENABLE | ||
|
||
void encoder_update_user(uint8_t index, bool clockwise) { | ||
if (index == 0) { | ||
if (clockwise) { | ||
tap_code(KC_VOLU); | ||
} else { | ||
tap_code(KC_VOLD); | ||
} | ||
} else if (index == 1) { | ||
if (clockwise) { | ||
tap_code(KC_PGDOWN); | ||
} else { | ||
tap_code(KC_PGUP); | ||
} | ||
} | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
/* Copyright 2020 Josef Adamcik | ||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang | ||
* | ||
* 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/>. | ||
*/ | ||
|
||
#include QMK_KEYBOARD_H | ||
#include "oled.c" | ||
#include "encoder.c" | ||
|
||
//Default keymap. This can be changed in Via. Use oled.c and encoder.c to change beavior that Via cannot change. | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
/* | ||
* QWERTY | ||
* ,-----------------------------------------. ,-----------------------------------------. | ||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | | ||
* |------+------+------+------+------+------| | | |------+------+------+------+------+------| | ||
* |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| | ||
* `-----------------------------------------/ / \ \-----------------------------------------' | ||
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | | ||
* | | | | |/ / \ \ | | | | | | ||
* `----------------------------------' '------''---------------------------' | ||
*/ | ||
|
||
[0] = LAYOUT( | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, | ||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | ||
KC_LGUI,KC_LALT,KC_LCTRL, MO(2), KC_ENT, KC_SPC, MO(3), KC_RCTRL, KC_RALT, KC_RGUI | ||
), | ||
/* | ||
* COLEMAK | ||
* ,-----------------------------------------. ,-----------------------------------------. | ||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | ESC | Q | W | F | P | G | | J | L | U | Y | ; | Bspc | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | TAB | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' | | ||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| | ||
* |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / |RShift| | ||
* `-----------------------------------------/ / \ \-----------------------------------------' | ||
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | | ||
* | | | | |/ / \ \ | | | | | | ||
* `----------------------------------' '------''---------------------------' | ||
*/ | ||
|
||
[1] = LAYOUT( | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV, | ||
KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, | ||
KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, | ||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, XXXXXXX,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | ||
KC_LGUI,KC_LALT,KC_LCTRL,KC_TRNS, KC_ENT, KC_SPC, KC_TRNS, KC_RCTRL, KC_RALT, KC_RGUI | ||
), | ||
/* LOWER | ||
* ,-----------------------------------------. ,-----------------------------------------. | ||
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | Tab | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | | | ||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| | ||
* | Shift| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift| | ||
* `-----------------------------------------/ / \ \-----------------------------------------' | ||
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | | ||
* | | | | |/ / \ \ | | | | | | ||
* `----------------------------------' '------''---------------------------' | ||
*/ | ||
[2] = LAYOUT( | ||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | ||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, | ||
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE, | ||
_______, KC_EQL, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______, | ||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
), | ||
/* RAISE | ||
* ,----------------------------------------. ,-----------------------------------------. | ||
* | | | | | | | | | | | | | | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc | | ||
* |------+------+------+------+------+------| |------+------+------+------+------+------| | ||
* | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc | | ||
* |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------| | ||
* |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift| | ||
* `-----------------------------------------/ / \ \-----------------------------------------' | ||
* | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | | ||
* | | | | |/ / \ \ | | | | | | ||
* `----------------------------------' '------''---------------------------' | ||
*/ | ||
[3] = LAYOUT( | ||
_______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______, | ||
_______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_PGUP, _______, KC_UP, _______,_______, KC_BSPC, | ||
_______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, | ||
_______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______, | ||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
) | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
/* Copyright 2020 Josef Adamcik | ||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang | ||
* | ||
* 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/>. | ||
*/ | ||
|
||
//Sets up what the OLED screens display. | ||
|
||
#ifdef OLED_DRIVER_ENABLE | ||
|
||
static void render_logo(void) { | ||
static const char PROGMEM qmk_logo[] = { | ||
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, | ||
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, | ||
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 | ||
}; | ||
|
||
oled_write_P(qmk_logo, false); | ||
} | ||
|
||
static void print_status_narrow(void) { | ||
// Print current mode | ||
oled_write_P(PSTR("\n\n"), false); | ||
|
||
switch (get_highest_layer(layer_state)) { | ||
case 0: | ||
oled_write_ln_P(PSTR("Qwrt"), false); | ||
break; | ||
case 1: | ||
oled_write_ln_P(PSTR("Clmk"), false); | ||
break; | ||
default: | ||
oled_write_P(PSTR("Mod\n"), false); | ||
break; | ||
} | ||
oled_write_P(PSTR("\n\n"), false); | ||
// Print current layer | ||
oled_write_ln_P(PSTR("LAYER"), false); | ||
switch (get_highest_layer(layer_state)) { | ||
case 0: | ||
case 1: | ||
oled_write_P(PSTR("Base\n"), false); | ||
break; | ||
case 2: | ||
oled_write_P(PSTR("Raise"), false); | ||
break; | ||
case 3: | ||
oled_write_P(PSTR("Lower"), false); | ||
break; | ||
default: | ||
oled_write_ln_P(PSTR("Undef"), false); | ||
} | ||
oled_write_P(PSTR("\n\n"), false); | ||
led_t led_usb_state = host_keyboard_led_state(); | ||
oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); | ||
} | ||
|
||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
if (is_keyboard_master()) { | ||
return OLED_ROTATION_270; | ||
} | ||
return rotation; | ||
} | ||
|
||
void oled_task_user(void) { | ||
if (is_keyboard_master()) { | ||
print_status_narrow(); | ||
} else { | ||
render_logo(); | ||
} | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# VIA keymap for Sofle | ||
|
||
Layout in [Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/76efb423a46cbbea75465cb468eef7ff) and [adjust layer](http://www.keyboard-layout-editor.com/#/gists/4bcf66f922cfd54da20ba04905d56bd4) | ||
|
||
|
||
Features: | ||
|
||
- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift) | ||
- Modes for Qwerty and Colemak support | ||
- The OLED on master half shows selected mode and caps lock state and is rotated. | ||
- Left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. | ||
- Via support | ||
- RGB underglow support | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
OLED_DRIVER_ENABLE = yes | ||
ENCODER_ENABLE = yes | ||
CONSOLE_ENABLE = no | ||
EXTRAKEY_ENABLE = yes | ||
VIA_ENABLE = yes | ||
LTO_ENABLE = yes | ||
RGBLIGHT_ENABLE = yes |