mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-08 22:05:05 +00:00
Compare commits
53 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3a0f3a5bd0 | ||
![]() |
da1afe152a | ||
![]() |
fe982caf5d | ||
![]() |
5d47231f2a | ||
![]() |
d5a06aec83 | ||
![]() |
dbc7761688 | ||
![]() |
0db6bb10e0 | ||
![]() |
1fd4546fff | ||
![]() |
064d9e2175 | ||
![]() |
a90331aec2 | ||
![]() |
0b0c98929b | ||
![]() |
75a51659ab | ||
![]() |
5803012eda | ||
![]() |
8c033497c6 | ||
![]() |
d7f1e072a8 | ||
![]() |
b10aad45b6 | ||
![]() |
81ce35c10a | ||
![]() |
fbf59ba2e5 | ||
![]() |
87e6d01374 | ||
![]() |
fff6f22cf6 | ||
![]() |
8b85ec2a98 | ||
![]() |
3b42cff516 | ||
![]() |
6d2730eeff | ||
![]() |
a495326aed | ||
![]() |
a152ad3145 | ||
![]() |
1904319745 | ||
![]() |
55c3214877 | ||
![]() |
dd7534ccca | ||
![]() |
e4dfcf896e | ||
![]() |
6983c71efd | ||
![]() |
929e6a3231 | ||
![]() |
82c02d9b8d | ||
![]() |
d79b5e67b6 | ||
![]() |
90f9fb4eee | ||
![]() |
77ed9e3a73 | ||
![]() |
faef966a4d | ||
![]() |
a054b5a06c | ||
![]() |
952a30ef34 | ||
![]() |
bada74e2a1 | ||
![]() |
ecd21b44a8 | ||
![]() |
edb6c98fd2 | ||
![]() |
b7b20cd9df | ||
![]() |
b91dfa04e3 | ||
![]() |
fe68599a34 | ||
![]() |
4ebd27002a | ||
![]() |
f3ffd6ad50 | ||
![]() |
0031e46191 | ||
![]() |
97ab3211e2 | ||
![]() |
8bc19c8dcf | ||
![]() |
6266c172b9 | ||
![]() |
ccd4da941c | ||
![]() |
834b555eca | ||
![]() |
d7ab738ca6 |
4
docs/LANGS.md
Normal file
4
docs/LANGS.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Languages
|
||||
|
||||
* [English](/)
|
||||
* [Chinese](zh/)
|
@@ -11,8 +11,8 @@ Keycodes are actually defined in [common/keycode.h](https://github.com/qmk/qmk_f
|
||||
|
||||
There are 3 standard keyboard layouts in use around the world- ANSI, ISO, and JIS. North America primarily uses ANSI, Europe and Africa primarily use ISO, and Japan uses JIS. Regions not mentioned typically use either ANSI or ISO. The keycodes corresponding to these layouts are shown here:
|
||||
|
||||
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/070a530eedaed36a2d77f3f6fd455677 -->
|
||||

|
||||
<!-- Source for this image: http://www.keyboard-layout-editor.com/#/gists/bf431647d1001cff5eff20ae55621e9a -->
|
||||

|
||||
|
||||
## Some Of My Keys Are Swapped Or Not Working
|
||||
|
||||
@@ -211,20 +211,3 @@ here real_mods lost state for 'physical left shift'.
|
||||
|
||||
weak_mods is ORed with real_mods when keyboard report is sent.
|
||||
https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57
|
||||
|
||||
## Timer Functionality
|
||||
|
||||
It's possible to start timers and read values for time-specific events - here's an example:
|
||||
|
||||
```c
|
||||
static uint16_t key_timer;
|
||||
key_timer = timer_read();
|
||||
|
||||
if (timer_elapsed(key_timer) < 100) {
|
||||
// do something if less than 100ms have passed
|
||||
} else {
|
||||
// do something if 100ms or more have passed
|
||||
}
|
||||
```
|
||||
|
||||
It's best to declare the `static uint16_t key_timer;` at the top of the file, outside of any code blocks you're using it in.
|
||||
|
@@ -65,6 +65,13 @@ The available keycodes for audio are:
|
||||
* `AU_OFF` - Turn audio mode off
|
||||
* `AU_TOG` - Toggle audio mode
|
||||
|
||||
## ARM Audio Volume
|
||||
|
||||
For ARM devices, you can adjust the DAC sample values. If your board is too loud for you or your coworkers, you can set the max using `DAC_SAMPLE_MAX` in your `config.h`:
|
||||
|
||||
```c
|
||||
#define DAC_SAMPLE_MAX 65535U
|
||||
```
|
||||
|
||||
## Music Mode
|
||||
|
||||
|
@@ -63,8 +63,6 @@ Changing the **Value** sets the overall brightness.
|
||||
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|
||||
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |
|
||||
|
||||
?> For backwards compatibility, `RGB_SMOD` is another alias of `RGB_MOD`.
|
||||
|
||||
## Configuration
|
||||
|
||||
Your RGB lighting can be configured by placing these `#define`s in your `config.h`:
|
||||
|
@@ -30,7 +30,7 @@ Make sure that the order for both matches.
|
||||
|
||||
## UCIS_ENABLE
|
||||
|
||||
Supports Unicode up to 0xFFFFFFFF. As with `UNICODE_MAP`, you may want to main a mapping table in your keymap file. However, there is no keycodes for this feature, you will have to add a keycode or function to call `qk_ucis_start()`. Once you've run that, you can just type the text for your unicode, and then hit space or enter to complete it, or ESC to cancel it. And if it matches an entry in your table, it will automatically "backspace" the trigger word (from your table) and then will input the unicode sequence.
|
||||
Supports Unicode up to 0xFFFFFFFF. As with `UNICODE_MAP`, you may want to maintain a mapping table in your keymap file. However, there is no keycodes for this feature, you will have to add a keycode or function to call `qk_ucis_start()`. Once you've run that, you can just type the text for your unicode, and then hit space or enter to complete it, or ESC to cancel it. And if it matches an entry in your table, it will automatically "backspace" the trigger word (from your table) and then will input the unicode sequence.
|
||||
|
||||
For instance, you would need to have a table like this in your keymap:
|
||||
|
||||
|
@@ -25,7 +25,8 @@
|
||||
placeholder: 'Search Documentation...',
|
||||
noData: 'We could not find any documents matching your search.',
|
||||
depth: 6
|
||||
}
|
||||
},
|
||||
fallbackLanguages: ['zh']
|
||||
}
|
||||
</script>
|
||||
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
||||
|
@@ -209,6 +209,8 @@ KC_WWW_FORWARD KC_WFWD
|
||||
KC_WWW_STOP KC_WSTP
|
||||
KC_WWW_REFRESH KC_WREF
|
||||
KC_WWW_FAVORITES KC_WFAV
|
||||
KC_BRIGHTNESS_UP KC_BRIU
|
||||
KC_BRIGHTNESS_DOWN KC_BRID
|
||||
/* Mousekey */
|
||||
KC_MS_UP KC_MS_U Mouse Cursor Up
|
||||
KC_MS_DOWN KC_MS_D Mouse Cursor Down
|
||||
|
@@ -203,6 +203,8 @@ This is a reference only. Each group of keys links to the page documenting their
|
||||
|`KC_WWW_FAVORITES` |`KC_WFAV` |Browser Favorites (Windows) |
|
||||
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD` |Next Track (macOS) |
|
||||
|`KC_MEDIA_REWIND` |`KC_MRWD` |Previous Track (macOS) |
|
||||
|`KC_BRIGHTNESS_UP` |`KC_BRIU` |Brightness Up |
|
||||
|`KC_BRIGHTNESS_DOWN` |`KC_BRID` |Brightness Down |
|
||||
|
||||
## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
|
||||
|
||||
|
@@ -219,6 +219,8 @@ Windows and macOS use different keycodes for "next track" and "previous track".
|
||||
|`KC_WWW_FAVORITES` |`KC_WFAV`|Browser Favorites (Windows) |
|
||||
|`KC_MEDIA_FAST_FORWARD`|`KC_MFFD`|Next Track (macOS) |
|
||||
|`KC_MEDIA_REWIND` |`KC_MRWD`|Previous Track (macOS) |
|
||||
|`KC_BRIGHTNESS_UP` |`KC_BRIU`|Brightness Up |
|
||||
|`KC_BRIGHTNESS_DOWN` |`KC_BRID`|Brightness Down |
|
||||
|
||||
## Number Pad
|
||||
|
||||
|
@@ -28,6 +28,6 @@ Sometimes it's useful to print debug messages from within your [custom code](cus
|
||||
After that you can use a few different print functions:
|
||||
|
||||
* `print("string")`: Print a simple string.
|
||||
* `sprintf("%s string", var)`: Print a formatted string
|
||||
* `uprintf("%s string", var)`: Print a formatted string
|
||||
* `dprint("string")` Print a simple string, but only when debug mode is enabled
|
||||
* `dprintf("%s string", var)`: Print a formatted string, but only when debug mode is enabled
|
||||
|
@@ -96,3 +96,24 @@ And to do so, add `reset_keyboard()` to your function or macro, and this will re
|
||||
If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). Bootmagic is one way to do this, but if that isn't enabled, then you can use a custom macro to do so.
|
||||
|
||||
To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default.
|
||||
|
||||
## Tap random key
|
||||
|
||||
If you want to send a random character to the host computer, you can use the `tap_random_base64()` function. This [pseudorandomly](https://en.wikipedia.org/wiki/Pseudorandom_number_generator) selects a number between 0 and 63, and then sends a key press based on that selection. (0–25 is `A`–`Z`, 26–51 is `a`–`z`, 52–61 is `0`–`9`, 62 is `+` and 63 is `/`).
|
||||
|
||||
?> Needless to say, but this is _not_ a cryptographically secure method of generating random Base64 keys or passwords.
|
||||
|
||||
## Software Timers
|
||||
|
||||
It's possible to start timers and read values for time-specific events. Here's an example:
|
||||
|
||||
```c
|
||||
static uint16_t key_timer;
|
||||
key_timer = timer_read();
|
||||
|
||||
if (timer_elapsed(key_timer) < 100) {
|
||||
// do something if less than 100ms have passed
|
||||
} else {
|
||||
// do something if 100ms or more have passed
|
||||
}
|
||||
```
|
||||
|
32
docs/zh/README.md
Normal file
32
docs/zh/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# QMK鍵盤固件
|
||||
|
||||
[](https://github.com/qmk/qmk_firmware/tags)
|
||||
[](https://travis-ci.org/qmk/qmk_firmware)
|
||||
[](https://discord.gg/Uq7gcHh)
|
||||
[](https://docs.qmk.fm)
|
||||
[](https://github.com/qmk/qmk_firmware/pulse/monthly)
|
||||
[](https://github.com/qmk/qmk_firmware/)
|
||||
|
||||
## 什麼是QMK固件?
|
||||
|
||||
QMK是一個由社群維護的開源鍵盤韌體,其中包含了QMK Toolbox、qmk.fm和其它文件。QMK韌體是以[tmk\_keyboard](http://github.com/tmk/tmk_keyboard)為基礎,讓一些有用的功能在Atmel AVR控制器實現,使用於[OLKB](https://olkb.com)、[ergodox EZ](http://www.ergodox-ez.com),和[Clueboard](http://clueboard.co/)的產品中。它也被移植到使用ChibiOS的ARM晶片上。你也可以用它來讓你徒手佈線,或是客製的鍵盤PCB發揮功能。
|
||||
|
||||
## 如何得到QMK
|
||||
|
||||
如果你打算貢獻鍵盤佈局,鍵盤或功能QMK,最容易做的事情是[叉通過Github上爬行](https://github.com/qmk/qmk_firmware#fork-destination-box),和克隆你爬在本地進行更改,推動他們,然後打開從你的叉子[拉請求](https://github.com/qmk/qmk_firmware/pulls)。
|
||||
|
||||
否則,您可以直接下載([拉鍊](https://github.com/qmk/qmk_firmware/zipball/master) [焦油](https://github.com/qmk/qmk_firmware/tarball/master)),或者通過GIT中克隆它(`git@github.com:qmk/qmk_firmware.git`)或HTTP(`https://github.com/qmk/qmk_firmware.git`)。
|
||||
|
||||
## 如何編譯
|
||||
|
||||
你可以編譯之前,你需要[安裝環境](getting_started_build_tools.md)用於AVR或/和ARM開發。一旦完成,你會使用`make`命令建立一個鍵盤並用以下符號鍵盤佈局
|
||||
|
||||
make planck/rev4:default
|
||||
|
||||
這將建立`rev4` `planck`的修訂與`default`鍵盤映射。並非所有鍵盤有一個修訂版(也稱為子項目或文件夾),在這種情況下,它可以被省略:
|
||||
|
||||
make preonic:default
|
||||
|
||||
## 如何赶近
|
||||
|
||||
QMK有很多[特點](features.md)探索和很好的協議[參考文獻](http://docs.qmk.fm)挖通的。大部分功能通過修改[鍵盤映射(keymap.md),並改變[鍵碼](keycodes.md)冤大頭。
|
99
docs/zh/_sidebar.md
Normal file
99
docs/zh/_sidebar.md
Normal file
@@ -0,0 +1,99 @@
|
||||
* [完全指南菜鳥](zh/newbs.md)
|
||||
* [入門](zh/newbs_getting_started.md)
|
||||
* [構建第一個固件](zh/newbs_building_firmware.md)
|
||||
* [刷新固件](zh/newbs_flashing.md)
|
||||
* [測試和調試](zh/newbs_testing_debugging.md)
|
||||
* [最佳實踐](zh/newbs_best_practices.md)
|
||||
* [學習資源](zh/newbs_learn_more_resources.md)
|
||||
|
||||
* [QMK基礎](zh/README.md)
|
||||
* [QMK簡介](zh/getting_started_introduction.md)
|
||||
* [特約QMK](zh/contributing.md)
|
||||
* [如何使用Github上](zh/getting_started_github.md)
|
||||
* [獲得幫助](zh/getting_started_getting_help.md)
|
||||
|
||||
* [常問問題](zh/faq.md)
|
||||
* [常問問題](zh/faq_general.md)
|
||||
* [構建/編譯QMK](zh/faq_build.md)
|
||||
* [調試/故障排除QMK](zh/faq_debug.md)
|
||||
* [鍵盤佈局](zh/faq_keymap.md)
|
||||
|
||||
* 詳細指南
|
||||
* [安裝編譯工具](zh/getting_started_build_tools.md)
|
||||
* [流浪漢指南](zh/getting_started_vagrant.md)
|
||||
* [構建/編譯器指令](zh/getting_started_make_guide.md)
|
||||
* [刷新固件](zh/flashing.md)
|
||||
* [定制功能](zh/custom_quantum_functions.md)
|
||||
* [鍵盤映射概述](zh/keymap.md)
|
||||
|
||||
* [硬件](zh/hardware.md)
|
||||
* [AVR處理器](zh/hardware_avr.md)
|
||||
* [司機](zh/hardware_drivers.md)
|
||||
|
||||
* 參考
|
||||
* [Keyboard Guidelines](zh/hardware_keyboard_guidelines.md)
|
||||
* [Config Options](zh/config_options.md)
|
||||
* [Keycodes](zh/keycodes.md)
|
||||
* [Documentation Best Practices](zh/documentation_best_practices.md)
|
||||
* [Documentation Templates](zh/documentation_templates.md)
|
||||
* [Glossary](zh/reference_glossary.md)
|
||||
* [Unit Testing](zh/unit_testing.md)
|
||||
* [Useful Functions](zh/ref_functions.md)
|
||||
* [Configurator Support](zh/reference_configurator_support.md)
|
||||
|
||||
* [特點](zh/features.md)
|
||||
* [Basic Keycodes](zh/keycodes_basic.md)
|
||||
* [Quantum Keycodes](zh/quantum_keycodes.md)
|
||||
* [Advanced Keycodes](zh/feature_advanced_keycodes.md)
|
||||
* [Audio](zh/feature_audio.md)
|
||||
* [Auto Shift](zh/feature_auto_shift.md)
|
||||
* [Backlight](zh/feature_backlight.md)
|
||||
* [Bluetooth](zh/feature_bluetooth.md)
|
||||
* [Bootmagic](zh/feature_bootmagic.md)
|
||||
* [Combos](zh/feature_combo)
|
||||
* [Command](zh/feature_command.md)
|
||||
* [Dynamic Macros](zh/feature_dynamic_macros.md)
|
||||
* [Encoders](zh/feature_encoders.md)
|
||||
* [Grave Escape](zh/feature_grave_esc.md)
|
||||
* [Key Lock](zh/feature_key_lock.md)
|
||||
* [Layouts](zh/feature_layouts.md)
|
||||
* [Leader Key](zh/feature_leader_key.md)
|
||||
* [Macros](zh/feature_macros.md)
|
||||
* [Mouse Keys](zh/feature_mouse_keys.md)
|
||||
* [One Shot Keys](zh/feature_advanced_keycodes.md#one-shot-keys)
|
||||
* [Pointing Device](zh/feature_pointing_device.md)
|
||||
* [PS/2 Mouse](zh/feature_ps2_mouse.md)
|
||||
* [RGB Lighting](zh/feature_rgblight.md)
|
||||
* [RGB Matrix](zh/feature_rgb_matrix.md)
|
||||
* [Space Cadet Shift](zh/feature_space_cadet_shift.md)
|
||||
* [Space Cadet Shift Enter](zh/feature_space_cadet_shift_enter.md)
|
||||
* [Stenography](zh/feature_stenography.md)
|
||||
* [Swap Hands](zh/feature_swap_hands.md)
|
||||
* [Tap Dance](zh/feature_tap_dance.md)
|
||||
* [Terminal](zh/feature_terminal.md)
|
||||
* [Thermal Printer](zh/feature_thermal_printer.md)
|
||||
* [Unicode](zh/feature_unicode.md)
|
||||
* [Userspace](zh/feature_userspace.md)
|
||||
* [US ANSI Shifted Keys](zh/keycodes_us_ansi_shifted.md)
|
||||
|
||||
* 對於製造商和遊戲模組
|
||||
* [Hand Wiring Guide](zh/hand_wire.md)
|
||||
* [ISP Flashing Guide](zh/isp_flashing_guide.md)
|
||||
* [ARM Debugging Guide](zh/arm_debugging.md)
|
||||
* [I2C Driver](zh/i2c_driver.md)
|
||||
|
||||
* 為了更深入的了解
|
||||
* [How Keyboards Work](zh/how_keyboards_work.md)
|
||||
* [Understanding QMK](zh/understanding_qmk.md)
|
||||
|
||||
* 其它主題
|
||||
* [Using Eclipse with QMK](zh/eclipse.md)
|
||||
|
||||
* QMK內部(進行中)
|
||||
* [Defines](zh/internals_defines.md)
|
||||
* [Input Callback Reg](zh/internals_input_callback_reg.md)
|
||||
* [Midi Device](zh/internals_midi_device.md)
|
||||
* [Midi Device Setup Process](zh/internals_midi_device_setup_process.md)
|
||||
* [Midi Util](zh/internals_midi_util.md)
|
||||
* [Send Functions](zh/internals_send_functions.md)
|
||||
* [Sysex Tools](zh/internals_sysex_tools.md)
|
@@ -56,3 +56,16 @@
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, K2f }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e, K3f } \
|
||||
}
|
||||
|
||||
#define LAYOUT_kc_ortho_4x12( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \
|
||||
) \
|
||||
{ \
|
||||
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0a, KC_##K0b, ___, ___, ___, ___}, \
|
||||
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1a, KC_##K1b, ___, ___, ___, ___}, \
|
||||
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2a, KC_##K2b, ___, ___, ___, ___}, \
|
||||
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3a, KC_##K3b, ___, ___, ___, ___} \
|
||||
}
|
||||
|
@@ -76,5 +76,4 @@ AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||
|
||||
#FIXME: Community keymap build are currently failing due to missing functionality
|
||||
#LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16
|
||||
LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16
|
||||
|
@@ -77,5 +77,4 @@ AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||
|
||||
#FIXME: Community keymap build are currently failing due to missing functionality
|
||||
#LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15
|
||||
LAYOUTS = ortho_5x5 ortho_5x10 ortho_5x15
|
||||
|
@@ -17,3 +17,5 @@
|
||||
#pragma once
|
||||
|
||||
// place overrides here
|
||||
|
||||
#define PERMISSIVE_HOLD
|
||||
|
@@ -15,19 +15,62 @@
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define FN1_Q LT(1, KC_Q)
|
||||
enum foobar_layers {
|
||||
QWERTY,
|
||||
FN1,
|
||||
FN2,
|
||||
FN3,
|
||||
FN4,
|
||||
FN5
|
||||
};
|
||||
|
||||
#define FN1_SPC LT(FN1, KC_SPC)
|
||||
#define FN2_BSC LT(FN2, KC_BSPC)
|
||||
#define FN3_C LT(FN3, KC_C)
|
||||
#define FN4_V LT(FN4, KC_V)
|
||||
#define FN5_B LT(FN5, KC_B)
|
||||
#define RALT_N RALT_T(KC_N)
|
||||
#define LALT_X LALT_T(KC_X)
|
||||
#define LCTL_Z LCTL_T(KC_Z)
|
||||
#define RCTL_M RCTL_T(KC_M)
|
||||
#define LSFT_ENT LSFT_T(KC_ENT)
|
||||
#define RGUI_ESC RGUI_T(KC_ESC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_split(
|
||||
FN1_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_ESC,
|
||||
KC_Z, KC_X, KC_C, KC_V, KC_BSPC, KC_SPC, KC_B, KC_N, KC_M, KC_ENT
|
||||
[QWERTY] = LAYOUT_split(
|
||||
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, RGUI_ESC,
|
||||
LCTL_Z, LALT_X, FN3_C, FN4_V, FN2_BSC, FN1_SPC, FN5_B, RALT_N, RCTL_M, LSFT_ENT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_split(
|
||||
[FN1] = LAYOUT_split(
|
||||
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,
|
||||
_______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[FN2] = LAYOUT_split(
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_GRV,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[FN3] = LAYOUT_split(
|
||||
_______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_TAB, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[FN4] = LAYOUT_split(
|
||||
_______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
KC_TAB, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[FN5] = LAYOUT_split(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, RESET, _______, _______, _______
|
||||
_______, _______, _______, _______, _______, RESET, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
|
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,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_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,BL_INC, BL_DEC, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,RGB_SMOD,KC_TRNS,BL_ON, BL_OFF, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,RGB_MOD,KC_TRNS,BL_ON, BL_OFF, 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
|
||||
),
|
||||
/* You can copy this layer as base for a new fn layer * /
|
||||
|
@@ -1,5 +1,3 @@
|
||||
SRC += ws2812.c
|
||||
|
||||
# MCU name
|
||||
#MCU = at90usb1286
|
||||
MCU = atmega32u4
|
||||
@@ -54,7 +52,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
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
|
||||
|
@@ -26,13 +26,13 @@ F_CPU = 12000000
|
||||
|
||||
# Bootloader
|
||||
# This definition is optional, and if your keyboard supports multiple bootloaders of
|
||||
# different sizes, comment this out, and the correct address will be loaded
|
||||
# different sizes, comment this out, and the correct address will be loaded
|
||||
# automatically (+60). See bootloader.mk for all options.
|
||||
BOOTLOADER = bootloadHID
|
||||
|
||||
# build options
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
BOOTMAGIC_ENABLE = full
|
||||
MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
|
@@ -26,13 +26,13 @@ F_CPU = 12000000
|
||||
|
||||
# Bootloader
|
||||
# This definition is optional, and if your keyboard supports multiple bootloaders of
|
||||
# different sizes, comment this out, and the correct address will be loaded
|
||||
# different sizes, comment this out, and the correct address will be loaded
|
||||
# automatically (+60). See bootloader.mk for all options.
|
||||
BOOTLOADER = bootloadHID
|
||||
|
||||
# build options
|
||||
BOOTMAGIC_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
BOOTMAGIC_ENABLE = full
|
||||
MOUSEKEY_ENABLE = no
|
||||
EXTRAKEY_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
COMMAND_ENABLE = yes
|
||||
|
42
keyboards/converter/ibm_5291/config.h
Normal file
42
keyboards/converter/ibm_5291/config.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
Copyright 2018 listofoptions <listofoptions@gmail.com>
|
||||
|
||||
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
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 1
|
||||
#define MANUFACTURER QMK
|
||||
#define PRODUCT 5291 keyboard converter
|
||||
#define DESCRIPTION 5291 keyboard converter
|
||||
|
||||
#define MATRIX_ROWS 24
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
#define MATRIX_ROW_PINS {B2, B3, B4, B5, B6}
|
||||
#define MATRIX_COL_PINS {B0, B1}
|
||||
#define MATRIX_DATA_PIN D0
|
||||
#define MATRIX_STROBE_PIN D1
|
||||
#define LED_PIN D6
|
||||
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 0
|
||||
|
||||
|
3
keyboards/converter/ibm_5291/ibm_5291.c
Normal file
3
keyboards/converter/ibm_5291/ibm_5291.c
Normal file
@@ -0,0 +1,3 @@
|
||||
#include "ibm_5291.h"
|
||||
#include <avr/io.h>
|
||||
#include "quantum.h"
|
69
keyboards/converter/ibm_5291/ibm_5291.h
Normal file
69
keyboards/converter/ibm_5291/ibm_5291.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
Copyright 2018 listofoptions <listofoptions@gmail.com>
|
||||
|
||||
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
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/*
|
||||
* ,-------. ,--------------------------------------------------------------------------.
|
||||
* | F1| F2| |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BS |NumLck |ScrLck |
|
||||
* |-------| |--------------------------------------------------------------------------|
|
||||
* | F3| F4| | Tab | Q| W| E| R| T| Y| U| I| O| P| [| ] | | 7| 8| 9| -|
|
||||
* |-------| |------------------------------------------------------|Ent|---------------|
|
||||
* | F5| F6| | Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | 4| 5| 6| |
|
||||
* |-------| |----------------------------------------------------------------------| |
|
||||
* | F7| F8| |Shif| \| Z| X| C| V| B| N| M| ,| .| /|Shift|PrS| 1| 2| 3| +|
|
||||
* |-------| |----------------------------------------------------------------------| |
|
||||
* | F9|F10| | Alt | Space |CapsLck| 0 | . | |
|
||||
* `-------' `--------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
#define LAYOUT_5291( \
|
||||
KEY_F1,KEY_F2, KEY_ESC, KEY_1, KEY_2,KEY_3,KEY_4,KEY_5,KEY_6,KEY_7,KEY_8,KEY_9, KEY_0, KEY_MIN, KEY_EQU, KEY_BACK, KEY_NLOCK, KEY_SLOCK, \
|
||||
KEY_F3,KEY_F4, KEY_TAB, KEY_Q, KEY_W,KEY_E,KEY_R,KEY_T,KEY_Y,KEY_U,KEY_I,KEY_O, KEY_P, KEY_LBRC,KEY_RBRC, KEY_PAD7,KEY_PAD8, KEY_PAD9,KEY_PMIN, \
|
||||
KEY_F5,KEY_F6, KEY_LCTR,KEY_A, KEY_S,KEY_D,KEY_F,KEY_G,KEY_H,KEY_J,KEY_K,KEY_L, KEY_SEMI,KEY_QUOT,KEY_TICK, KEY_ENTR,KEY_PAD4,KEY_PAD5, KEY_PAD6, \
|
||||
KEY_F7,KEY_F8, KEY_LSFS,KEY_BSLS,KEY_Z,KEY_X,KEY_C,KEY_V,KEY_B,KEY_N,KEY_M,KEY_COMM,KEY_DOT, KEY_SLS,KEY_RSFS, KEY_PAST,KEY_PAD1,KEY_PAD2, KEY_PAD3,KEY_PPLS, \
|
||||
KEY_F9,KEY_F10, KEY_LALT, KEY_SPACE, KEY_CLOCK, KEY_PAD0, KEY_PDOT \
|
||||
) \
|
||||
{ {KEY_Z, KEY_S, KEY_W, KEY_3 }\
|
||||
, {KEY_X, KEY_D, KEY_E, KEY_4 }\
|
||||
, {KEY_C, KEY_F, KEY_R, KEY_5 }\
|
||||
, {KEY_V, KEY_G, KEY_T, KEY_6 }\
|
||||
, {KEY_B, KEY_H, KEY_Y, KEY_7 }\
|
||||
, {KEY_N, KEY_J, KEY_U, KEY_8 }\
|
||||
, {KEY_PAD2, KEY_PAD5,KEY_PAD8,KEY_NLOCK }\
|
||||
, {KEY_M, KEY_K, KEY_I, KEY_9 }\
|
||||
, {KEY_COMM, KEY_L, KEY_O, KEY_0 }\
|
||||
, {KEY_DOT, KEY_SEMI,KEY_P, KEY_MIN }\
|
||||
, {KEY_SLS, KEY_QUOT,KEY_LBRC,KEY_EQU }\
|
||||
, {KEY_SPACE, KEY_RSFS,KEY_TICK,KEY_RBRC }\
|
||||
, {KEY_CLOCK, KEY_PAST,KEY_ENTR,KEY_BACK }\
|
||||
, {KEY_PAD0, KEY_PAD1,KEY_PAD4,KEY_PAD7 }\
|
||||
, {KEY_PPLS, KC_NO, KEY_PMIN,KEY_SLOCK }\
|
||||
, {KEY_PDOT, KEY_PAD3,KEY_PAD6,KEY_PAD9 }\
|
||||
, {KEY_BSLS, KEY_A, KEY_Q, KEY_2 }\
|
||||
, {KEY_LALT, KC_NO, KC_NO, KEY_1 }\
|
||||
, {KEY_F7, KEY_F5, KEY_F3, KEY_F1 }\
|
||||
, {KEY_F8, KEY_F6, KEY_F4, KEY_F2 }\
|
||||
, {KC_F10, KC_NO, KC_NO, KC_NO }\
|
||||
, {KC_F9, KC_NO, KC_NO, KC_NO }\
|
||||
, {KEY_LSFS, KEY_LCTR,KEY_TAB, KEY_ESC }\
|
||||
, {KC_NO, KC_NO, KC_NO, KC_NO }\
|
||||
}
|
||||
|
||||
#define LAYOUT LAYOUT_5291
|
6
keyboards/converter/ibm_5291/info.json
Normal file
6
keyboards/converter/ibm_5291/info.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"keyboard_name": "IBM 5291",
|
||||
"keyboard_folder": "converter/5291",
|
||||
"url": "https://deskthority.net/wiki/IBM_Model_F#IBM_5291_Keyboard",
|
||||
"maintainer": "listofoptions",
|
||||
}
|
233
keyboards/converter/ibm_5291/keymaps/default/keymap.c
Normal file
233
keyboards/converter/ibm_5291/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,233 @@
|
||||
/*
|
||||
Copyright 2018 listofoptions <listofoptions@gmail.com>
|
||||
|
||||
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
|
||||
/*
|
||||
enum xt_keycodes
|
||||
{ XT_PAST = SAFE_RANGE // XT pad asterisk / print screen
|
||||
, XT_SLCK // XT scroll lock / break
|
||||
, XT_F6 // F6 / app key
|
||||
, XT_F5 // F5 / gui
|
||||
, XT_F9 // F9 / F11
|
||||
, XT_F10 // F10 / F12
|
||||
} ;
|
||||
|
||||
static bool shift_pressed = false ,
|
||||
alt_pressed = false ,
|
||||
ctrl_pressed = false ,
|
||||
xt_pscr_pressed = false ,
|
||||
xt_brk_pressed = false ,
|
||||
xt_app_pressed = false ,
|
||||
xt_gui_pressed = false ,
|
||||
xt_lout_pressed = false ,
|
||||
xt_f11_pressed = false ,
|
||||
xt_f12_pressed = false ;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case KC_LSFT:
|
||||
case KC_RSFT:
|
||||
if (record->event.pressed) {
|
||||
shift_pressed = true ;
|
||||
} else {
|
||||
shift_pressed = false ;
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
|
||||
case KC_LALT:
|
||||
if (record->event.pressed) {
|
||||
alt_pressed = true ;
|
||||
} else {
|
||||
alt_pressed = false ;
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
|
||||
case KC_LCTL:
|
||||
if (record->event.pressed) {
|
||||
ctrl_pressed = true ;
|
||||
} else {
|
||||
ctrl_pressed = false ;
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
|
||||
case XT_PAST:
|
||||
if (record->event.pressed) {
|
||||
if (shift_pressed) {
|
||||
xt_pscr_pressed = true ;
|
||||
register_code(KC_PSCR);
|
||||
} else {
|
||||
register_code(KC_PAST);
|
||||
}
|
||||
} else {
|
||||
if (xt_pscr_pressed) {
|
||||
xt_pscr_pressed = false ;
|
||||
unregister_code(KC_PSCR);
|
||||
} else {
|
||||
unregister_code(KC_PAST);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
case XT_SLCK:
|
||||
if (record->event.pressed) {
|
||||
if (ctrl_pressed) {
|
||||
xt_brk_pressed = true ;
|
||||
register_code(KC_BRK);
|
||||
} else {
|
||||
register_code(KC_SLCK);
|
||||
}
|
||||
} else {
|
||||
if (xt_brk_pressed) {
|
||||
xt_brk_pressed = false ;
|
||||
unregister_code(KC_BRK);
|
||||
} else {
|
||||
unregister_code(KC_SLCK);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
case XT_F6:
|
||||
if (record->event.pressed) {
|
||||
if (shift_pressed) {
|
||||
xt_app_pressed = true ;
|
||||
register_code(KC_APP);
|
||||
} else {
|
||||
register_code(KC_F6);
|
||||
}
|
||||
} else {
|
||||
if (xt_app_pressed) {
|
||||
xt_app_pressed = false ;
|
||||
unregister_code(KC_APP);
|
||||
} else {
|
||||
unregister_code(KC_F6);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
case XT_F5:
|
||||
if (record->event.pressed) {
|
||||
if (shift_pressed) {
|
||||
xt_gui_pressed = true ;
|
||||
register_code(KC_LGUI);
|
||||
} else if (ctrl_pressed) {
|
||||
xt_lout_pressed = true ;
|
||||
register_code (KC_LGUI) ;
|
||||
register_code (KC_L) ;
|
||||
} else {
|
||||
register_code(KC_F5);
|
||||
}
|
||||
} else {
|
||||
if (xt_gui_pressed) {
|
||||
xt_gui_pressed = false ;
|
||||
unregister_code(KC_LGUI);
|
||||
} else if (xt_lout_pressed) {
|
||||
xt_lout_pressed = false ;
|
||||
unregister_code (KC_LGUI) ;
|
||||
unregister_code (KC_L) ;
|
||||
} else {
|
||||
unregister_code(KC_F5);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
case XT_F9:
|
||||
if (record->event.pressed) {
|
||||
if (shift_pressed) {
|
||||
xt_f11_pressed = true ;
|
||||
register_code(KC_F11);
|
||||
} else {
|
||||
register_code(KC_F9);
|
||||
}
|
||||
} else {
|
||||
if (xt_f11_pressed) {
|
||||
xt_f11_pressed = false ;
|
||||
unregister_code(KC_F11);
|
||||
} else {
|
||||
unregister_code(KC_F9);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
case XT_F10:
|
||||
if (record->event.pressed) {
|
||||
if (shift_pressed) {
|
||||
xt_f12_pressed = true ;
|
||||
register_code(KC_F12);
|
||||
} else {
|
||||
register_code(KC_F10);
|
||||
}
|
||||
} else {
|
||||
if (xt_f12_pressed) {
|
||||
xt_f12_pressed = false ;
|
||||
unregister_code(KC_F12);
|
||||
} else {
|
||||
unregister_code(KC_F10);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
default:
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// default layout is the standard XT layout
|
||||
/*
|
||||
* ,-------. ,--------------------------------------------------------------------------.
|
||||
* | F1| F2| |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BS |NumLck |ScrLck |
|
||||
* |-------| |--------------------------------------------------------------------------|
|
||||
* | F3| F4| | Tab | Q| W| E| R| T| Y| U| I| O| P| [| ] | | 7| 8| 9| -|
|
||||
* |-------| |------------------------------------------------------|Ent|---------------|
|
||||
* | F5| F6| | Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | 4| 5| 6| |
|
||||
* |-------| |----------------------------------------------------------------------| |
|
||||
* | F7| F8| |Shif| \| Z| X| C| V| B| N| M| ,| .| /|Shift| *| 1| 2| 3| +|
|
||||
* |-------| |----------------------------------------------------------------------| |
|
||||
* | F9|F10| | Alt | Space |CapsLck| 0 | . | |
|
||||
* `-------' `--------------------------------------------------------------------------'
|
||||
*/
|
||||
/*
|
||||
[0] = LAYOUT (
|
||||
KC_F1,KC_F2, KC_ESC, KC_1, KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_NLCK, XT_SLCK,
|
||||
KC_F3,KC_F4, 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_P7,KC_P8, KC_P9, KC_PMNS,
|
||||
XT_F5,XT_F6, KC_LCTL,KC_A, KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L, KC_SCLN,KC_QUOT,KC_GRV, KC_ENT, KC_P4,KC_P5, KC_P6,
|
||||
KC_F7,KC_F8, KC_LSFT,KC_BSLS,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,XT_PAST,KC_P1,KC_P2, KC_P3, KC_PPLS,
|
||||
XT_F9,XT_F10,KC_LALT, KC_SPACE, KC_CAPS, KC_P0, KC_PDOT
|
||||
)
|
||||
*/
|
||||
[0] = LAYOUT (
|
||||
KC_F1,KC_F2, KC_ESC, KC_1, KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_NLCK, KC_SLCK,
|
||||
KC_F3,KC_F4, 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_P7,KC_P8, KC_P9, KC_PMNS,
|
||||
KC_F5,KC_F6, KC_LCTL,KC_A, KC_S,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L, KC_SCLN,KC_QUOT,KC_GRV, KC_ENT, KC_P4,KC_P5, KC_P6,
|
||||
KC_F7,KC_F8, KC_LSFT,KC_BSLS,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_PAST,KC_P1,KC_P2, KC_P3, KC_PPLS,
|
||||
KC_F9,KC_F10,KC_LALT, KC_SPACE, KC_CAPS, KC_P0, KC_PDOT
|
||||
)
|
||||
} ;
|
||||
|
Binary file not shown.
284
keyboards/converter/ibm_5291/matrix.c
Normal file
284
keyboards/converter/ibm_5291/matrix.c
Normal file
@@ -0,0 +1,284 @@
|
||||
/*
|
||||
Copyright 2018 listofoptions <listofoptions@gmail.com>
|
||||
|
||||
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 <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#if defined(__AVR__)
|
||||
#include <avr/io.h>
|
||||
#endif
|
||||
#include <util/delay.h>
|
||||
|
||||
#include "wait.h"
|
||||
#include "print.h"
|
||||
#include "debug.h"
|
||||
#include "util.h"
|
||||
#include "matrix.h"
|
||||
#include "timer.h"
|
||||
|
||||
#include "config.h"
|
||||
|
||||
|
||||
#ifndef DEBOUNCING_DELAY
|
||||
# define DEBOUNCING_DELAY 5
|
||||
#endif
|
||||
|
||||
#define print_matrix_header() print("\nr/c 01234567\n")
|
||||
#define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row))
|
||||
#define matrix_bitpop(i) bitpop(matrix[i])
|
||||
#define ROW_SHIFTER ((uint8_t)1)
|
||||
#define check_bit(var,pos) ((var) & (1<<(pos)))
|
||||
|
||||
#define NUM_ROW_PINS 5
|
||||
#define NUM_COL_PINS 2
|
||||
|
||||
static const uint8_t row_pins [NUM_ROW_PINS] = MATRIX_ROW_PINS ;
|
||||
static const uint8_t col_pins [NUM_ROW_PINS] = MATRIX_COL_PINS ;
|
||||
|
||||
#if ( DEBOUNCING_DELAY > 0 )
|
||||
static uint16_t debouncing_time ;
|
||||
static bool debouncing = false ;
|
||||
#endif
|
||||
|
||||
static uint8_t matrix [MATRIX_ROWS] = {0};
|
||||
|
||||
#if ( DEBOUNCING_DELAY > 0 )
|
||||
static uint8_t matrix_debounce [MATRIX_ROWS] = {0};
|
||||
#endif
|
||||
|
||||
static
|
||||
inline
|
||||
void toggle_led(void) {
|
||||
uint8_t pin = LED_PIN ;
|
||||
_SFR_IO8((pin >> 4) + 2) ^= _BV(pin & 0xF);
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void init_led(void) {
|
||||
uint8_t pin = LED_PIN ;
|
||||
_SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT
|
||||
_SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void init_data(void) {
|
||||
uint8_t pin = MATRIX_DATA_PIN ;
|
||||
_SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN
|
||||
_SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // LO
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void init_strobe(void) {
|
||||
uint8_t pin = MATRIX_STROBE_PIN ;
|
||||
_SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT
|
||||
_SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void init_rows(void) {
|
||||
for ( uint8_t i = 0 ; i < NUM_ROW_PINS; ++i ) {
|
||||
uint8_t pin = row_pins[i];
|
||||
_SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT
|
||||
_SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void init_cols(void) {
|
||||
for ( uint8_t i = 0 ; i < NUM_COL_PINS; ++i ) {
|
||||
uint8_t pin = col_pins[i];
|
||||
_SFR_IO8((pin >> 4) + 1) |= _BV(pin & 0xF); // OUT
|
||||
_SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void select_row(uint8_t current_row) {
|
||||
for ( uint8_t i = 0 ; i < NUM_ROW_PINS; ++i ) {
|
||||
uint8_t pin = row_pins[i] ;
|
||||
if ( check_bit( current_row, i ) ) {
|
||||
_SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
|
||||
} else {
|
||||
_SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
|
||||
}
|
||||
}
|
||||
wait_us(30) ;
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
void select_col(uint8_t current_col) {
|
||||
for ( uint8_t i = 0 ; i < NUM_COL_PINS; ++i ) {
|
||||
uint8_t pin = col_pins[i] ;
|
||||
if ( check_bit( current_col, i ) ) {
|
||||
_SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI
|
||||
} else {
|
||||
_SFR_IO8((pin >> 4) + 2) &= ~_BV(pin & 0xF); // LOW
|
||||
}
|
||||
}
|
||||
wait_us(30) ;
|
||||
}
|
||||
|
||||
static
|
||||
inline
|
||||
uint8_t matrix_strobe(uint8_t col_index) {
|
||||
uint8_t strobe_pin = MATRIX_STROBE_PIN ;
|
||||
uint8_t data_pin = MATRIX_DATA_PIN ;
|
||||
|
||||
// set strobe pin low
|
||||
_SFR_IO8((strobe_pin >> 4) + 2) &= ~_BV(strobe_pin & 0xF);
|
||||
|
||||
wait_us(30) ;
|
||||
|
||||
// read data
|
||||
uint8_t data = (_SFR_IO8(data_pin >> 4) & _BV(data_pin & 0xF)) ;
|
||||
|
||||
// set strobe pin hi
|
||||
_SFR_IO8((strobe_pin >> 4) + 2) |= _BV(strobe_pin & 0xF);
|
||||
|
||||
uint8_t out = data ? (1 << col_index) : 0 ;
|
||||
return out ;
|
||||
}
|
||||
|
||||
static
|
||||
bool matrix_read(uint8_t current_matrix[], uint8_t current_row) {
|
||||
// Store last value of row prior to reading
|
||||
uint8_t last_row_value = current_matrix[current_row];
|
||||
|
||||
// Clear data in matrix row
|
||||
current_matrix[current_row] = 0;
|
||||
|
||||
select_row(current_row);
|
||||
|
||||
// For each col...
|
||||
for(uint8_t col_index = 0; col_index < MATRIX_COLS; ++col_index) {
|
||||
|
||||
select_col(col_index) ;
|
||||
|
||||
// strobe the matrix
|
||||
// Populate the matrix row with the state of the data pin
|
||||
current_matrix[current_row] |= matrix_strobe(col_index) ;
|
||||
}
|
||||
|
||||
bool test = last_row_value != current_matrix[current_row] ;
|
||||
return test ;
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_quantum(void) {
|
||||
matrix_init_kb();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_quantum(void) {
|
||||
matrix_scan_kb();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_user(void) {
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
inline
|
||||
uint8_t matrix_rows(void) {
|
||||
return MATRIX_ROWS;
|
||||
}
|
||||
|
||||
inline
|
||||
uint8_t matrix_cols(void) {
|
||||
return MATRIX_COLS;
|
||||
}
|
||||
|
||||
inline
|
||||
uint8_t matrix_get_row(uint8_t row) {
|
||||
return matrix[row];
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
init_led() ;
|
||||
init_rows() ;
|
||||
init_cols() ;
|
||||
init_data() ;
|
||||
init_strobe() ;
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = 0;
|
||||
# if (DEBOUNCING_DELAY > 0)
|
||||
matrix_debounce [i] = 0;
|
||||
# endif
|
||||
}
|
||||
|
||||
matrix_init_quantum() ;
|
||||
}
|
||||
|
||||
uint8_t matrix_scan(void) {
|
||||
for ( uint8_t current_row = 0; current_row < MATRIX_ROWS; ++current_row ) {
|
||||
# if (DEBOUNCING_DELAY > 0)
|
||||
bool matrix_changed = matrix_read(matrix_debounce, current_row);
|
||||
|
||||
if (matrix_changed) {
|
||||
debouncing = true ;
|
||||
debouncing_time = timer_read();
|
||||
}
|
||||
|
||||
# else
|
||||
matrix_read(matrix, current_row);
|
||||
# endif
|
||||
}
|
||||
|
||||
# if (DEBOUNCING_DELAY > 0)
|
||||
if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) {
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = matrix_debounce[i];
|
||||
}
|
||||
debouncing = false;
|
||||
}
|
||||
# endif
|
||||
|
||||
matrix_scan_quantum();
|
||||
return 1;
|
||||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
print_matrix_header();
|
||||
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
phex(row); print(": ");
|
||||
print_matrix_row(row);
|
||||
print("\n");
|
||||
}
|
||||
}
|
96
keyboards/converter/ibm_5291/matrix.csv
Normal file
96
keyboards/converter/ibm_5291/matrix.csv
Normal file
@@ -0,0 +1,96 @@
|
||||
0,Z
|
||||
1,S
|
||||
2,W
|
||||
3,3
|
||||
4,X
|
||||
5,D
|
||||
6,E
|
||||
7,4
|
||||
8,C
|
||||
9,F
|
||||
10,R
|
||||
11,5
|
||||
12,V
|
||||
13,G
|
||||
14,T
|
||||
15,6
|
||||
16,B
|
||||
17,H
|
||||
18,Y
|
||||
19,7
|
||||
20,N
|
||||
21,J
|
||||
22,U
|
||||
23,8
|
||||
24,PAD_2
|
||||
25,PAD_5
|
||||
26,PAD_8
|
||||
27,NUM_LOCK
|
||||
28,M
|
||||
29,K
|
||||
30,I
|
||||
31,9
|
||||
32,COMMA
|
||||
33,L
|
||||
34,O
|
||||
35,0
|
||||
36,PERIOD
|
||||
37,SEMICOLON
|
||||
38,P
|
||||
39,MINUS
|
||||
40,SLASH
|
||||
41,QUOTE
|
||||
42,LEFT_BRACE
|
||||
43,EQUAL
|
||||
44,SPACE
|
||||
45,RSHIFT
|
||||
46,BACK_QUOTE
|
||||
47,RIGHT_BRACE
|
||||
48,CAPS_LOCK
|
||||
49,PAD_ASTERIX
|
||||
50,ENTER
|
||||
51,BACKSPACE
|
||||
52,PAD_0
|
||||
53,PAD_1
|
||||
54,PAD_4
|
||||
55,PAD_7
|
||||
56,PAD_PLUS
|
||||
57,UNASSIGNED
|
||||
58,PAD_MINUS
|
||||
59,SCROLL_LOCK
|
||||
60,PAD_PERIOD
|
||||
61,PAD_3
|
||||
62,PAD_6
|
||||
63,PAD_9
|
||||
64,BACKSLASH
|
||||
65,A
|
||||
66,Q
|
||||
67,2
|
||||
68,LALT
|
||||
69,UNASSIGNED
|
||||
70,UNASSIGNED
|
||||
71,1
|
||||
72,F7
|
||||
73,F5
|
||||
74,F3
|
||||
75,F1
|
||||
76,F8
|
||||
77,F6
|
||||
78,F4
|
||||
79,F2
|
||||
80,F10
|
||||
81,UNASSIGNED
|
||||
82,UNASSIGNED
|
||||
83,UNASSIGNED
|
||||
84,F9
|
||||
85,UNASSIGNED
|
||||
86,UNASSIGNED
|
||||
87,UNASSIGNED
|
||||
88,LSHIFT
|
||||
89,LCTRL
|
||||
90,TAB
|
||||
91,ESC
|
||||
92,UNASSIGNED
|
||||
93,UNASSIGNED
|
||||
94,UNASSIGNED
|
||||
95,UNASSIGNED
|
|
70
keyboards/converter/ibm_5291/readme.md
Normal file
70
keyboards/converter/ibm_5291/readme.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# IBM 5291 keyboard converter
|
||||
|
||||

|
||||
|
||||
A converter for the eponymous keyboard.
|
||||
|
||||
Keyboard Maintainer: [Listofoptions](https://github.com/listofoptions)
|
||||
Hardware Supported: IBM 5291, Teensy 2.0
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make converter/ibm_5291:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
|
||||
the pinout is as follows:
|
||||
|
||||
IBM−5291−Cable to Pinhead−14
|
||||
|
||||
| pin | description
|
||||
----|------------------------
|
||||
1 | GND
|
||||
2 | NC
|
||||
3 | GND
|
||||
4 | GN)
|
||||
5 | +5V
|
||||
6 | D0
|
||||
7 | D1
|
||||
8 | D2
|
||||
9 | D3
|
||||
10| D4
|
||||
11| D5
|
||||
12| D6
|
||||
13| Strobe
|
||||
14| Out
|
||||
|
||||
the pins on this connector are organized 
|
||||
|
||||
IBM−5291−2 Cable with DB15M connector
|
||||
|
||||
| pin | description
|
||||
----|-------------
|
||||
|1,2,3 | GND
|
||||
|4 | +5V
|
||||
|5 | D0
|
||||
|6 | D1
|
||||
|7 | D2
|
||||
|8 | D3
|
||||
|9 | D4
|
||||
|10 | D5
|
||||
|11 | D6
|
||||
|12 | Strobe
|
||||
|13 | Out
|
||||
|14 | PE
|
||||
|15 | NC
|
||||
|
||||
the above connector is actually numbered so it should be easier to determine
|
||||
where the needed connections are.
|
||||
|
||||
to connect to the teensy, the following are pins are needed (if you should choose not set your own):
|
||||
* PB0 -> PB6 are connected to D0 -> D6
|
||||
* +5V is connected to the corresponding teensy pin
|
||||
* gnd is as well, only one of the gnd pins needs to be connected though.
|
||||
* strobe is connected to pin PD1
|
||||
* data is connected to PD0
|
||||
* PE does not need to be connected to anything, but it could also be connected to gnd
|
||||
|
||||
sources:
|
||||
http://www.retrocomputing.eu/documents/5291_MaintenanceLibrary.pdf
|
72
keyboards/converter/ibm_5291/rules.mk
Normal file
72
keyboards/converter/ibm_5291/rules.mk
Normal file
@@ -0,0 +1,72 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1287
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
# Bootloader
|
||||
# This definition is optional, and if your keyboard supports multiple bootloaders of
|
||||
# different sizes, comment this out, and the correct address will be loaded
|
||||
# automatically (+60). See bootloader.mk for all options.
|
||||
BOOTLOADER = halfkay
|
||||
|
||||
# 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 = no # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # 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.
|
||||
API_SYSEX_ENABLE = no
|
||||
SPLIT_KEYBOARD = no
|
||||
WAIT_FOR_USB = yes
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
LAYOUTS_HAS_RGB = NO
|
||||
|
||||
CUSTOM_MATRIX = yes
|
||||
SRC = matrix.c
|
@@ -1,6 +1,10 @@
|
||||
#include "crkbd.h"
|
||||
#include "ssd1306.h"
|
||||
#include "ssd1306.h"
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
return process_record_gfx(keycode,record) && process_record_user(keycode, record);
|
||||
}
|
||||
#ifdef SSD1306OLED
|
||||
return process_record_gfx(keycode,record) && process_record_user(keycode, record);
|
||||
#else
|
||||
return process_record_user(keycode, record);
|
||||
#endif
|
||||
}
|
||||
|
@@ -52,7 +52,7 @@ enum macro_keycodes {
|
||||
#define KC_LSAD RGB_SAD
|
||||
#define KC_LVAI RGB_VAI
|
||||
#define KC_LVAD RGB_VAD
|
||||
#define KC_LSMOD RGB_SMOD
|
||||
#define KC_LMOD RGB_MOD
|
||||
#define KC_CTLTB CTL_T(KC_TAB)
|
||||
#define KC_GUIEI GUI_T(KC_LANG2)
|
||||
#define KC_ALTKN ALT_T(KC_LANG1)
|
||||
@@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//|------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
|
||||
//|------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
LSMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
|
||||
LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
|
||||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
GUIEI, LOWER, SPC, ENT, RAISE, ALTKN \
|
||||
//`--------------------' `--------------------'
|
||||
|
@@ -41,5 +41,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#define RGBLIGHT_LIMIT_VAL 100
|
||||
#endif
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define B6_AUDIO
|
||||
// #define NO_MUSIC_MODE
|
||||
#endif
|
||||
|
@@ -26,10 +26,10 @@ enum crkbd_keycodes {
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
|
||||
) \
|
||||
LAYOUT_wrapper( \
|
||||
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
|
||||
KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
|
||||
KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
|
||||
KC_TAB, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RGUI_T(KC_QUOT), \
|
||||
OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, CTL_T(K2A), OS_RSFT, \
|
||||
LT(_LOWER,KC_GRV), KC_SPC, LALT_T(KC_BSPC), KC_DEL, KC_ENT, RAISE \
|
||||
LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE \
|
||||
)
|
||||
#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
|
||||
|
||||
@@ -66,14 +66,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_wrapper(
|
||||
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
|
||||
KC_F11, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
|
||||
KC_F12, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
|
||||
KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
|
||||
KC_F12, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
|
||||
_______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_wrapper( \
|
||||
KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
|
||||
_______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
|
||||
_______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
|
||||
_______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
@@ -81,18 +81,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_ADJUST] = LAYOUT_wrapper( \
|
||||
KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET,
|
||||
VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EPRM,
|
||||
TG_MODS, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
|
||||
_______, _______, _______, _______, _______, _______
|
||||
VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
|
||||
_______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
|
||||
_______, _______, _______, KC_NUKE, TG_MODS, _______
|
||||
)
|
||||
};
|
||||
|
||||
int RGB_current_mode;
|
||||
|
||||
void matrix_init_keymap(void) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
RGB_current_mode = rgblight_config.mode;
|
||||
#endif
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
iota_gfx_init(!has_usb()); // turns on the display
|
||||
@@ -102,53 +97,118 @@ void matrix_init_keymap(void) {
|
||||
PORTD &= ~(1<<5);
|
||||
|
||||
DDRB &= ~(1<<0);
|
||||
PORTB &= ~(1<<0);}
|
||||
PORTB &= ~(1<<0);
|
||||
}
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
|
||||
// When add source files to SRC in rules.mk, you can use functions.
|
||||
const char *read_layer_state(void);
|
||||
const char *read_logo(void);
|
||||
void set_keylog(uint16_t keycode, keyrecord_t *record);
|
||||
const char *read_keylog(void);
|
||||
const char *read_keylogs(void);
|
||||
char layer_state_str[24];
|
||||
char modifier_state_str[24];
|
||||
char host_led_state_str[24];
|
||||
char keylog_str[24] = {};
|
||||
char keylogs_str[21] = {};
|
||||
int keylogs_str_idx = 0;
|
||||
|
||||
// const char *read_mode_icon(bool swap);
|
||||
const char *read_host_led_state(void);
|
||||
// void set_timelog(void);
|
||||
// const char *read_timelog(void);
|
||||
|
||||
const char code_to_name[60] = {
|
||||
' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
|
||||
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
|
||||
'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
|
||||
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
|
||||
'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
|
||||
'#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
|
||||
|
||||
void set_keylog(uint16_t keycode, keyrecord_t *record) {
|
||||
char name = ' ';
|
||||
if (keycode < 60) {
|
||||
name = code_to_name[keycode];
|
||||
}
|
||||
|
||||
// update keylog
|
||||
snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
|
||||
record->event.key.row, record->event.key.col,
|
||||
keycode, name);
|
||||
|
||||
// update keylogs
|
||||
if (keylogs_str_idx == sizeof(keylogs_str) - 1) {
|
||||
keylogs_str_idx = 0;
|
||||
for (int i = 0; i < sizeof(keylogs_str) - 1; i++) {
|
||||
keylogs_str[i] = ' ';
|
||||
}
|
||||
}
|
||||
|
||||
keylogs_str[keylogs_str_idx] = name;
|
||||
keylogs_str_idx++;
|
||||
}
|
||||
|
||||
const char *read_keylog(void) {
|
||||
return keylog_str;
|
||||
}
|
||||
|
||||
const char *read_keylogs(void) {
|
||||
return keylogs_str;
|
||||
}
|
||||
|
||||
|
||||
const char* read_modifier_state(void) {
|
||||
uint8_t modifiers = get_mods();
|
||||
uint8_t one_shot = get_oneshot_mods();
|
||||
|
||||
snprintf(modifier_state_str, sizeof(modifier_state_str), "Mods:%s %s %s %s",
|
||||
(modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) ? "CTL" : " ",
|
||||
(modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK) ? "GUI" : " ",
|
||||
(modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) ? "ALT" : " ",
|
||||
(modifiers & MODS_SHIFT_MASK || one_shot & MODS_SHIFT_MASK) ? "SFT" : " "
|
||||
);
|
||||
|
||||
return modifier_state_str;
|
||||
}
|
||||
|
||||
const char *read_host_led_state(void) {
|
||||
uint8_t leds = host_keyboard_leds();
|
||||
|
||||
snprintf(host_led_state_str, sizeof(host_led_state_str), "NL:%s CL:%s SL:%s",
|
||||
(leds & (1 << USB_LED_NUM_LOCK)) ? "on" : "- ",
|
||||
(leds & (1 << USB_LED_CAPS_LOCK)) ? "on" : "- ",
|
||||
(leds & (1 << USB_LED_SCROLL_LOCK)) ? "on" : "- "
|
||||
);
|
||||
|
||||
return host_led_state_str;
|
||||
}
|
||||
|
||||
const char* read_layer_state(void) {
|
||||
switch (layer_state) {
|
||||
case _QWERTY:
|
||||
switch (default_layer_state) {
|
||||
switch (biton32(layer_state)) {
|
||||
case _RAISE:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise ");
|
||||
break;
|
||||
case _LOWER:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower ");
|
||||
break;
|
||||
case _ADJUST:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust ");
|
||||
break;
|
||||
default:
|
||||
switch (biton32(default_layer_state)) {
|
||||
case _QWERTY:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: QWERTY");
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Qwerty ");
|
||||
break;
|
||||
case _COLEMAK:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Colemak");
|
||||
break;
|
||||
case _DVORAK:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dvorak");
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dvorak ");
|
||||
break;
|
||||
case _WORKMAN:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Workman");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case _RAISE:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
|
||||
break;
|
||||
case _LOWER:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
|
||||
break;
|
||||
case _ADJUST:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
|
||||
break;
|
||||
default:
|
||||
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
|
||||
}
|
||||
|
||||
return layer_state_str;
|
||||
@@ -160,12 +220,13 @@ void matrix_scan_keymap(void) {
|
||||
|
||||
void matrix_render_user(struct CharacterMatrix *matrix) {
|
||||
if (is_master) {
|
||||
// If you want to change the display of OLED, you need to change here
|
||||
//If you want to change the display of OLED, you need to change here
|
||||
matrix_write_ln(matrix, read_layer_state());
|
||||
matrix_write_ln(matrix, read_keylog());
|
||||
matrix_write_ln(matrix, read_modifier_state());
|
||||
// matrix_write_ln(matrix, read_keylog());
|
||||
matrix_write_ln(matrix, read_keylogs());
|
||||
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
|
||||
matrix_write_ln(matrix, read_host_led_state());
|
||||
// matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
|
||||
matrix_write(matrix, read_host_led_state());
|
||||
//matrix_write_ln(matrix, read_timelog());
|
||||
} else {
|
||||
matrix_write(matrix, read_logo());
|
||||
@@ -187,8 +248,14 @@ void iota_gfx_task_user(void) {
|
||||
}
|
||||
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
set_keylog(keycode, record);
|
||||
switch (keycode) {
|
||||
case KC_A ... KC_SLASH:
|
||||
case KC_F1 ... KC_F12:
|
||||
case KC_INSERT ... KC_UP:
|
||||
case KC_KP_SLASH ... KC_KP_DOT:
|
||||
case KC_F13 ... KC_F24:
|
||||
if (record->event.pressed) { set_keylog(keycode, record); }
|
||||
break;
|
||||
// set_timelog();
|
||||
}
|
||||
return true;
|
||||
|
@@ -20,12 +20,14 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
BOOTLOADER = qmk-dfu
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/rgb_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
||||
./lib/host_led_state_reader.c \
|
||||
# ./lib/layer_state_reader.c \
|
||||
# ./lib/keylogger.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/layer_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
||||
|
24
keyboards/crkbd/keymaps/edvorakjp/config.h
Normal file
24
keyboards/crkbd/keymaps/edvorakjp/config.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define SWAP_SCLN
|
||||
|
||||
// #define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLED_NUM 27
|
||||
#define RGBLIGHT_LIMIT_VAL 100
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#endif // CONFIG_USER_H
|
158
keyboards/crkbd/keymaps/edvorakjp/keymap.c
Normal file
158
keyboards/crkbd/keymaps/edvorakjp/keymap.c
Normal file
@@ -0,0 +1,158 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#ifdef PROTOCOL_LUFA
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef SSD1306OLED
|
||||
#include "oled.h"
|
||||
#endif
|
||||
|
||||
#include "edvorakjp.h"
|
||||
|
||||
/*
|
||||
* enum custom_keycodes {
|
||||
* KC_LOCK = NEW_SAFE_RANGE,
|
||||
* };
|
||||
*/
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
|
||||
#define KC_TMB1 LGUI_T(KC_TAB)
|
||||
#define KC_TMB2 LSFT_T(KC_SPC)
|
||||
#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
|
||||
#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
|
||||
#define KC_TMB5 RCTL_T(KC_BSPC)
|
||||
#define KC_TMB6 RALT_T(KC_ENT)
|
||||
#define KC_TMB7 KC_DEL
|
||||
#define KC_TMB8 RALT(KC_ENT)
|
||||
#define KC_TMB9 LGUI(KC_TAB)
|
||||
|
||||
#define KC_RST RESET
|
||||
#define KC_DBUG DEBUG
|
||||
#define KC_RTOG RGB_TOG
|
||||
#define KC_EDJP EDVORAK
|
||||
#define KC_QWER QWERTY
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_EDVORAK] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
ESC ,QUOT,COMM,DOT , Y , P , F , G , R , W , Q ,BSLS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
EQL , A , O , E , I , U , D , T , N , S , M ,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
GRV ,SCLN, X , C , V , Z , B , H , J , K , L ,SLSH,
|
||||
//`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
TMB1,TMB2,TMB3, TMB4,TMB5,TMB6
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_EDVORAKJ1] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, AI , OU , EI , , , , , , , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , , , , , , , , Y , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
,ANN ,ONN ,ENN ,INN ,UNN , , , , , , ,
|
||||
//`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
, , , , ,
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_EDVORAKJ2] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, AI , OU , EI , , , , , , , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , , , , , , Y , , , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
,ANN ,ONN ,ENN ,INN ,UNN , , , , , , ,
|
||||
//`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
, , , , ,
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_QWERTY] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
EQL , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
GRV , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,BSLS,
|
||||
//`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
, , , , ,
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, 1 ,EXLM, AT ,HASH,DLR , PERC,CIRC,AMPR,ASTR, 0 , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , LT ,LCBR,LPRN,LBRC, RBRC,RPRN,RCBR, GT , , ,
|
||||
//`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
, , , ,TMB7,TMB8
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
,F11 ,F12 ,PSCR,SLCK,PAUS, ,HOME,PGDN,PGUP,END , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , , , , , ,LEFT,DOWN, UP ,RGHT, ,
|
||||
//|----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
TMB9, , , , ,
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_kc(
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , , ,EXTOFF, , ,EXTON, , , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , ,QWER,WIN ,RST , RTOG,MAC ,EDJP, , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , , , , , , , , , , ,
|
||||
//`----+----+----+----+----+----+----| |----+----+----+----+----+----+----'
|
||||
, , , , ,
|
||||
// `----+----+----' `----+----+----'
|
||||
)
|
||||
};
|
||||
|
||||
#ifdef SSD1306OLED
|
||||
void matrix_init_keymap(void) {
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
iota_gfx_init(!has_usb()); // turns on the display
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
iota_gfx_task(); // this is what updates the display continuously
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
uint32_t layer_state_set_keymap(uint32_t state) {
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
switch (biton32(state)) {
|
||||
case _EDVORAKJ1:
|
||||
case _EDVORAKJ2:
|
||||
// _EDVORAKJ1 & J2 are same colored
|
||||
rgblight_sethsv_noeeprom_white();
|
||||
break;
|
||||
case _LOWER:
|
||||
rgblight_sethsv_noeeprom_red();
|
||||
break;
|
||||
case _RAISE:
|
||||
rgblight_sethsv_noeeprom_blue();
|
||||
break;
|
||||
case _ADJUST:
|
||||
rgblight_sethsv_noeeprom_green();
|
||||
break;
|
||||
default: // for any other layers, or the default layer
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
|
||||
rgblight_sethsv_noeeprom_red();
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
#endif
|
82
keyboards/crkbd/keymaps/edvorakjp/oled.c
Normal file
82
keyboards/crkbd/keymaps/edvorakjp/oled.c
Normal file
@@ -0,0 +1,82 @@
|
||||
#include <string.h>
|
||||
#include "oled.h"
|
||||
|
||||
// NOTE: Redefined to avoid to use snprintf(); It makes size of firmware big.
|
||||
const char *read_mode_icon(bool windows_mode) {
|
||||
static const char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}};
|
||||
static char mode_icon[10];
|
||||
|
||||
int mode_number = windows_mode ? 1 : 0;
|
||||
strcpy(mode_icon, logo[mode_number][0]);
|
||||
|
||||
strcat(mode_icon, "\n");
|
||||
strcat(mode_icon, logo[mode_number][1]);
|
||||
|
||||
return mode_icon;
|
||||
}
|
||||
|
||||
const char *read_layer_state(void) {
|
||||
static char layer_state_str[24];
|
||||
char layer_name[17];
|
||||
|
||||
switch (biton32(layer_state)) {
|
||||
case L_BASE:
|
||||
strcpy(layer_name, default_layer_state == 1UL<<_EDVORAK ? "EDVORAK" : "QWERTY");
|
||||
break;
|
||||
case _EDVORAKJ1:
|
||||
case _EDVORAKJ2:
|
||||
strcpy(layer_name, "JP_EXT");
|
||||
break;
|
||||
case _RAISE:
|
||||
strcpy(layer_name, "Raise");
|
||||
break;
|
||||
case _LOWER:
|
||||
strcpy(layer_name, "Lower");
|
||||
break;
|
||||
case _ADJUST:
|
||||
strcpy(layer_name, "Adjust");
|
||||
break;
|
||||
default:
|
||||
snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
|
||||
}
|
||||
|
||||
strcpy(layer_state_str, "Layer: ");
|
||||
|
||||
strcat(layer_state_str, layer_name);
|
||||
strcat(layer_state_str, "\n");
|
||||
return layer_state_str;
|
||||
}
|
||||
|
||||
const char *read_host_led_state(void) {
|
||||
static char led_str[24];
|
||||
bool ext_status = get_enable_jp_extra_layer() && get_japanese_mode();
|
||||
strcpy(led_str, ext_status ? "EXT" : " ");
|
||||
|
||||
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? " NMLK" : " ");
|
||||
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? " CAPS" : " ");
|
||||
strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? " SCLK" : " ");
|
||||
return led_str;
|
||||
}
|
||||
|
||||
void matrix_update(struct CharacterMatrix *dest,
|
||||
const struct CharacterMatrix *source) {
|
||||
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
|
||||
memcpy(dest->display, source->display, sizeof(dest->display));
|
||||
dest->dirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void iota_gfx_task_user(void) {
|
||||
struct CharacterMatrix matrix;
|
||||
|
||||
matrix_clear(&matrix);
|
||||
if (is_master) {
|
||||
matrix_write(&matrix, read_mode_icon(!get_enable_kc_lang()));
|
||||
matrix_write(&matrix, " ");
|
||||
matrix_write(&matrix, read_layer_state());
|
||||
matrix_write(&matrix, read_host_led_state());
|
||||
} else {
|
||||
matrix_write(&matrix, read_logo());
|
||||
}
|
||||
matrix_update(&display, &matrix);
|
||||
}
|
24
keyboards/crkbd/keymaps/edvorakjp/oled.h
Normal file
24
keyboards/crkbd/keymaps/edvorakjp/oled.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef OLED_USER_H
|
||||
#define OLED_USER_H
|
||||
|
||||
//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#include "ssd1306.h"
|
||||
#include "edvorakjp.h"
|
||||
|
||||
//assign the right code to your layers for OLED display
|
||||
#define L_BASE 0
|
||||
|
||||
extern uint8_t is_master;
|
||||
extern bool japanese_mode;
|
||||
|
||||
// method prototypes defined in crkbd/lib
|
||||
extern const char *read_logo(void);
|
||||
|
||||
const char *read_mode_icon(bool swap);
|
||||
const char *read_layer_state(void);
|
||||
const char *read_host_led_state(void);
|
||||
void matrix_update(struct CharacterMatrix *dest,
|
||||
const struct CharacterMatrix *source);
|
||||
void iota_gfx_task_user(void);
|
||||
|
||||
#endif // OLED_CONFIG_USER_H
|
21
keyboards/crkbd/keymaps/edvorakjp/readme.md
Normal file
21
keyboards/crkbd/keymaps/edvorakjp/readme.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# edvorakjp
|
||||
|
||||
Epaew's Enhanced Dvorak layout for Japanese Programmer
|
||||
see [here](/users/edvorakjp) for more informations.
|
||||
|
||||
## License
|
||||
|
||||
Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew
|
||||
|
||||
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/>.
|
32
keyboards/crkbd/keymaps/edvorakjp/rules.mk
Normal file
32
keyboards/crkbd/keymaps/edvorakjp/rules.mk
Normal file
@@ -0,0 +1,32 @@
|
||||
# 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 = no # 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 = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SWAP_HANDS_ENABLE = no # Enable one-hand typing
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
./lib/logo_reader.c \
|
||||
oled.c \
|
||||
# ./lib/rgb_state_reader.c \
|
||||
# ./lib/layer_state_reader.c \
|
||||
# ./lib/keylogger.c \
|
||||
# ./lib/mode_icon_reader.c \
|
||||
# ./lib/host_led_state_reader.c \
|
||||
# ./lib/timelogger.c \
|
@@ -50,7 +50,7 @@ enum custom_keycodes {
|
||||
#define KC_LSAD RGB_SAD
|
||||
#define KC_LVAI RGB_VAI
|
||||
#define KC_LVAD RGB_VAD
|
||||
#define KC_LSMOD RGB_SMOD
|
||||
#define KC_LMOD RGB_MOD
|
||||
|
||||
#define KC_KNRM AG_NORM
|
||||
#define KC_KSWP AG_SWAP
|
||||
@@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
//|------+-------+------+------+------+-----| |------+------+------+------+------+------|
|
||||
_____, LTOG, LHUI, LSAI, LVAI,XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, PGUP, XXXXX,\
|
||||
//|------+-------+------+------+------+-----| |------+------+------+------+------+------|
|
||||
_____, LSMOD, LHUD, LSAD, LVAD,XXXXX, XXXXX, XXXXX, XXXXX, HOME, PGDN, END,\
|
||||
_____, LMOD, LHUD, LSAD, LVAD,XXXXX, XXXXX, XXXXX, XXXXX, HOME, PGDN, END,\
|
||||
//|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
_____, _____, XXXXX, _____, _____, XXXXX \
|
||||
//`--------------------' `--------------------'
|
||||
|
@@ -63,10 +63,9 @@ int serial_update_buffers(int master_update)
|
||||
if( smatstatus == TRANSACTION_END ) {
|
||||
s_change_old = s_change_new;
|
||||
#ifdef CONSOLE_ENABLE
|
||||
uprintf("slave matrix = %b %b %b %b %b\n",
|
||||
uprintf("slave matrix = %b %b %b %b\n",
|
||||
serial_slave_buffer[0], serial_slave_buffer[1],
|
||||
serial_slave_buffer[2], serial_slave_buffer[3],
|
||||
serial_slave_buffer[4] );
|
||||
serial_slave_buffer[2], serial_slave_buffer[3]);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
|
214
keyboards/cyclops/config.h
Normal file
214
keyboards/cyclops/config.h
Normal file
@@ -0,0 +1,214 @@
|
||||
/*
|
||||
Copyright 2018 'mechmerlin'
|
||||
|
||||
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
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER You
|
||||
#define PRODUCT cyclops
|
||||
#define DESCRIPTION A custom 66% keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { D1, D0, D7, B4, F0 }
|
||||
#define MATRIX_COL_PINS { D3, D2, D5, D6, B6, B1, B2, B3, C6, C7, F7, F6, F4, F5, F1 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP1 H
|
||||
//#define MAGIC_KEY_HELP2 SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* 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
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
|
||||
/*
|
||||
* HD44780 LCD Display Configuration
|
||||
*/
|
||||
/*
|
||||
#define LCD_LINES 2 //< number of visible lines of the display
|
||||
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
|
||||
|
||||
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
|
||||
|
||||
#if LCD_IO_MODE
|
||||
#define LCD_PORT PORTB //< port for the LCD lines
|
||||
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
|
||||
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
|
||||
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
|
||||
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
|
||||
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
|
||||
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
|
||||
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
|
||||
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
|
||||
#define LCD_RS_PORT LCD_PORT //< port for RS line
|
||||
#define LCD_RS_PIN 3 //< pin for RS line
|
||||
#define LCD_RW_PORT LCD_PORT //< port for RW line
|
||||
#define LCD_RW_PIN 2 //< pin for RW line
|
||||
#define LCD_E_PORT LCD_PORT //< port for Enable line
|
||||
#define LCD_E_PIN 1 //< pin for Enable line
|
||||
#endif
|
||||
*/
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
// #define BOOTMAGIC_LITE_ROW 0
|
||||
// #define BOOTMAGIC_LITE_COLUMN 0
|
43
keyboards/cyclops/cyclops.c
Normal file
43
keyboards/cyclops/cyclops.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2018 'mechmerlin'
|
||||
*
|
||||
* 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 "cyclops.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
43
keyboards/cyclops/cyclops.h
Normal file
43
keyboards/cyclops/cyclops.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2018 'mechmerlin'
|
||||
*
|
||||
* 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 CYCLOPS_H
|
||||
#define CYCLOPS_H
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, KC_NO, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \
|
||||
}
|
||||
|
||||
#endif
|
12
keyboards/cyclops/info.json
Normal file
12
keyboards/cyclops/info.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"keyboard_name": "cyclops",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 16.5,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Page Up", "x":15.5, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Page Down", "x":15.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.5}, {"label":"|", "x":1.5, "y":3}, {"label":"Z", "x":2.5, "y":3}, {"label":"X", "x":3.5, "y":3}, {"label":"C", "x":4.5, "y":3}, {"label":"V", "x":5.5, "y":3}, {"label":"B", "x":6.5, "y":3}, {"label":"N", "x":7.5, "y":3}, {"label":"M", "x":8.5, "y":3}, {"label":"<", "x":9.5, "y":3}, {"label":">", "x":10.5, "y":3}, {"label":"?", "x":11.5, "y":3}, {"x":12.5, "y":3}, {"label":"Shift", "x":13.5, "y":3}, {"label":"\u2191", "x":14.5, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4, "w":1.25}, {"label":"Alt", "x":2.75, "y":4, "w":1.5}, {"x":4.25, "y":4, "w":6.5}, {"label":"Alt", "x":10.75, "y":4, "w":1.5}, {"label":"Ctrl", "x":12.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13.5, "y":4}, {"label":"\u2193", "x":14.5, "y":4}, {"label":"\u2192", "x":15.5, "y":4}]
|
||||
}
|
||||
}
|
||||
}
|
19
keyboards/cyclops/keymaps/default/config.h
Normal file
19
keyboards/cyclops/keymaps/default/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2018 'mechmerlin'
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
65
keyboards/cyclops/keymaps/default/keymap.c
Normal file
65
keyboards/cyclops/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,65 @@
|
||||
/* Copyright 2018 'mechmerlin'
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKBEST = SAFE_RANGE,
|
||||
QMKURL
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_PGDN,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_RGHT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(1), KC_0, KC_UP,
|
||||
KC_CAPS, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_ENT, KC_DOWN),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QMKBEST:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKBEST is pressed
|
||||
SEND_STRING("QMK is the best thing ever!");
|
||||
} else {
|
||||
// when keycode QMKBEST is released
|
||||
}
|
||||
break;
|
||||
case QMKURL:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKURL is pressed
|
||||
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
||||
} else {
|
||||
// when keycode QMKURL is released
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/cyclops/keymaps/default/readme.md
Normal file
1
keyboards/cyclops/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for cyclops
|
13
keyboards/cyclops/readme.md
Normal file
13
keyboards/cyclops/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Cyclops
|
||||
|
||||
66% Alps Keyboard in ISO layout.
|
||||
|
||||
Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
|
||||
Hardware Supported: 66% Alps Keyboard
|
||||
Hardware Availability: A very limited number were made.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cyclops:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
80
keyboards/cyclops/rules.mk
Normal file
80
keyboards/cyclops/rules.mk
Normal file
@@ -0,0 +1,80 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
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 = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
@@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_RS] = LAYOUT(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_END, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_SMOD, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, BL_STEP, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, BL_STEP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
|
@@ -39,6 +39,20 @@ inline void setdefaultrgb(void){ rgblight_sethsv(100,100,100); }
|
||||
{ K40, K41, K42, KC_NO,KC_NO,K45, K46, K47, KC_NO,KC_NO,K4A, K4B, K4C, K4D, K4E } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_hhkb( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||
K41, K42, K46, K4A, K4B \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, KC_NO, K2E }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \
|
||||
{ KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, KC_NO, KC_NO, KC_NO } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||
|
@@ -9,6 +9,10 @@
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4}, {"label":"3u(Space)", "x":7.5, "y":4, "w":2.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
|
||||
},
|
||||
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":13.5, "y":1, "w":1.5}, {"label":"Control", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Os", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Os", "x":12.5, "y":4}]
|
||||
},
|
||||
|
||||
"LAYOUT_chiwi60_default": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":3}, {"label":"3u(Space)", "x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
|
||||
},
|
||||
|
@@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[1] = LAYOUT_all(
|
||||
RESET, 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_NO, KC_NO, \
|
||||
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, BL_TOGG,BL_ON, BL_INC, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, BL_STEP,BL_OFF, BL_DEC, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, BL_STEP,BL_OFF, BL_DEC, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP, KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO , KC_PGUP, KC_INS, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END),
|
||||
|
||||
|
@@ -15,7 +15,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[1] = LAYOUT_all(
|
||||
RESET, 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_NO, KC_NO, \
|
||||
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP, KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_RSFT, KC_NO , KC_PGUP, KC_INS, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_HOME, KC_PGDOWN,KC_END),
|
||||
|
||||
|
@@ -1,11 +1,14 @@
|
||||
# QMK Firmware for DoyuStudio DO60 PCB
|
||||
# DoyuStudio DO60 PCB
|
||||
|
||||
|
||||
## Quantum MK Firmware
|
||||
For the full Quantum feature list, see [the parent readme.md](/readme.md).
|
||||
|
||||
Board supports in-switch LEDs (two-pin, single colour)
|
||||
60% board supporting in-switch LEDs (two-pin, single colour)
|
||||
Build-in WS2182 RGB LED for underglow lighting.
|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make do60:default`.
|
||||
Keyboard Maintainer: QMK Community
|
||||
Hardware Supported: Doyu Studios 60% PCB
|
||||
Hardware Availability: [Doyustudio](https://shopkey.doyustudio.com/001pcb60)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make do60:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
@@ -63,4 +63,4 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
|
||||
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift
|
||||
LAYOUTS = 60_ansi 60_hhkb 60_ansi_split_bs_rshift
|
43
keyboards/ep/96/96.c
Normal file
43
keyboards/ep/96/96.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2018 Elliot Powell
|
||||
*
|
||||
* 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 "96.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
47
keyboards/ep/96/96.h
Normal file
47
keyboards/ep/96/96.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/* Copyright 2018 Elliot Powell
|
||||
*
|
||||
* 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 EP96_H
|
||||
#define EP96_H
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define xxxx KC_NO
|
||||
|
||||
#define LAYOUT( \
|
||||
K000, K001, K002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, k017, k018, \
|
||||
K100, K101, K102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, k114, k115, k116, k117, k118, \
|
||||
K200, K202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, k215, k216, k217, \
|
||||
K300, K302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k315, k316, k317, k318, \
|
||||
K400, K401, K402, k403, k404, k405, k406, k407, k408, k409, k410, k411, k413, k414, k415, k416, k417, \
|
||||
K500, K501, K502, k506, k511, k512, k513, k514, k515, k516, k517, k518) \
|
||||
{ \
|
||||
{K000, K001, K002, k003, k004, k005, k006, k007, k008, k009, k010, k011, k012, k013, k014, k015, k016, k017, k018}, \
|
||||
{K100, K101, K102, k103, k104, k105, k106, k107, k108, k109, k110, k111, k112, xxxx, k114, k115, k116, k117, k118}, \
|
||||
{K200, xxxx, K202, k203, k204, k205, k206, k207, k208, k209, k210, k211, k212, k213, xxxx, k215, k216, k217, xxxx}, \
|
||||
{K300, xxxx, K302, k303, k304, k305, k306, k307, k308, k309, k310, k311, k312, k313, k314, k315, k316, k317, k318}, \
|
||||
{K400, K401, K402, k403, k404, k405, k406, k407, k408, k409, k410, k411, xxxx, k413, k414, k415, k416, k417, xxxx}, \
|
||||
{K500, K501, K502, xxxx, xxxx, xxxx, k506, xxxx, xxxx, xxxx, xxxx, k511, k512, k513, k514, k515, k516, k517, k518} \
|
||||
}
|
||||
|
||||
#endif
|
212
keyboards/ep/96/config.h
Normal file
212
keyboards/ep/96/config.h
Normal file
@@ -0,0 +1,212 @@
|
||||
/*
|
||||
Copyright 2018 Elliot Powell
|
||||
|
||||
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
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x9696
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Elliot Powell
|
||||
#define PRODUCT ep96
|
||||
#define DESCRIPTION A simple 96 key keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 19
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define MATRIX_ROW_PINS { B0, B1, B3, B2, B7, C6 }
|
||||
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C7, F7, F6, F5, F4, F1, F0, E6 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
// #endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP1 H
|
||||
//#define MAGIC_KEY_HELP2 SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* 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
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
|
||||
/*
|
||||
* HD44780 LCD Display Configuration
|
||||
*/
|
||||
/*
|
||||
#define LCD_LINES 2 //< number of visible lines of the display
|
||||
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
|
||||
|
||||
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
|
||||
|
||||
#if LCD_IO_MODE
|
||||
#define LCD_PORT PORTB //< port for the LCD lines
|
||||
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
|
||||
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
|
||||
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
|
||||
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
|
||||
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
|
||||
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
|
||||
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
|
||||
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
|
||||
#define LCD_RS_PORT LCD_PORT //< port for RS line
|
||||
#define LCD_RS_PIN 3 //< pin for RS line
|
||||
#define LCD_RW_PORT LCD_PORT //< port for RW line
|
||||
#define LCD_RW_PIN 2 //< pin for RW line
|
||||
#define LCD_E_PORT LCD_PORT //< port for Enable line
|
||||
#define LCD_E_PIN 1 //< pin for Enable line
|
||||
#endif
|
||||
*/
|
||||
|
426
keyboards/ep/96/info.json
Normal file
426
keyboards/ep/96/info.json
Normal file
@@ -0,0 +1,426 @@
|
||||
{
|
||||
"keyboard_name": "ep96",
|
||||
"maintainer": "e11i0t23",
|
||||
"width": 19,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 100,
|
||||
"layout": [{
|
||||
"label": "Esc",
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F1",
|
||||
"x": 1,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F2",
|
||||
"x": 2,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F3",
|
||||
"x": 3,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F4",
|
||||
"x": 4,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F5",
|
||||
"x": 5,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F6",
|
||||
"x": 6,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F7",
|
||||
"x": 7,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F8",
|
||||
"x": 8,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F9",
|
||||
"x": 9,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F10",
|
||||
"x": 10,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F11",
|
||||
"x": 11,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "F12",
|
||||
"x": 12,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "Prt Sc",
|
||||
"x": 13,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "Delete",
|
||||
"x": 14,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "home",
|
||||
"x": 15,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "Menu",
|
||||
"x": 16,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "Pg Up",
|
||||
"x": 17,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "Pg Dn",
|
||||
"x": 18,
|
||||
"y": 0
|
||||
}, {
|
||||
"label": "~",
|
||||
"x": 0,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "!",
|
||||
"x": 1,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "@",
|
||||
"x": 2,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "#",
|
||||
"x": 3,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "$",
|
||||
"x": 4,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "%",
|
||||
"x": 5,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "^",
|
||||
"x": 6,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "&",
|
||||
"x": 7,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "*",
|
||||
"x": 8,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "(",
|
||||
"x": 9,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": ")",
|
||||
"x": 10,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "_",
|
||||
"x": 11,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "+",
|
||||
"x": 12,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "Backspace",
|
||||
"x": 13,
|
||||
"y": 1,
|
||||
"w": 2
|
||||
}, {
|
||||
"label": "Num Lock",
|
||||
"x": 15,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "/",
|
||||
"x": 16,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "*",
|
||||
"x": 17,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "-",
|
||||
"x": 18,
|
||||
"y": 1
|
||||
}, {
|
||||
"label": "Tab",
|
||||
"x": 0,
|
||||
"y": 2,
|
||||
"w": 1.5
|
||||
}, {
|
||||
"label": "Q",
|
||||
"x": 1.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "W",
|
||||
"x": 2.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "E",
|
||||
"x": 3.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "R",
|
||||
"x": 4.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "T",
|
||||
"x": 5.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "Y",
|
||||
"x": 6.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "U",
|
||||
"x": 7.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "I",
|
||||
"x": 8.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "O",
|
||||
"x": 9.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "P",
|
||||
"x": 10.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "{",
|
||||
"x": 11.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "}",
|
||||
"x": 12.5,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "Enter",
|
||||
"x": 13.75,
|
||||
"y": 2,
|
||||
"w": 1.25,
|
||||
"h": 2
|
||||
}, {
|
||||
"label": "7",
|
||||
"x": 15,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "8",
|
||||
"x": 16,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "9",
|
||||
"x": 17,
|
||||
"y": 2
|
||||
}, {
|
||||
"label": "+",
|
||||
"x": 18,
|
||||
"y": 2,
|
||||
"h": 2
|
||||
}, {
|
||||
"label": "Caps Lock",
|
||||
"x": 0,
|
||||
"y": 3,
|
||||
"w": 1.75
|
||||
}, {
|
||||
"label": "A",
|
||||
"x": 1.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "S",
|
||||
"x": 2.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "D",
|
||||
"x": 3.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "F",
|
||||
"x": 4.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "G",
|
||||
"x": 5.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "H",
|
||||
"x": 6.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "J",
|
||||
"x": 7.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "K",
|
||||
"x": 8.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "L",
|
||||
"x": 9.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": ":",
|
||||
"x": 10.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "\"",
|
||||
"x": 11.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "~",
|
||||
"x": 12.75,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "4",
|
||||
"x": 15,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "5",
|
||||
"x": 16,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "6",
|
||||
"x": 17,
|
||||
"y": 3
|
||||
}, {
|
||||
"label": "Shift",
|
||||
"x": 0,
|
||||
"y": 4,
|
||||
"w": 1.25
|
||||
}, {
|
||||
"label": "|",
|
||||
"x": 1.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "Z",
|
||||
"x": 2.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "X",
|
||||
"x": 3.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "C",
|
||||
"x": 4.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "V",
|
||||
"x": 5.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "B",
|
||||
"x": 6.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "N",
|
||||
"x": 7.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "M",
|
||||
"x": 8.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "<",
|
||||
"x": 9.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": ">",
|
||||
"x": 10.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "?",
|
||||
"x": 11.25,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "Shift",
|
||||
"x": 12.25,
|
||||
"y": 4,
|
||||
"w": 1.75
|
||||
}, {
|
||||
"label": "\u2191",
|
||||
"x": 14,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "1",
|
||||
"x": 15,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "2",
|
||||
"x": 16,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "3",
|
||||
"x": 17,
|
||||
"y": 4
|
||||
}, {
|
||||
"label": "Enter",
|
||||
"x": 18,
|
||||
"y": 4,
|
||||
"h": 2
|
||||
}, {
|
||||
"label": "Ctrl",
|
||||
"x": 0,
|
||||
"y": 5,
|
||||
"w": 1.25
|
||||
}, {
|
||||
"label": "Win",
|
||||
"x": 1.25,
|
||||
"y": 5,
|
||||
"w": 1.25
|
||||
}, {
|
||||
"label": "Alt",
|
||||
"x": 2.5,
|
||||
"y": 5,
|
||||
"w": 1.25
|
||||
}, {
|
||||
"x": 3.75,
|
||||
"y": 5,
|
||||
"w": 6.25
|
||||
}, {
|
||||
"label": "Alt",
|
||||
"x": 10,
|
||||
"y": 5,
|
||||
"w": 1.5
|
||||
}, {
|
||||
"label": "Crtl",
|
||||
"x": 11.5,
|
||||
"y": 5,
|
||||
"w": 1.5
|
||||
}, {
|
||||
"label": "\u2190",
|
||||
"x": 13,
|
||||
"y": 5
|
||||
}, {
|
||||
"label": "\u2193",
|
||||
"x": 14,
|
||||
"y": 5
|
||||
}, {
|
||||
"label": "\u2192",
|
||||
"x": 15,
|
||||
"y": 5
|
||||
}, {
|
||||
"label": "0",
|
||||
"x": 16,
|
||||
"y": 5
|
||||
}, {
|
||||
"label": ".",
|
||||
"x": 17,
|
||||
"y": 5
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
67
keyboards/ep/96/keymaps/default/keymap.c
Normal file
67
keyboards/ep/96/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,67 @@
|
||||
/* Copyright 2018 Elliot Powell
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKBEST = SAFE_RANGE,
|
||||
QMKURL
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT( /* Base */
|
||||
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_DEL, KC_HOME, KC_END, KC_PGUP, KC_PGDN, \
|
||||
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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
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_P7, KC_P8, KC_P9, \
|
||||
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_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, \
|
||||
KC_LSFT, KC_BSLS, 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_P1, KC_P2, KC_P3, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT \
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QMKBEST:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKBEST is pressed
|
||||
SEND_STRING("QMK is the best thing ever!");
|
||||
} else {
|
||||
// when keycode QMKBEST is released
|
||||
}
|
||||
break;
|
||||
case QMKURL:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKURL is pressed
|
||||
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
||||
} else {
|
||||
// when keycode QMKURL is released
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/ep/96/keymaps/default/readme.md
Normal file
1
keyboards/ep/96/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for ep96
|
15
keyboards/ep/96/readme.md
Normal file
15
keyboards/ep/96/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# ep96
|
||||
|
||||

|
||||
|
||||
A simple 96 key keyboard
|
||||
|
||||
Keyboard Maintainer: Keyboard Maintainer: [Elliot Powell](https://github.com/e11i0t23), [/u/e11i0t23](https://reddit.com/u/e11i0t23)
|
||||
Hardware Supported: EP96 PCB
|
||||
Hardware Availability: Possible availability upon request
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ep/96:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
81
keyboards/ep/96/rules.mk
Normal file
81
keyboards/ep/96/rules.mk
Normal file
@@ -0,0 +1,81 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1286
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
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
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
@@ -6,8 +6,7 @@
|
||||
#define MDIA 2 // media keys
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
EPRM,
|
||||
EPRM = SAFE_RANGE,
|
||||
VRSN,
|
||||
RGB_SLD
|
||||
};
|
||||
@@ -145,47 +144,21 @@ const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
eeconfig_init();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case EPRM:
|
||||
if (record->event.pressed) {
|
||||
if (record->event.pressed) {
|
||||
switch (keycode) {
|
||||
case EPRM:
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case VRSN:
|
||||
if (record->event.pressed) {
|
||||
return false;
|
||||
case VRSN:
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
return false;
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
case RGB_SLD:
|
||||
rgblight_mode(1);
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -197,11 +170,6 @@ void matrix_init_user(void) {
|
||||
#endif
|
||||
};
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
};
|
||||
|
||||
// Runs whenever there is a layer state change.
|
||||
uint32_t layer_state_set_user(uint32_t state) {
|
||||
ergodox_board_led_off();
|
||||
|
88
keyboards/espectro/keymaps/iso/keymap.c
Executable file
88
keyboards/espectro/keymaps/iso/keymap.c
Executable file
@@ -0,0 +1,88 @@
|
||||
/* Copyright 2018 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
|
||||
*
|
||||
* 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
|
||||
|
||||
#define _BL 0 //Base layer
|
||||
#define _FN1 1 //Function layer
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* BL
|
||||
____________________________________________________________________________________________________________________________________________________________________________
|
||||
| | | | | | | | | | | | | | | | | | | |
|
||||
| ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | P SCN | HOME | END | P UP | P DOWN |
|
||||
|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|
|
||||
| ` | | | | | | | | | | | | | BACK | NUM | | | |
|
||||
| ¬ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | _ - | = + | SPACE | LOCK | / | * | - |
|
||||
|________|________|________|________|________|________|________|________|________|________|________|________|________|_________________|________|________|________|________|
|
||||
| | | | | | | | | | | | [ | ] | | | | | |
|
||||
| TAB | Q | W | E | R | T | Y | U | I | O | P | { | } | | 7 | 8 | 9 | |
|
||||
|____________|________|________|________|________|________|________|________|________|________|________|________|________|__ ENTER |________|________|________| + |
|
||||
| | | | | | | | | | | ; | ' | # | | | | | |
|
||||
| CAPS LOCK | A | S | D | F | G | H | J | K | L | : | @ | ~ | | 4 | 5 | 6 | |
|
||||
|______________|________|________|________|________|________|________|________|________|________|________|________|________|___________|________|________|________|________|
|
||||
| | \ | | | | | | | | , | . | / | | | | | | |
|
||||
| SHIFT | | | Z | X | C | V | B | N | M | < | > | ? | SHIFT | UP | 1 | 2 | 3 | |
|
||||
|__________|_______|________|________|________|________|________|________|________|________|________|________|________________|________|________|________|________| ENTER |
|
||||
| | | | | | | MO | | | | | | |
|
||||
| CTRL | LGUI | L ALT | SPACE | R ALT | R CTRL | _FN | LEFT | DOWN | RIGHT | 0 | . | |
|
||||
|__________|__________|__________|________________________________________________________|________|________|________|________|________|________|________|________|________|
|
||||
*/
|
||||
|
||||
[_BL] = LAYOUT_split_shift_and_bs(
|
||||
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_DEL, KC_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN,
|
||||
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_NO, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
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_NUHS, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
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_NO, KC_P4, KC_P5, KC_P6,
|
||||
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_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_NO
|
||||
),
|
||||
|
||||
/* FN_1
|
||||
____________________________________________________________________________________________________________________________________________________________________________
|
||||
| | | | | | | | | | | | | | | VOL | VOL | NEXT | | |
|
||||
| RESET | | | | | | | | | | | | | MUTE | DOWN | UP | TRACK | HOME | END |
|
||||
|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|________|
|
||||
| | RGB | RGB | RGB | RGB | RGB | RGB | RGB | RGB | | | | | | | | | |
|
||||
| | TOGGLE | MODE |INCREASE|DECREASE| HUE | HUE | SAT | | | | | | DELETE | | | | |
|
||||
|________|________|________|________|________|INCREASE|DECREASE|INCREASE|DECREASE|________|________|________|________|_________________|________|________|________|________|
|
||||
| | BACK | BACK | | | | | | | | | | | | | | | |
|
||||
| | LIGHT | LIGHT | | | | | | | | | | | | | | | |
|
||||
|____________| TOGGLE |INCREASE|DECREASE|________|________|________|________|________|________|________|________|________|__ |________|________|________| |
|
||||
| | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | |
|
||||
|______________|________|________|________|________|________|________|________|________|________|________|________|________|___________|________|________|________|________|
|
||||
| | | | | | | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | | | | | | |
|
||||
|__________|_______|________|________|________|________|________|________|________|________|________|________|________________|________|________|________|________| |
|
||||
| | | | | | | | | | | | | |
|
||||
| | | | | | | | | | | | | |
|
||||
|__________|__________|__________|________________________________________________________|________|________|________|________|________|________|________|________|________|
|
||||
*/
|
||||
|
||||
[_FN1] = LAYOUT_split_shift_and_bs(
|
||||
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_HOME, KC_END,
|
||||
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______,
|
||||
_______, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
@@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter |
|
||||
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------'
|
||||
* | GUI | Ctrl |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI |
|
||||
* | GUI | Alt |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI |
|
||||
* `---------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT( \
|
||||
@@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter |
|
||||
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------'
|
||||
* | GUI | Ctrl |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI |
|
||||
* | GUI | Alt |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI |
|
||||
* `---------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT( \
|
||||
@@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter |
|
||||
* `-------------+------+------+------+------+------+------+------+------+------+------+-------------'
|
||||
* | GUI | Ctrl |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI |
|
||||
* | GUI | Alt |Lower |Space | Ctrl |Enter |Space |Raise | Alt | GUI |
|
||||
* `---------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT( \
|
||||
|
@@ -10,4 +10,34 @@
|
||||
#include <avr/io.h>
|
||||
#include <stddef.h>
|
||||
|
||||
// This is the 21-key keypad to 4x6 element matrix mapping
|
||||
#define LAYOUT( \
|
||||
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
|
||||
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
|
||||
KM___7, KM___8, KM___9, KM_EQU, \
|
||||
KM___4, KM___5, KM___6, KM_PLS, \
|
||||
KM___1, KM___2, KM___3, ___ENT, \
|
||||
KM___0, _____0, KM_DOT, KM_ENT \
|
||||
) { \
|
||||
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \
|
||||
{ KM_NUM, KM_FSL, KM_AST, KM_MIN }, \
|
||||
{ KM___7, KM___8, KM___9, KM_EQU }, \
|
||||
{ KM___4, KM___5, KM___6, KM_PLS }, \
|
||||
{ KM___1, KM___2, KM___3, KC_NO }, \
|
||||
{ KM___0, KC_NO, KM_DOT, KM_ENT } \
|
||||
}
|
||||
|
||||
// This is the 21-key keypad to 2x11 element matrix mapping
|
||||
#define LAYOUT_pad21( \
|
||||
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
|
||||
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
|
||||
KM___7, KM___8, KM___9, \
|
||||
KM___4, KM___5, KM___6, KM_PLS, \
|
||||
KM___1, KM___2, KM___3, \
|
||||
KM___0, KM_DOT, KM_ENT \
|
||||
) { \
|
||||
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \
|
||||
{ KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
62
keyboards/handwired/arrow_pad/info.json
Normal file
62
keyboards/handwired/arrow_pad/info.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"keyboard_name": "arrow_pad",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 4,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"KM_ESC", "x":0, "y":0},
|
||||
{"label":"KM_TAB", "x":1, "y":0},
|
||||
{"label":"KM_BSL", "x":2, "y":0},
|
||||
{"label":"KM_ARR", "x":3, "y":0},
|
||||
{"label":"KM_NUM", "x":0, "y":1},
|
||||
{"label":"KM_FSL", "x":1, "y":1},
|
||||
{"label":"KM_AST", "x":2, "y":1},
|
||||
{"label":"KM_MIN", "x":3, "y":1},
|
||||
{"label":"KM___7", "x":0, "y":2},
|
||||
{"label":"KM___8", "x":1, "y":2},
|
||||
{"label":"KM___9", "x":2, "y":2},
|
||||
{"label":"KM_EQU", "x":3, "y":2},
|
||||
{"label":"KM___4", "x":0, "y":3},
|
||||
{"label":"KM___5", "x":1, "y":3},
|
||||
{"label":"KM___6", "x":2, "y":3},
|
||||
{"label":"KM_PLS", "x":3, "y":3},
|
||||
{"label":"KM___1", "x":0, "y":4},
|
||||
{"label":"KM___2", "x":1, "y":4},
|
||||
{"label":"KM___3", "x":2, "y":4},
|
||||
{"label":"___ENT", "x":3, "y":4},
|
||||
{"label":"KM___0", "x":0, "y":5},
|
||||
{"label":"_____0", "x":1, "y":5},
|
||||
{"label":"KM_DOT", "x":2, "y":5},
|
||||
{"label":"KM_ENT", "x":3, "y":5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_pad21": {
|
||||
"layout": [
|
||||
{"label":"KM_ESC", "x":0, "y":0},
|
||||
{"label":"KM_TAB", "x":1, "y":0},
|
||||
{"label":"KM_BSL", "x":2, "y":0},
|
||||
{"label":"KM_ARR", "x":3, "y":0},
|
||||
{"label":"KM_NUM", "x":0, "y":1},
|
||||
{"label":"KM_FSL", "x":1, "y":1},
|
||||
{"label":"KM_AST", "x":2, "y":1},
|
||||
{"label":"KM_MIN", "x":3, "y":1},
|
||||
{"label":"KM___7", "x":0, "y":2},
|
||||
{"label":"KM___8", "x":1, "y":2},
|
||||
{"label":"KM___9", "x":2, "y":2},
|
||||
{"label":"KM___4", "x":0, "y":3},
|
||||
{"label":"KM___5", "x":1, "y":3},
|
||||
{"label":"KM___6", "x":2, "y":3},
|
||||
{"label":"KM_PLS", "x":3, "y":2, "h":2},
|
||||
{"label":"KM___1", "x":0, "y":4},
|
||||
{"label":"KM___2", "x":1, "y":4},
|
||||
{"label":"KM___3", "x":2, "y":4},
|
||||
{"label":"KM___0", "x":0, "y":5, "w":2},
|
||||
{"label":"KM_DOT", "x":2, "y":5},
|
||||
{"label":"KM_ENT", "x":3, "y":4, "h":2}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,35 +1,18 @@
|
||||
|
||||
#include "arrow_pad.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "led.h"
|
||||
|
||||
// This is the 21-key keypad to 2x11 element matrix mapping
|
||||
#define LAYOUT( \
|
||||
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
|
||||
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
|
||||
KM___7, KM___8, KM___9, KM_EQU, \
|
||||
KM___4, KM___5, KM___6, KM_PLS, \
|
||||
KM___1, KM___2, KM___3, ___ENT, \
|
||||
KM___0, _____0, KM_DOT, KM_ENT \
|
||||
) { \
|
||||
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \
|
||||
{ KM_NUM, KM_FSL, KM_AST, KM_MIN }, \
|
||||
{ KM___7, KM___8, KM___9, KM_EQU }, \
|
||||
{ KM___4, KM___5, KM___6, KM_PLS }, \
|
||||
{ KM___1, KM___2, KM___3, KC_NO }, \
|
||||
{ KM___0, KC_NO, KM_DOT, KM_ENT } \
|
||||
}
|
||||
enum layers {
|
||||
LAYER_BASE,
|
||||
LAYER_EDIT,
|
||||
LAYER_FUNCTION
|
||||
};
|
||||
|
||||
#define LAYER_BASE 0
|
||||
#define LAYER_EDIT 1
|
||||
#define LAYER_FUNCTION 2
|
||||
|
||||
#define MACRO_COPY_CUT 0
|
||||
#define MACRO_SHIFT_CONTROL 1
|
||||
#define MACRO_CONTROL_ALT 2
|
||||
|
||||
#define M_COPY KC_FN5
|
||||
#define M_SHFCT KC_FN6
|
||||
#define M_CTALT KC_FN7
|
||||
enum custom_keycodes {
|
||||
M_COPY = SAFE_RANGE, // KC_FN5: MACRO_COPY_CUT
|
||||
M_SHFCT, // KC_FN6: MACRO_SHIFT_CONTROL
|
||||
M_CTALT // KC_FN7: MACRO_CONTROL_ALT
|
||||
};
|
||||
|
||||
#define SC_UNDO LCTL(KC_Z)
|
||||
#define SC_REDO LCTL(KC_Y)
|
||||
@@ -42,13 +25,10 @@
|
||||
#define SC_ACLS LALT(KC_F4)
|
||||
#define SC_CCLS LCTL(KC_F4)
|
||||
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[LAYER_BASE] = LAYOUT( \
|
||||
KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \
|
||||
KC_ESC, KC_TAB, KC_BSLS, MO(2), \
|
||||
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
KC_P7, KC_P8, KC_P9, KC_PEQL, \
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS, \
|
||||
@@ -57,15 +37,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[LAYER_EDIT] = LAYOUT( \
|
||||
KC_ESC, KC_TAB, KC_SPC, _______, \
|
||||
KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \
|
||||
TG(1), SC_PSTE, SC_REDO, SC_UNDO, \
|
||||
KC_HOME, KC_UP, KC_PGUP, KC_LALT, \
|
||||
KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \
|
||||
KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \
|
||||
KC_BSPC, KC_PENT, KC_DEL, M_SHFCT),
|
||||
KC_BSPC, KC_PENT, KC_DEL, M_SHFCT ),
|
||||
|
||||
[LAYER_FUNCTION] = LAYOUT( \
|
||||
KC_FN2, KC_FN3, KC_FN4, _______, \
|
||||
KC_FN1, _______, _______, _______, \
|
||||
BL_TOGG, BL_INC, BL_DEC, _______, \
|
||||
TG(1), _______, _______, _______, \
|
||||
_______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, \
|
||||
_______, _______, _______, XXXXXXX, \
|
||||
@@ -74,68 +54,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION),
|
||||
[1] = ACTION_LAYER_TOGGLE(LAYER_EDIT),
|
||||
[2] = ACTION_BACKLIGHT_TOGGLE(),
|
||||
[3] = ACTION_BACKLIGHT_INCREASE(),
|
||||
[4] = ACTION_BACKLIGHT_DECREASE(),
|
||||
[5] = ACTION_MACRO_TAP(MACRO_COPY_CUT),
|
||||
[6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL),
|
||||
[7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT),
|
||||
|
||||
};
|
||||
|
||||
|
||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t * record) {
|
||||
// MACRODOWN only works in this function
|
||||
switch (id) {
|
||||
switch (keycode) {
|
||||
|
||||
case MACRO_COPY_CUT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
if (record->tap.count == 1) {
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
}
|
||||
else if (record->tap.count == 2) {
|
||||
register_code(KC_X);
|
||||
unregister_code(KC_X);
|
||||
}
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_SHIFT_CONTROL:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT));
|
||||
if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count == 3) register_code(KC_PENT);;
|
||||
}
|
||||
else {
|
||||
unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL));
|
||||
unregister_code(KC_PENT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_CONTROL_ALT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT));
|
||||
}
|
||||
else {
|
||||
unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT));
|
||||
}
|
||||
break;
|
||||
case M_COPY:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
if (record->tap.count == 1) {
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
} else if (record->tap.count == 2) {
|
||||
register_code(KC_X);
|
||||
unregister_code(KC_X);
|
||||
}
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
return MACRO_NONE;
|
||||
case M_SHFCT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT));
|
||||
if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count == 3) register_code(KC_PENT);;
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL));
|
||||
unregister_code(KC_PENT);
|
||||
}
|
||||
break;
|
||||
|
||||
case M_CTALT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT));
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led)
|
||||
|
@@ -1,32 +1,18 @@
|
||||
|
||||
#include "arrow_pad.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "led.h"
|
||||
|
||||
// This is the 21-key keypad to 2x11 element matrix mapping
|
||||
#define LAYOUT( \
|
||||
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
|
||||
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
|
||||
KM___7, KM___8, KM___9, ___PLS, \
|
||||
KM___4, KM___5, KM___6, KM_PLS, \
|
||||
KM___1, KM___2, KM___3, ___ENT, \
|
||||
KM___0, _____0, KM_DOT, KM_ENT \
|
||||
) { \
|
||||
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \
|
||||
{ KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \
|
||||
}
|
||||
enum layers {
|
||||
LAYER_BASE,
|
||||
LAYER_EDIT,
|
||||
LAYER_FUNCTION
|
||||
};
|
||||
|
||||
|
||||
#define LAYER_BASE 0
|
||||
#define LAYER_EDIT 1
|
||||
#define LAYER_FUNCTION 2
|
||||
|
||||
#define MACRO_COPY_CUT 0
|
||||
#define MACRO_SHIFT_CONTROL 1
|
||||
#define MACRO_CONTROL_ALT 2
|
||||
|
||||
#define M_COPY KC_FN5
|
||||
#define M_SHFCT KC_FN6
|
||||
#define M_CTALT KC_FN7
|
||||
enum custom_keycodes {
|
||||
M_COPY = SAFE_RANGE, // KC_FN5: MACRO_COPY_CUT
|
||||
M_SHFCT, // KC_FN6: MACRO_SHIFT_CONTROL
|
||||
M_CTALT // KC_FN7: MACRO_CONTROL_ALT
|
||||
};
|
||||
|
||||
#define SC_UNDO LCTL(KC_Z)
|
||||
#define SC_REDO LCTL(KC_Y)
|
||||
@@ -39,100 +25,75 @@
|
||||
#define SC_ACLS LALT(KC_F4)
|
||||
#define SC_CCLS LCTL(KC_F4)
|
||||
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[LAYER_BASE] = LAYOUT( \
|
||||
KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \
|
||||
[LAYER_BASE] = LAYOUT_pad21( \
|
||||
KC_ESC, KC_TAB, KC_BSLS, MO(2), \
|
||||
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
KC_P7, KC_P8, KC_P9, XXXXXXX, \
|
||||
KC_P7, KC_P8, KC_P9, \
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS, \
|
||||
KC_P1, KC_P2, KC_P3, XXXXXXX, \
|
||||
KC_P0, XXXXXXX, KC_PDOT, KC_PENT ),
|
||||
KC_P1, KC_P2, KC_P3, \
|
||||
KC_P0, KC_PDOT, KC_PENT ),
|
||||
|
||||
[LAYER_EDIT] = LAYOUT( \
|
||||
[LAYER_EDIT] = LAYOUT_pad21( \
|
||||
KC_ESC, KC_TAB, KC_SPC, _______, \
|
||||
KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \
|
||||
KC_HOME, KC_UP, KC_PGUP, XXXXXXX, \
|
||||
TG(1), SC_PSTE, SC_REDO, SC_UNDO, \
|
||||
KC_HOME, KC_UP, KC_PGUP, \
|
||||
KC_LEFT, M_COPY, KC_RGHT, M_CTALT, \
|
||||
KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \
|
||||
KC_BSPC, XXXXXXX, KC_DEL, M_SHFCT),
|
||||
KC_END, KC_DOWN, KC_PGDN, \
|
||||
KC_BSPC, KC_DEL, M_SHFCT),
|
||||
|
||||
[LAYER_FUNCTION] = LAYOUT( \
|
||||
KC_FN2, KC_FN3, KC_FN4, _______, \
|
||||
KC_FN1, _______, _______, _______, \
|
||||
_______, _______, _______, XXXXXXX, \
|
||||
[LAYER_FUNCTION] = LAYOUT_pad21( \
|
||||
BL_TOGG, BL_INC, BL_DEC, _______, \
|
||||
TG(1), _______, _______, _______, \
|
||||
_______, _______, _______, \
|
||||
_______, _______, _______, _______, \
|
||||
_______, _______, _______, XXXXXXX, \
|
||||
RESET, XXXXXXX, _______, _______ ),
|
||||
_______, _______, _______, \
|
||||
RESET, _______, _______ ),
|
||||
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION),
|
||||
[1] = ACTION_LAYER_TOGGLE(LAYER_EDIT),
|
||||
[2] = ACTION_BACKLIGHT_TOGGLE(),
|
||||
[3] = ACTION_BACKLIGHT_INCREASE(),
|
||||
[4] = ACTION_BACKLIGHT_DECREASE(),
|
||||
[5] = ACTION_MACRO_TAP(MACRO_COPY_CUT),
|
||||
[6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL),
|
||||
[7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT),
|
||||
|
||||
};
|
||||
|
||||
|
||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t * record) {
|
||||
// MACRODOWN only works in this function
|
||||
switch (id) {
|
||||
switch (keycode) {
|
||||
|
||||
case MACRO_COPY_CUT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
if (record->tap.count == 1) {
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
}
|
||||
else if (record->tap.count == 2) {
|
||||
register_code(KC_X);
|
||||
unregister_code(KC_X);
|
||||
}
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_SHIFT_CONTROL:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT));
|
||||
if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count == 3) register_code(KC_PENT);;
|
||||
}
|
||||
else {
|
||||
unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL));
|
||||
unregister_code(KC_PENT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_CONTROL_ALT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT));
|
||||
}
|
||||
else {
|
||||
unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT));
|
||||
}
|
||||
break;
|
||||
case M_COPY:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
if (record->tap.count == 1) {
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
} else if (record->tap.count == 2) {
|
||||
register_code(KC_X);
|
||||
unregister_code(KC_X);
|
||||
}
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
return MACRO_NONE;
|
||||
case M_SHFCT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT));
|
||||
if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count == 3) register_code(KC_PENT);;
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL));
|
||||
unregister_code(KC_PENT);
|
||||
}
|
||||
break;
|
||||
|
||||
case M_CTALT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT));
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led)
|
||||
|
@@ -1,35 +1,18 @@
|
||||
|
||||
#include "arrow_pad.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "led.h"
|
||||
|
||||
// This is the 21-key keypad to 2x11 element matrix mapping
|
||||
#define LAYOUT( \
|
||||
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
|
||||
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
|
||||
KM___7, KM___8, KM___9, KM_EQU, \
|
||||
KM___4, KM___5, KM___6, KM_PLS, \
|
||||
KM___1, KM___2, KM___3, ___ENT, \
|
||||
KM___0, _____0, KM_DOT, KM_ENT \
|
||||
) { \
|
||||
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \
|
||||
{ KM_NUM, KM_FSL, KM_AST, KM_MIN }, \
|
||||
{ KM___7, KM___8, KM___9, KM_EQU }, \
|
||||
{ KM___4, KM___5, KM___6, KM_PLS }, \
|
||||
{ KM___1, KM___2, KM___3, KC_NO }, \
|
||||
{ KM___0, KC_NO, KM_DOT, KM_ENT } \
|
||||
}
|
||||
enum layers {
|
||||
LAYER_BASE,
|
||||
LAYER_EDIT,
|
||||
LAYER_FUNCTION
|
||||
};
|
||||
|
||||
#define LAYER_BASE 0
|
||||
#define LAYER_EDIT 1
|
||||
#define LAYER_FUNCTION 2
|
||||
|
||||
#define MACRO_COPY_CUT 0
|
||||
#define MACRO_SHIFT_CONTROL 1
|
||||
#define MACRO_CONTROL_ALT 2
|
||||
|
||||
#define M_COPY KC_FN5
|
||||
#define M_SHFCT KC_FN6
|
||||
#define M_CTALT KC_FN7
|
||||
enum custom_keycodes {
|
||||
M_COPY = SAFE_RANGE, // KC_FN5: MACRO_COPY_CUT
|
||||
M_SHFCT, // KC_FN6: MACRO_SHIFT_CONTROL
|
||||
M_CTALT // KC_FN7: MACRO_CONTROL_ALT
|
||||
};
|
||||
|
||||
#define SC_UNDO LCTL(KC_Z)
|
||||
#define SC_REDO LCTL(KC_Y)
|
||||
@@ -42,13 +25,10 @@
|
||||
#define SC_ACLS LALT(KC_F4)
|
||||
#define SC_CCLS LCTL(KC_F4)
|
||||
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[LAYER_BASE] = LAYOUT( \
|
||||
KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \
|
||||
KC_ESC, KC_TAB, KC_BSLS, MO(2), \
|
||||
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
KC_P7, KC_P8, KC_P9, KC_PEQL, \
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS, \
|
||||
@@ -57,15 +37,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[LAYER_EDIT] = LAYOUT( \
|
||||
KC_ESC, KC_TAB, KC_SPC, _______, \
|
||||
KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \
|
||||
TG(1), SC_PSTE, SC_REDO, SC_UNDO, \
|
||||
KC_HOME, KC_UP, KC_PGUP, KC_LALT, \
|
||||
KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \
|
||||
KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \
|
||||
KC_BSPC, KC_PENT, KC_DEL, M_SHFCT),
|
||||
KC_BSPC, KC_PENT, KC_DEL, M_SHFCT ),
|
||||
|
||||
[LAYER_FUNCTION] = LAYOUT( \
|
||||
KC_FN2, KC_FN3, KC_FN4, _______, \
|
||||
KC_FN1, _______, _______, _______, \
|
||||
BL_TOGG, BL_INC, BL_DEC, _______, \
|
||||
TG(1), _______, _______, _______, \
|
||||
_______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, \
|
||||
_______, _______, _______, XXXXXXX, \
|
||||
@@ -74,68 +54,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION),
|
||||
[1] = ACTION_LAYER_TOGGLE(LAYER_EDIT),
|
||||
[2] = ACTION_BACKLIGHT_TOGGLE(),
|
||||
[3] = ACTION_BACKLIGHT_INCREASE(),
|
||||
[4] = ACTION_BACKLIGHT_DECREASE(),
|
||||
[5] = ACTION_MACRO_TAP(MACRO_COPY_CUT),
|
||||
[6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL),
|
||||
[7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT),
|
||||
|
||||
};
|
||||
|
||||
|
||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t * record) {
|
||||
// MACRODOWN only works in this function
|
||||
switch (id) {
|
||||
switch (keycode) {
|
||||
|
||||
case MACRO_COPY_CUT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
if (record->tap.count == 1) {
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
}
|
||||
else if (record->tap.count == 2) {
|
||||
register_code(KC_X);
|
||||
unregister_code(KC_X);
|
||||
}
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_SHIFT_CONTROL:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT));
|
||||
if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count == 3) register_code(KC_PENT);;
|
||||
}
|
||||
else {
|
||||
unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL));
|
||||
unregister_code(KC_PENT);
|
||||
}
|
||||
break;
|
||||
|
||||
case MACRO_CONTROL_ALT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT));
|
||||
}
|
||||
else {
|
||||
unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT));
|
||||
}
|
||||
break;
|
||||
case M_COPY:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
if (record->tap.count == 1) {
|
||||
register_code(KC_C);
|
||||
unregister_code(KC_C);
|
||||
} else if (record->tap.count == 2) {
|
||||
register_code(KC_X);
|
||||
unregister_code(KC_X);
|
||||
}
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
return MACRO_NONE;
|
||||
case M_SHFCT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT));
|
||||
if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count == 3) register_code(KC_PENT);;
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL));
|
||||
unregister_code(KC_PENT);
|
||||
}
|
||||
break;
|
||||
|
||||
case M_CTALT:
|
||||
if (record->event.pressed) {
|
||||
if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL));
|
||||
if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT));
|
||||
} else {
|
||||
unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led)
|
||||
|
@@ -94,13 +94,13 @@ More info can be found on [GeekHack](https://geekhack.org/index.php?topic=73632.
|
||||
The second ArrowPad was a conversion from a 21-key Genovation keypad. It used a 2 row x 11 column matrix.
|
||||
|
||||
```
|
||||
#define KEYMAP( \
|
||||
#define LAYOUT_pad21( \
|
||||
KM_ESC, KM_TAB, KM_BSL, KM_ARR, \
|
||||
KM_NUM, KM_FSL, KM_AST, KM_MIN, \
|
||||
KM___7, KM___8, KM___9, ___PLS, \
|
||||
KM___7, KM___8, KM___9, \
|
||||
KM___4, KM___5, KM___6, KM_PLS, \
|
||||
KM___1, KM___2, KM___3, ___ENT, \
|
||||
KM___0, _____0, KM_DOT, KM_ENT \
|
||||
KM___1, KM___2, KM___3, \
|
||||
KM___0, KM_DOT, KM_ENT \
|
||||
) { \
|
||||
{ KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \
|
||||
{ KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \
|
||||
@@ -119,7 +119,7 @@ Download or clone the whole firmware and navigate to the keyboards/arrow_pad fol
|
||||
Depending on which keymap you would like to use, you will have to compile slightly differently.
|
||||
|
||||
### Default
|
||||
To build with the default keymap, simply run `make default`.
|
||||
To build with the default keymap, simply run `make handwired/arrow_pad:default`.
|
||||
|
||||
### Other Keymaps
|
||||
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files.
|
||||
@@ -127,7 +127,7 @@ Several version of keymap are available in advance but you are recommended to de
|
||||
To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
|
||||
|
||||
```
|
||||
$ make [default|pad_21|pad_24|<name>]
|
||||
$ make handwired/arrow_pad:[default|pad_21|pad_24|<name>]
|
||||
```
|
||||
|
||||
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
// The first section contains all of the arguements
|
||||
// The second converts the arguments into a two-dimensional array
|
||||
#define KEYMAP( \
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
@@ -18,7 +18,7 @@
|
||||
{ k30, k31, k32, k33, k34, k35, km1, k36, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
|
||||
#define COMPACT_KEYMAP( \
|
||||
#define LAYOUT_kc( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||
|
70
keyboards/handwired/atreus50/info.json
Normal file
70
keyboards/handwired/atreus50/info.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"keyboard_name": "Atreus50",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 15,
|
||||
"height": 4.5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"Tab", "x":0, "y":0.5},
|
||||
{"label":"Q", "x":1, "y":0.5},
|
||||
{"label":"W", "x":2, "y":0.25},
|
||||
{"label":"E", "x":3, "y":0},
|
||||
{"label":"R", "x":4, "y":0.25},
|
||||
{"label":"T", "x":5, "y":0.5},
|
||||
|
||||
{"label":"Y", "x":9, "y":0.5},
|
||||
{"label":"U", "x":10, "y":0.25},
|
||||
{"label":"I", "x":11, "y":0},
|
||||
{"label":"O", "x":12, "y":0.25},
|
||||
{"label":"P", "x":13, "y":0.5},
|
||||
{"label":"-", "x":14, "y":0.5},
|
||||
|
||||
{"label":"Ctrl/Esc", "x":0, "y":1.5},
|
||||
{"label":"A", "x":1, "y":1.5},
|
||||
{"label":"S", "x":2, "y":1.25},
|
||||
{"label":"D", "x":3, "y":1},
|
||||
{"label":"F", "x":4, "y":1.25},
|
||||
{"label":"G", "x":5, "y":1.5},
|
||||
|
||||
{"label":"H", "x":9, "y":1.5},
|
||||
{"label":"J", "x":10, "y":1.25},
|
||||
{"label":"K", "x":11, "y":1},
|
||||
{"label":"L", "x":12, "y":1.25},
|
||||
{"label":";", "x":13, "y":1.5},
|
||||
{"label":"'", "x":14, "y":1.5},
|
||||
|
||||
{"label":"LShift", "x":0, "y":2.5},
|
||||
{"label":"Z", "x":1, "y":2.5},
|
||||
{"label":"X", "x":2, "y":2.25},
|
||||
{"label":"C", "x":3, "y":2},
|
||||
{"label":"V", "x":4, "y":2.25},
|
||||
{"label":"B", "x":5, "y":2.5},
|
||||
|
||||
{"label":"N", "x":9, "y":2.5},
|
||||
{"label":"M", "x":10, "y":2.25},
|
||||
{"label":",", "x":11, "y":2},
|
||||
{"label":".", "x":12, "y":2.25},
|
||||
{"label":"/", "x":13, "y":2.5},
|
||||
{"label":"Shift/Enter", "x":14, "y":2.5},
|
||||
|
||||
{"label":"`", "x":0, "y":3.5},
|
||||
{"label":"LCtrl", "x":1, "y":3.5},
|
||||
{"label":"LAlt", "x":2, "y":3.25},
|
||||
{"label":"LGUI", "x":3, "y":3},
|
||||
{"label":"Lower", "x":4, "y":3.25},
|
||||
{"label":"Space", "x":5, "y":3.5},
|
||||
{"label":"Fn", "x":6, "y":2.75, "h":1.5},
|
||||
|
||||
{"label":"RShift", "x":8, "y":2.75, "h":1.5},
|
||||
{"label":"Back Space", "x":9, "y":3.5},
|
||||
{"label":"Raise", "x":10, "y":3.25},
|
||||
{"label":"Left", "x":11, "y":3},
|
||||
{"label":"Down", "x":12, "y":3.25},
|
||||
{"label":"Up", "x":13, "y":3.5},
|
||||
{"label":"Right", "x":14, "y":3.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,4 @@
|
||||
#include "atreus50.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keymap_uk.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
@@ -37,10 +35,6 @@ enum planck_keycodes {
|
||||
|
||||
#include "dynamic_macro.h"
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
@@ -54,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP(
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
|
||||
MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) ,
|
||||
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,
|
||||
@@ -72,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Mouse | MENU | Alt | Ctrl | Fn |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = KEYMAP(
|
||||
[_FUNC] = LAYOUT(
|
||||
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,
|
||||
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
|
||||
@@ -90,7 +84,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = KEYMAP(
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,
|
||||
LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) ,
|
||||
KC_LSPO, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
|
||||
@@ -108,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | Mouse| | | | | Alt | Ctrl | Alt |Enter |Raise | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = KEYMAP(
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,
|
||||
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,
|
||||
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,
|
||||
@@ -126,11 +120,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP(
|
||||
[_ADJUST] = LAYOUT(
|
||||
M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,
|
||||
KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,
|
||||
TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Mouse
|
||||
@@ -144,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_MOUSE] = KEYMAP(
|
||||
[_MOUSE] = LAYOUT(
|
||||
KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ ,
|
||||
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ ,
|
||||
@@ -162,42 +156,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC2] = KEYMAP(
|
||||
[_FUNC2] = LAYOUT(
|
||||
_______, _______, M(1), _______, _______, _______, M(5), _______, _______, _______, _______, _______,
|
||||
_______, _______, M(3), M(7), _______, _______, _______, M(10), _______, _______, _______, _______,
|
||||
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M(98) ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MAC] = KEYMAP(
|
||||
[_MAC] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
MFNC, _______, _______, _______, MLWR, _______, _______, _______, _______, MRSE, _______, _______, _______, MFNC2
|
||||
),
|
||||
|
||||
[_MLWR] = KEYMAP(
|
||||
[_MLWR] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MRSE] = KEYMAP(
|
||||
[_MRSE] = LAYOUT(
|
||||
_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,
|
||||
_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MFNC] = KEYMAP(
|
||||
[_MFNC] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
[_MFNC2] = KEYMAP(
|
||||
[_MFNC2] = LAYOUT(
|
||||
_______, _______, M(2), _______, _______, _______, M(6), _______, _______, _______, _______, _______,
|
||||
_______, _______, M(4), M(8), _______, _______, _______, M(10), _______, _______, _______, _______,
|
||||
_______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M(99) ,
|
||||
|
@@ -1,9 +1,4 @@
|
||||
#include "atreus50.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// 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.
|
||||
@@ -28,86 +23,52 @@ enum custom_keycodes {
|
||||
};
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
#define KC_X0 MT(MOD_LCTL, KC_ESC) // Hold for Left Ctrl, Tap for ESC
|
||||
#define KC_X1 LOWER
|
||||
#define KC_X2 RAISE
|
||||
#define KC_X3 MO(_MOVEMENT)
|
||||
#define KC_X4 MT(MOD_LSFT, KC_ENT) // Hold for Left Shift, Tap for Enter
|
||||
#define X0 MT(MOD_LCTL, KC_ESC) // Hold for Left Ctrl, Tap for ESC
|
||||
#define X3 MO(_MOVEMENT)
|
||||
#define X4 MT(MOD_LSFT, KC_ENT) // Hold for Left Shift, Tap for Enter
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = COMPACT_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 ,
|
||||
//|----+----+----+----+----+----|----+----|----+----+----+----+----+----|
|
||||
GRV ,LCTL,LALT,LGUI, X1 ,SPC , X3 ,RSFT,BSPC, X2 ,LEFT,DOWN, UP ,RGHT
|
||||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----'
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
|
||||
X0, 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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, X4,
|
||||
KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, X3, KC_RSFT, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[_COLEMAK] = COMPACT_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
X0 , A , R , S , T , D , H , N , E , I , O ,QUOT,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 ,
|
||||
//|----+----+----+----+----+----|----+----|----+----+----+----+----+----|
|
||||
GRV ,LCTL,LALT,LGUI, X1 ,SPC , X3 ,RSFT,BSPC, X2 ,LEFT,DOWN, UP ,RGHT
|
||||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----'
|
||||
[_COLEMAK] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS,
|
||||
X0, 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_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, X4,
|
||||
KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, X3, KC_RSFT, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[_DVORAK] = COMPACT_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
X0 , A , O , E , U , I , D , H , T , N , S ,SLSH,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 ,
|
||||
//|----+----+----+----+----+----|----+----|----+----+----+----+----+----|
|
||||
GRV ,LCTL,LALT,LGUI, X1 ,SPC , X3 ,RSFT,BSPC, X2 ,LEFT,DOWN, UP ,RGHT
|
||||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----'
|
||||
[_DVORAK] = LAYOUT(
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_MINS,
|
||||
X0, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, X4,
|
||||
KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, X3, KC_RSFT, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
|
||||
[_LOWER] = COMPACT_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN,DEL ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
DEL , F1 , F2 , F3 , F4 , F5 , F6 ,UNDS,PLUS,LCBR,RCBR,PIPE,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, F7 , F8 , F9 ,F10 ,F11 , F12 ,END , , , , ,
|
||||
//|----+----+----+----+----+----|----+----|----+----+----+----+----+----|
|
||||
, , , , , , , , , ,MNXT,VOLD,VOLU,MPLY
|
||||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----'
|
||||
[_LOWER] = LAYOUT(
|
||||
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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_END, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
[_RAISE] = COMPACT_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,DEL ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
DEL , F1 , F2 , F3 , F4 , F5 , F6 ,MINS,EQL ,LBRC,RBRC,BSLS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, F7 , F8 , F9 ,F10 ,F11 , F12 ,NUHS,NUBS, , , ,
|
||||
//|----+----+----+----+----+----|----+----|----+----+----+----+----+----|
|
||||
, , , , , , , , , ,MNXT,VOLD,VOLU,MPLY
|
||||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----'
|
||||
[_RAISE] = LAYOUT(
|
||||
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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
[_MOVEMENT] = COMPACT_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR, UP ,LPRN,RPRN,DEL ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
DEL , F1 , F2 , F3 , F4 , F5 , F6 ,LEFT,DOWN,RGHT,RCBR,PIPE,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, F7 , F8 , F9 ,F10 ,F11 , F12 ,END , , , , ,
|
||||
//|----+----+----+----+----+----|----+----|----+----+----+----+----+----|
|
||||
, , , , , , , ,PGDN,PGUP,MNXT,VOLD,VOLU,MPLY
|
||||
//`----+----+----+----+----+----+----+----+----+----+----+----+----+----'
|
||||
[_MOVEMENT] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_UP, KC_LPRN, KC_RPRN, KC_DEL,
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCBR, KC_PIPE,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_END, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_PGUP, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
@@ -121,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP( \
|
||||
[_ADJUST] = LAYOUT( \
|
||||
_______, RESET, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, \
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \
|
||||
|
@@ -1,7 +1,9 @@
|
||||
Handwired Atreus50
|
||||
==================
|
||||
# Handwired Atreus50
|
||||
|
||||
This firmware is for a Handwired Atreus50 using an Arduino Pro Micro.
|
||||
This firmware is for a handwired Atreus50 using an Arduino Pro Micro.
|
||||
|
||||
Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
|
||||
Hardware Supported: Arduino Pro Micro
|
||||
|
||||
## Pinout
|
||||
|
||||
@@ -11,6 +13,12 @@ The following pins are used:
|
||||
|
||||
## Compiling and loading the firmware
|
||||
|
||||
To build the firmware, run `make`.
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
To flash the firemware onto the microcontroller, run `make avrdude`, and press the reset button.
|
||||
make handwired/atreus50:default
|
||||
|
||||
To flash the firmware onto the microcontroller, run `make avrdude`, and press the reset button.
|
||||
|
||||
make handwired/atreus50:default:avrdude
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
187
keyboards/handwired/bluepill/bluepill70/info.json
Normal file
187
keyboards/handwired/bluepill/bluepill70/info.json
Normal file
@@ -0,0 +1,187 @@
|
||||
{
|
||||
"keyboard_name": "BluePill 70",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 16,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT_seventy_ansi": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"F1", "x":1, "y":0},
|
||||
{"label":"F2", "x":2, "y":0},
|
||||
{"label":"F3", "x":3, "y":0},
|
||||
{"label":"F4", "x":4, "y":0},
|
||||
{"label":"F5", "x":5, "y":0},
|
||||
{"label":"F6", "x":6, "y":0},
|
||||
{"label":"F7", "x":7, "y":0},
|
||||
{"label":"F8", "x":8, "y":0},
|
||||
{"label":"F9", "x":9, "y":0},
|
||||
{"label":"F10", "x":10, "y":0},
|
||||
{"label":"F11", "x":11, "y":0},
|
||||
{"label":"F12", "x":12, "y":0},
|
||||
{"label":"Print Screen", "x":13, "y":0},
|
||||
{"label":"Home", "x":14, "y":0},
|
||||
{"label":"End", "x":15, "y":0},
|
||||
{"label":"`", "x":0, "y":1},
|
||||
{"label":"1", "x":1, "y":1},
|
||||
{"label":"2", "x":2, "y":1},
|
||||
{"label":"3", "x":3, "y":1},
|
||||
{"label":"4", "x":4, "y":1},
|
||||
{"label":"5", "x":5, "y":1},
|
||||
{"label":"6", "x":6, "y":1},
|
||||
{"label":"7", "x":7, "y":1},
|
||||
{"label":"8", "x":8, "y":1},
|
||||
{"label":"9", "x":9, "y":1},
|
||||
{"label":"0", "x":10, "y":1},
|
||||
{"label":"-", "x":11, "y":1},
|
||||
{"label":"=", "x":12, "y":1},
|
||||
{"label":"Backspace", "x":13, "y":1, "w":2},
|
||||
{"label":"Delete", "x":15, "y":1},
|
||||
{"label":"Tab", "x":0, "y":2, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":2},
|
||||
{"label":"W", "x":2.5, "y":2},
|
||||
{"label":"E", "x":3.5, "y":2},
|
||||
{"label":"R", "x":4.5, "y":2},
|
||||
{"label":"T", "x":5.5, "y":2},
|
||||
{"label":"Y", "x":6.5, "y":2},
|
||||
{"label":"U", "x":7.5, "y":2},
|
||||
{"label":"I", "x":8.5, "y":2},
|
||||
{"label":"O", "x":9.5, "y":2},
|
||||
{"label":"P", "x":10.5, "y":2},
|
||||
{"label":"[", "x":11.5, "y":2},
|
||||
{"label":"]", "x":12.5, "y":2},
|
||||
{"label":"Page Up", "x":15, "y":2},
|
||||
{"label":"Caps Lock", "x":0, "y":3, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":3},
|
||||
{"label":"S", "x":2.75, "y":3},
|
||||
{"label":"D", "x":3.75, "y":3},
|
||||
{"label":"F", "x":4.75, "y":3},
|
||||
{"label":"G", "x":5.75, "y":3},
|
||||
{"label":"H", "x":6.75, "y":3},
|
||||
{"label":"J", "x":7.75, "y":3},
|
||||
{"label":"K", "x":8.75, "y":3},
|
||||
{"label":"L", "x":9.75, "y":3},
|
||||
{"label":";", "x":10.75, "y":3},
|
||||
{"label":"'", "x":11.75, "y":3},
|
||||
{"label":"Enter", "x":12.75, "y":3, "w":2.25},
|
||||
{"label":"\\", "x":13.5, "y":2, "w":1.5},
|
||||
{"label":"Page Down", "x":15, "y":3},
|
||||
{"label":"Shift", "x":0, "y":4, "w":1.25},
|
||||
{"label":"ISO \\", "x":1.25, "y":4},
|
||||
{"label":"Z", "x":2.25, "y":4},
|
||||
{"label":"X", "x":3.25, "y":4},
|
||||
{"label":"C", "x":4.25, "y":4},
|
||||
{"label":"V", "x":5.25, "y":4},
|
||||
{"label":"B", "x":6.25, "y":4},
|
||||
{"label":"N", "x":7.25, "y":4},
|
||||
{"label":"M", "x":8.25, "y":4},
|
||||
{"label":",", "x":9.25, "y":4},
|
||||
{"label":".", "x":10.25, "y":4},
|
||||
{"label":"/", "x":11.25, "y":4},
|
||||
{"label":"Shift", "x":12.25, "y":4, "w":1.75},
|
||||
{"label":"Up", "x":14, "y":4},
|
||||
{"label":"TT(2)", "x":15, "y":4},
|
||||
{"label":"Ctrl", "x":0, "y":5, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":5, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":5, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":5, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":5},
|
||||
{"label":"Fn", "x":11, "y":5},
|
||||
{"label":"Ctrl", "x":12, "y":5},
|
||||
{"label":"Left", "x":13, "y":5},
|
||||
{"label":"Down", "x":14, "y":5},
|
||||
{"label":"Right", "x":15, "y":5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_seventy_iso": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"F1", "x":1, "y":0},
|
||||
{"label":"F2", "x":2, "y":0},
|
||||
{"label":"F3", "x":3, "y":0},
|
||||
{"label":"F4", "x":4, "y":0},
|
||||
{"label":"F5", "x":5, "y":0},
|
||||
{"label":"F6", "x":6, "y":0},
|
||||
{"label":"F7", "x":7, "y":0},
|
||||
{"label":"F8", "x":8, "y":0},
|
||||
{"label":"F9", "x":9, "y":0},
|
||||
{"label":"F10", "x":10, "y":0},
|
||||
{"label":"F11", "x":11, "y":0},
|
||||
{"label":"F12", "x":12, "y":0},
|
||||
{"label":"Print Screen", "x":13, "y":0},
|
||||
{"label":"Home", "x":14, "y":0},
|
||||
{"label":"End", "x":15, "y":0},
|
||||
{"label":"`", "x":0, "y":1},
|
||||
{"label":"1", "x":1, "y":1},
|
||||
{"label":"2", "x":2, "y":1},
|
||||
{"label":"3", "x":3, "y":1},
|
||||
{"label":"4", "x":4, "y":1},
|
||||
{"label":"5", "x":5, "y":1},
|
||||
{"label":"6", "x":6, "y":1},
|
||||
{"label":"7", "x":7, "y":1},
|
||||
{"label":"8", "x":8, "y":1},
|
||||
{"label":"9", "x":9, "y":1},
|
||||
{"label":"0", "x":10, "y":1},
|
||||
{"label":"-", "x":11, "y":1},
|
||||
{"label":"=", "x":12, "y":1},
|
||||
{"label":"Backspace", "x":13, "y":1, "w":2},
|
||||
{"label":"Delete", "x":15, "y":1},
|
||||
{"label":"Tab", "x":0, "y":2, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":2},
|
||||
{"label":"W", "x":2.5, "y":2},
|
||||
{"label":"E", "x":3.5, "y":2},
|
||||
{"label":"R", "x":4.5, "y":2},
|
||||
{"label":"T", "x":5.5, "y":2},
|
||||
{"label":"Y", "x":6.5, "y":2},
|
||||
{"label":"U", "x":7.5, "y":2},
|
||||
{"label":"I", "x":8.5, "y":2},
|
||||
{"label":"O", "x":9.5, "y":2},
|
||||
{"label":"P", "x":10.5, "y":2},
|
||||
{"label":"[", "x":11.5, "y":2},
|
||||
{"label":"]", "x":12.5, "y":2},
|
||||
{"label":"Page Up", "x":15, "y":2},
|
||||
{"label":"Caps Lock", "x":0, "y":3, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":3},
|
||||
{"label":"S", "x":2.75, "y":3},
|
||||
{"label":"D", "x":3.75, "y":3},
|
||||
{"label":"F", "x":4.75, "y":3},
|
||||
{"label":"G", "x":5.75, "y":3},
|
||||
{"label":"H", "x":6.75, "y":3},
|
||||
{"label":"J", "x":7.75, "y":3},
|
||||
{"label":"K", "x":8.75, "y":3},
|
||||
{"label":"L", "x":9.75, "y":3},
|
||||
{"label":";", "x":10.75, "y":3},
|
||||
{"label":",", "x":11.75, "y":3},
|
||||
{"label":"ISO #", "x":12.75, "y":3},
|
||||
{"label":"Enter", "x":13.75, "y":2, "w":1.25, "h":2},
|
||||
{"label":"Page Down", "x":15, "y":3},
|
||||
{"label":"Shift", "x":0, "y":4, "w":1.25},
|
||||
{"label":"ISO \\", "x":1.25, "y":4},
|
||||
{"label":"Z", "x":2.25, "y":4},
|
||||
{"label":"X", "x":3.25, "y":4},
|
||||
{"label":"C", "x":4.25, "y":4},
|
||||
{"label":"V", "x":5.25, "y":4},
|
||||
{"label":"B", "x":6.25, "y":4},
|
||||
{"label":"N", "x":7.25, "y":4},
|
||||
{"label":"M", "x":8.25, "y":4},
|
||||
{"label":",", "x":9.25, "y":4},
|
||||
{"label":".", "x":10.25, "y":4},
|
||||
{"label":"/", "x":11.25, "y":4},
|
||||
{"label":"Shift", "x":12.25, "y":4, "w":1.75},
|
||||
{"label":"Up", "x":14, "y":4},
|
||||
{"label":"TT(2)", "x":15, "y":4},
|
||||
{"label":"Ctrl", "x":0, "y":5, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":5, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":5, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":5, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":5},
|
||||
{"label":"Fn", "x":11, "y":5},
|
||||
{"label":"Ctrl", "x":12, "y":5},
|
||||
{"label":"Left", "x":13, "y":5},
|
||||
{"label":"Down", "x":14, "y":5},
|
||||
{"label":"Right", "x":15, "y":5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -3,15 +3,15 @@
|
||||
|
||||
Keyboards using a BluePill controller (generic Chinese STM32F103C8T6) and based on the [KC64 of Xydane](https://github.com/Xydane/qmk_firmware).
|
||||
|
||||
Keyboard Maintainer: [FPazos](https://github.com/fpazos), but I hope to leave the project in better hands.
|
||||
Hardware Supported: Bluepill STM32F103C8T6
|
||||
Keyboard Maintainer: [FPazos](https://github.com/fpazos), but I hope to leave the project in better hands.
|
||||
Hardware Supported: Bluepill STM32F103C8T6
|
||||
Hardware Availability: Everywhere
|
||||
|
||||
Make example for BluePill70 (after setting up your build environment):
|
||||
|
||||
make handwired/bluepill/bluepill70:default
|
||||
make handwired/bluepill/bluepill70:default
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
Read everything before using it.
|
||||
|
||||
@@ -47,14 +47,14 @@ That's the pinout;
|
||||
A4 LCT| WIN| ALT| ESPACE | ALG| FN | RCT| LEF| DOW| RIG
|
||||
|
||||
And the wiring:
|
||||
ISO
|
||||
ISO
|
||||

|
||||
ANSI
|
||||
ANSI
|
||||

|
||||
|
||||
It also uses:
|
||||
It also uses:
|
||||
PC13: Caps Lock led.
|
||||
|
||||
Backlight dual color leds, my version is for common anode that's more common, for leds with common anode just replace the palSetPad with palClearPad and viceversa.
|
||||
PA1: Backlight color A.
|
||||
PA0: Backlight color B.
|
||||
Backlight dual color leds, my version is for common anode that's more common, for leds with common anode just replace the palSetPad with palClearPad and viceversa.
|
||||
PA1: Backlight color A.
|
||||
PA0: Backlight color B.
|
||||
|
77
keyboards/handwired/ortho5x13/info.json
Normal file
77
keyboards/handwired/ortho5x13/info.json
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"keyboard_name": "ortho5x13",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 13,
|
||||
"height": 6,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"1", "x":1, "y":0},
|
||||
{"label":"2", "x":2, "y":0},
|
||||
{"label":"3", "x":3, "y":0},
|
||||
{"label":"4", "x":4, "y":0},
|
||||
{"label":"5", "x":5, "y":0},
|
||||
{"label":"6", "x":6, "y":0},
|
||||
{"label":"7", "x":7, "y":0},
|
||||
{"label":"8", "x":8, "y":0},
|
||||
{"label":"9", "x":9, "y":0},
|
||||
{"label":"0", "x":10, "y":0},
|
||||
{"label":"-", "x":11, "y":0},
|
||||
{"label":"=", "x":12, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1},
|
||||
{"label":"Q", "x":1, "y":1},
|
||||
{"label":"W", "x":2, "y":1},
|
||||
{"label":"E", "x":3, "y":1},
|
||||
{"label":"R", "x":4, "y":1},
|
||||
{"label":"T", "x":5, "y":1},
|
||||
{"label":"Y", "x":6, "y":1},
|
||||
{"label":"U", "x":7, "y":1},
|
||||
{"label":"I", "x":8, "y":1},
|
||||
{"label":"O", "x":9, "y":1},
|
||||
{"label":"P", "x":10, "y":1},
|
||||
{"label":"[", "x":11, "y":1},
|
||||
{"label":"]", "x":12, "y":1},
|
||||
{"label":"`", "x":0, "y":2},
|
||||
{"label":"A", "x":1, "y":2},
|
||||
{"label":"S", "x":2, "y":2},
|
||||
{"label":"D", "x":3, "y":2},
|
||||
{"label":"F", "x":4, "y":2},
|
||||
{"label":"G", "x":5, "y":2},
|
||||
{"label":"H", "x":6, "y":2},
|
||||
{"label":"J", "x":7, "y":2},
|
||||
{"label":"K", "x":8, "y":2},
|
||||
{"label":"L", "x":9, "y":2},
|
||||
{"label":";", "x":10, "y":2},
|
||||
{"label":",", "x":11, "y":2},
|
||||
{"label":"\\", "x":12, "y":2},
|
||||
{"label":"Shift", "x":0, "y":3},
|
||||
{"label":"Z", "x":1, "y":3},
|
||||
{"label":"X", "x":2, "y":3},
|
||||
{"label":"C", "x":3, "y":3},
|
||||
{"label":"V", "x":4, "y":3},
|
||||
{"label":"B", "x":5, "y":3},
|
||||
{"label":"N", "x":6, "y":3},
|
||||
{"label":"M", "x":7, "y":3},
|
||||
{"label":",", "x":8, "y":3},
|
||||
{"label":".", "x":9, "y":3},
|
||||
{"label":"/", "x":10, "y":3},
|
||||
{"label":"Enter", "x":11, "y":3},
|
||||
{"label":"Up", "x":12, "y":3},
|
||||
{"label":"Hyper", "x":0, "y":4},
|
||||
{"label":"Ctrl", "x":1, "y":4},
|
||||
{"label":"Alt", "x":2, "y":4},
|
||||
{"label":"GUI", "x":3, "y":4},
|
||||
{"label":"Lower", "x":4, "y":4},
|
||||
{"label":"Space", "x":5, "y":4, "w":2},
|
||||
{"label":"Raise", "x":7, "y":4},
|
||||
{"label":"Backspace", "x":8, "y":4},
|
||||
{"label":"Shift", "x":9, "y":4},
|
||||
{"label":"Left", "x":10, "y":4},
|
||||
{"label":"Right", "x":11, "y":4},
|
||||
{"label":"Down", "x":12, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,9 +1,4 @@
|
||||
#include "ortho5x13.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
#endif
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// 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.
|
||||
@@ -25,146 +20,142 @@ enum custom_keycodes {
|
||||
BACKLIT
|
||||
};
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
#define KC_L1 LOWER
|
||||
#define KC_L2 RAISE
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | ` | A | S | D | F | G | H | J | K | L | ; | ' | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | Up |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Bksp |Shift | Left | Down |Right |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_compact(
|
||||
//,----+----+----+----+----+----+----+----+----+----+----+----+----.
|
||||
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL ,
|
||||
//|----+----+----+----+----+----+----+----+----+----+----+----+----|
|
||||
TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC,
|
||||
//|----+----+----+----+----+----+----+----+----+----+----+----+----|
|
||||
GRV , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,BSLS,
|
||||
//|----+----+----+----+----+----+----+----+----+----+----+----+----|
|
||||
LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENT , UP ,
|
||||
//|----+----+----+----+----+---------+----+----+----+----+----+----|
|
||||
HYPR,LCTL,LALT,LGUI, L1 , SPACE , L2 ,BSPC,RSFT,LEFT,RGHT,DOWN
|
||||
//`----+----+----+----+----+---------+----+----+----+----+----+----'
|
||||
),
|
||||
/* Qwerty
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | ` | A | S | D | F | G | H | J | K | L | ; | ' | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | Up |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Bksp |Shift | Left | Down |Right |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
//,--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.
|
||||
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL ,
|
||||
//|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_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_GRV ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_QUOT ,KC_BSLS ,
|
||||
//|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_ENT ,KC_UP ,
|
||||
//|--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------|
|
||||
KC_HYPR ,KC_LCTL ,KC_LALT ,KC_LGUI ,KC_L1 , KC_SPC ,KC_L2 ,KC_BSPC ,KC_RSFT ,KC_LEFT ,KC_RGHT ,KC_DOWN
|
||||
//`--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------+--------'
|
||||
),
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL},
|
||||
{KC_ESC, 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_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
[_COLEMAK] = LAYOUT(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______,
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL , _______,
|
||||
KC_ESC, 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_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , _______,
|
||||
BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
|
||||
),
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Del | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL},
|
||||
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
|
||||
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
[_DVORAK] = LAYOUT(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______,
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL , _______,
|
||||
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, _______,
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , _______,
|
||||
BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play | |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, _______,
|
||||
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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play | |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______,
|
||||
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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______,
|
||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Musoff|Mus on| | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
* ,------------------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | Reset| | | | | | | | | | Del | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------+------|
|
||||
* | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Musoff|Mus on| | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
|
||||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
|
||||
{_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
[_ADJUST] = LAYOUT(
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 , _______,
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______,
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______,
|
||||
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
|
||||
|
||||
};
|
||||
@@ -286,4 +277,4 @@ void music_scale_user(void)
|
||||
PLAY_SONG(music_scale);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/ortho5x13: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.
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
@@ -15,8 +15,7 @@ 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_H
|
||||
#define CONFIG_H
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
@@ -159,27 +158,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MAX_VOLTAGE 4.2
|
||||
#define MIN_VOLTAGE 3.2
|
||||
|
||||
#define ___ KC_NO
|
||||
|
||||
#define KEYMAP_CUSTOM( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
|
||||
k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, \
|
||||
tp1, tp2, tp3 \
|
||||
) \
|
||||
{ \
|
||||
{k11, k12, k13, k14, k15, k16}, \
|
||||
{k21, k22, k23, k24, k25, k26}, \
|
||||
{k31, k32, k33, k34, k35, k36}, \
|
||||
{k41, k42, k43, k44, k45, k46}, \
|
||||
{k17, k18, k19, k1a, k1b, k1c}, \
|
||||
{k27, k28, k29, k2a, k2b, k2c}, \
|
||||
{k37, k38, k39, k3a, k3b, k3c}, \
|
||||
{k47, k48, k49, k4a, k4b, k4c}, \
|
||||
{tp1, tp2, tp3, ___, ___, ___} \
|
||||
}
|
||||
|
||||
#ifndef __ASSEMBLER__ // assembler doesn't like enum in .h file
|
||||
enum led_sequence {
|
||||
LED_IND_LINUX,
|
||||
@@ -351,6 +329,3 @@ enum led_sequence {
|
||||
#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
|
||||
#define PS2_USART_RX_VECT USART1_RX_vect
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
68
keyboards/handwired/promethium/info.json
Normal file
68
keyboards/handwired/promethium/info.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"keyboard_name": "Promethium51",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 16,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "k11", "x": 0, "y": 0.50 },
|
||||
{ "label": "k12", "x": 1, "y": 0.30 },
|
||||
{ "label": "k13", "x": 2, "y": 0.15 },
|
||||
{ "label": "k14", "x": 3, "y": 0 },
|
||||
{ "label": "k15", "x": 4, "y": 0.15 },
|
||||
{ "label": "k16", "x": 5, "y": 0.15 },
|
||||
{ "label": "k17", "x": 10, "y": 0.15 },
|
||||
{ "label": "k18", "x": 11, "y": 0.15 },
|
||||
{ "label": "k19", "x": 12, "y": 0 },
|
||||
{ "label": "k1a", "x": 13, "y": 0.15 },
|
||||
{ "label": "k1b", "x": 14, "y": 0.30 },
|
||||
{ "label": "k1c", "x": 15, "y": 0.50 },
|
||||
|
||||
{ "label": "k21", "x": 0, "y": 1.50 },
|
||||
{ "label": "k22", "x": 1, "y": 1.30 },
|
||||
{ "label": "k23", "x": 2, "y": 1.15 },
|
||||
{ "label": "k24", "x": 3, "y": 1 },
|
||||
{ "label": "k25", "x": 4, "y": 1.15 },
|
||||
{ "label": "k26", "x": 5, "y": 1.15 },
|
||||
{ "label": "k27", "x": 10, "y": 1.15 },
|
||||
{ "label": "k28", "x": 11, "y": 1.15 },
|
||||
{ "label": "k29", "x": 12, "y": 1 },
|
||||
{ "label": "k2a", "x": 13, "y": 1.15 },
|
||||
{ "label": "k2b", "x": 14, "y": 1.30 },
|
||||
{ "label": "k2c", "x": 15, "y": 1.50 },
|
||||
|
||||
{ "label": "k31", "x": 0, "y": 2.50 },
|
||||
{ "label": "k32", "x": 1, "y": 2.30 },
|
||||
{ "label": "k33", "x": 2, "y": 2.15 },
|
||||
{ "label": "k34", "x": 3, "y": 2 },
|
||||
{ "label": "k35", "x": 4, "y": 2.15 },
|
||||
{ "label": "k36", "x": 5, "y": 2.15 },
|
||||
{ "label": "k37", "x": 10, "y": 2.15 },
|
||||
{ "label": "k38", "x": 11, "y": 2.15 },
|
||||
{ "label": "k39", "x": 12, "y": 2 },
|
||||
{ "label": "k3a", "x": 13, "y": 2.15 },
|
||||
{ "label": "k3b", "x": 14, "y": 2.30 },
|
||||
{ "label": "k3c", "x": 15, "y": 2.50 },
|
||||
|
||||
{ "label": "k41", "x": 0, "y": 3.50 },
|
||||
{ "label": "k42", "x": 1, "y": 3.30 },
|
||||
{ "label": "k43", "x": 2, "y": 3.15 },
|
||||
{ "label": "k44", "x": 3, "y": 3 },
|
||||
{ "label": "k45", "x": 4, "y": 3.15 },
|
||||
{ "label": "k46", "x": 5, "y": 3.15 },
|
||||
{ "label": "k47", "x": 10, "y": 3.15 },
|
||||
{ "label": "k48", "x": 11, "y": 3.15 },
|
||||
{ "label": "k49", "x": 12, "y": 3 },
|
||||
{ "label": "k4a", "x": 13, "y": 3.15 },
|
||||
{ "label": "k4b", "x": 14, "y": 3.30 },
|
||||
{ "label": "k4c", "x": 15, "y": 3.50 },
|
||||
|
||||
{ "label": "tp1", "x": 6.5, "y": 3.15 },
|
||||
{ "label": "tp2", "x": 7.5, "y": 3.15 },
|
||||
{ "label": "tp3", "x": 8.5, "y": 3.15 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,7 +1,4 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
#pragma once
|
||||
|
||||
#define PRIYADI_PROMETHIUM
|
||||
|
||||
@@ -23,5 +20,3 @@
|
||||
|
||||
#define DOUBLESPACE_LAYER_ENABLE
|
||||
// #define TOLELOT_ENABLE
|
||||
|
||||
#endif
|
||||
|
@@ -686,7 +686,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP_CUSTOM(
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_RSFT,
|
||||
@@ -706,7 +706,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
#ifdef LAYOUT_DVORAK
|
||||
[_DVORAK] = KEYMAP_CUSTOM(
|
||||
[_DVORAK] = LAYOUT(
|
||||
_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
|
||||
_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______,
|
||||
_______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
|
||||
@@ -728,7 +728,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT_COLEMAK
|
||||
[_COLEMAK] = KEYMAP_CUSTOM(
|
||||
[_COLEMAK] = LAYOUT(
|
||||
_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______,
|
||||
_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______,
|
||||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -750,7 +750,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT_NORMAN
|
||||
[_NORMAN] = KEYMAP_CUSTOM(
|
||||
[_NORMAN] = LAYOUT(
|
||||
_______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______,
|
||||
_______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______,
|
||||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -772,7 +772,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT_WORKMAN
|
||||
[_WORKMAN] = KEYMAP_CUSTOM(
|
||||
[_WORKMAN] = LAYOUT(
|
||||
_______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______,
|
||||
_______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______,
|
||||
_______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -792,7 +792,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | : | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_PUNC] = KEYMAP_CUSTOM(
|
||||
[_PUNC] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______,
|
||||
KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______,
|
||||
KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______,
|
||||
@@ -811,7 +811,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | x | | | | | 0 | , | . | : | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_NUM] = KEYMAP_CUSTOM(
|
||||
[_NUM] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______,
|
||||
KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______,
|
||||
KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______,
|
||||
@@ -830,7 +830,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUN] = KEYMAP_CUSTOM(
|
||||
[_FUN] = LAYOUT(
|
||||
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL,
|
||||
KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
|
||||
_______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______,
|
||||
@@ -849,7 +849,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GREEKU] = KEYMAP_CUSTOM(
|
||||
[_GREEKU] = LAYOUT(
|
||||
_______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______,
|
||||
_______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______,
|
||||
_______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -868,7 +868,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GREEKL] = KEYMAP_CUSTOM(
|
||||
[_GREEKL] = LAYOUT(
|
||||
_______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______,
|
||||
_______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______,
|
||||
_______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -887,7 +887,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_EMPTY] = KEYMAP_CUSTOM(
|
||||
[_EMPTY] = LAYOUT(
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
@@ -906,7 +906,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_EMOJI] = KEYMAP_CUSTOM(
|
||||
[_EMOJI] = LAYOUT(
|
||||
X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW),
|
||||
X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS),
|
||||
X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH),
|
||||
@@ -925,7 +925,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GUI] = KEYMAP_CUSTOM(
|
||||
[_GUI] = LAYOUT(
|
||||
XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX,
|
||||
KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
|
||||
@@ -944,7 +944,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_SYS] = KEYMAP_CUSTOM(
|
||||
[_SYS] = LAYOUT(
|
||||
DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO,
|
||||
XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
@@ -1365,4 +1365,4 @@ void turn_off_capslock() {
|
||||
rcv = ps2_host_send(0x01);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -1,7 +1,4 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
#pragma once
|
||||
|
||||
#define PRIYADI_PROMETHIUM
|
||||
|
||||
@@ -23,5 +20,3 @@
|
||||
|
||||
#define DOUBLESPACE_LAYER_ENABLE
|
||||
// #define TOLELOT_ENABLE
|
||||
|
||||
#endif
|
||||
|
@@ -686,7 +686,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP_CUSTOM(
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_RSFT,
|
||||
@@ -706,7 +706,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
#ifdef LAYOUT_DVORAK
|
||||
[_DVORAK] = KEYMAP_CUSTOM(
|
||||
[_DVORAK] = LAYOUT(
|
||||
_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
|
||||
_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______,
|
||||
_______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
|
||||
@@ -728,7 +728,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT_COLEMAK
|
||||
[_COLEMAK] = KEYMAP_CUSTOM(
|
||||
[_COLEMAK] = LAYOUT(
|
||||
_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______,
|
||||
_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______,
|
||||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -750,7 +750,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT_NORMAN
|
||||
[_NORMAN] = KEYMAP_CUSTOM(
|
||||
[_NORMAN] = LAYOUT(
|
||||
_______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______,
|
||||
_______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______,
|
||||
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -772,7 +772,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
*/
|
||||
|
||||
#ifdef LAYOUT_WORKMAN
|
||||
[_WORKMAN] = KEYMAP_CUSTOM(
|
||||
[_WORKMAN] = LAYOUT(
|
||||
_______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______,
|
||||
_______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______,
|
||||
_______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -792,7 +792,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | : | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_PUNC] = KEYMAP_CUSTOM(
|
||||
[_PUNC] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______,
|
||||
KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______,
|
||||
KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______,
|
||||
@@ -811,7 +811,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | x | | | | | 0 | , | . | : | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_NUM] = KEYMAP_CUSTOM(
|
||||
[_NUM] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______,
|
||||
KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______,
|
||||
KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______,
|
||||
@@ -830,7 +830,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUN] = KEYMAP_CUSTOM(
|
||||
[_FUN] = LAYOUT(
|
||||
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL,
|
||||
KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______,
|
||||
_______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______,
|
||||
@@ -849,7 +849,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GREEKU] = KEYMAP_CUSTOM(
|
||||
[_GREEKU] = LAYOUT(
|
||||
_______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______,
|
||||
_______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______,
|
||||
_______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -868,7 +868,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GREEKL] = KEYMAP_CUSTOM(
|
||||
[_GREEKL] = LAYOUT(
|
||||
_______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______,
|
||||
_______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______,
|
||||
_______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______,
|
||||
@@ -887,7 +887,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_EMPTY] = KEYMAP_CUSTOM(
|
||||
[_EMPTY] = LAYOUT(
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
@@ -906,7 +906,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_EMOJI] = KEYMAP_CUSTOM(
|
||||
[_EMOJI] = LAYOUT(
|
||||
X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW),
|
||||
X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS),
|
||||
X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH),
|
||||
@@ -925,7 +925,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_GUI] = KEYMAP_CUSTOM(
|
||||
[_GUI] = LAYOUT(
|
||||
XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX,
|
||||
KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
|
||||
@@ -944,7 +944,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_SYS] = KEYMAP_CUSTOM(
|
||||
[_SYS] = LAYOUT(
|
||||
DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO,
|
||||
XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
@@ -1365,4 +1365,4 @@ void turn_off_capslock() {
|
||||
rcv = ps2_host_send(0x01);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -7,4 +7,23 @@ void battery_poll(uint8_t level);
|
||||
void led_set_kb(uint8_t usb_led);
|
||||
void led_set_user(uint8_t usb_led);
|
||||
|
||||
#define LAYOUT( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \
|
||||
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
|
||||
k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, \
|
||||
tp1, tp2, tp3 \
|
||||
) \
|
||||
{ \
|
||||
{k11, k12, k13, k14, k15, k16}, \
|
||||
{k21, k22, k23, k24, k25, k26}, \
|
||||
{k31, k32, k33, k34, k35, k36}, \
|
||||
{k41, k42, k43, k44, k45, k46}, \
|
||||
{k17, k18, k19, k1a, k1b, k1c}, \
|
||||
{k27, k28, k29, k2a, k2b, k2c}, \
|
||||
{k37, k38, k39, k3a, k3b, k3c}, \
|
||||
{k47, k48, k49, k4a, k4b, k4c}, \
|
||||
{tp1, tp2, tp3, KC_NO, KC_NO, KC_NO} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_RESET, KC_MUTE, KC_VOLD, KC_VOLU,\
|
||||
KC_MAKE, _______, RGB_HUI, RGB_HUD, \
|
||||
KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, \
|
||||
RGB_TOG, RGB_SMOD, RGB_SAI, RGB_VAI, \
|
||||
RGB_TOG, RGB_MOD, RGB_SAI, RGB_VAI, \
|
||||
_______, KC_RGB_T, RGB_SAD, RGB_VAD \
|
||||
),
|
||||
|
||||
|
@@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, AU_ON, AU_OFF, MU_TOG, MU_MOD, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
|
||||
_______, CK_TOGG, CK_RST, CK_UP, CK_DOWN, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
)
|
||||
};
|
||||
|
||||
|
@@ -1,3 +1,2 @@
|
||||
SRC += pico/matrix.c \
|
||||
pico/split_util.c \
|
||||
ws2812.c
|
||||
SRC += pico/matrix.c
|
||||
SRC += pico/split_util.c
|
||||
|
@@ -183,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, RESET, RGBRST, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
)
|
||||
};
|
||||
|
||||
@@ -296,7 +296,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
)
|
||||
};
|
||||
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#undef TAPPING_FORCE_HOLD
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 120
|
||||
#define SWAP_SCLN
|
||||
|
||||
// If you need more program area, try select and reduce rgblight modes to use.
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user