forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request qmk#50 from kirbysayshi/ksh/sofle-vial
add vial support for Sofle and its encoders
- Loading branch information
Showing
6 changed files
with
663 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,30 @@ | ||
/* Copyright 2020 Josef Adamcik | ||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang | ||
* Modification for Vial support by Drew Petersen | ||
* | ||
* 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/>. | ||
*/ | ||
|
||
// clang-format off | ||
|
||
#pragma once | ||
|
||
// Vial Support | ||
#define VIAL_KEYBOARD_UID { 0x05, 0xCD, 0x9F, 0x8A, 0xF4, 0xDF, 0xDE, 0xB2 } | ||
|
||
// The four corners | ||
#define VIAL_UNLOCK_COMBO_ROWS { 0, 5, 3, 8 } | ||
#define VIAL_UNLOCK_COMBO_COLS { 0, 0, 0, 0 } | ||
|
||
#define ENCODER_RESOLUTIONS { 4, 2 } |
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,115 @@ | ||
/* Copyright 2020 Josef Adamcik | ||
* Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang | ||
* Modification for Vial support by Drew Petersen | ||
* | ||
* 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/>. | ||
*/ | ||
|
||
// clang-format off | ||
|
||
#include QMK_KEYBOARD_H | ||
#include "oled.c" | ||
|
||
// Default keymap. This can be changed in Vial. Use oled.c to change beavior that Vial 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 @@ | ||
# Vial keymap for Sofle (based on VIA) | ||
|
||
Keyboard Layout: http://www.keyboard-layout-editor.com/#/gists/5e0381b049c62dce942eafc3e2d26f52 (used to generate vial.json and place encoders) | ||
|
||
Default keymap 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) | ||
- The OLED on master half shows selected mode and caps lock state and is rotated. | ||
- Vial support | ||
- Left & Right encoders can be configured! | ||
- Security Unlock/Lock Support: hold four corner keys | ||
- no RGB support due to firmware size |
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,11 @@ | ||
OLED_DRIVER_ENABLE = yes | ||
ENCODER_ENABLE = yes | ||
CONSOLE_ENABLE = no | ||
EXTRAKEY_ENABLE = yes | ||
VIA_ENABLE = yes | ||
VIAL_ENABLE = yes | ||
VIAL_ENCODERS_ENABLE = yes | ||
LTO_ENABLE = yes | ||
RGBLIGHT_ENABLE = no | ||
QMK_SETTINGS = no | ||
MOUSEKEY_ENABLE = yes |
Oops, something went wrong.