28 KiB
QMK ã®èšå®
QMK ã¯ã»ãŒç¡å¶éã«èšå®å¯èœã§ããå¯èœãªãšããã¯ãããªããšããã§ãããããããªçšããŠãŒã¶ãŒãã³ãŒããµã€ãºãç ç²ã«ããŠã§ã圌ãã®ããŒããŒããã«ã¹ã¿ãã€ãºãããããšãèš±ããŠããŸãããã ãããã®ã¬ãã«ã®æè»æ§ã«ããèšå®ãå°é£ã«ãªããŸãã
QMK ã«ã¯äž»ã«ïŒçš®é¡ã®èšå®ãã¡ã€ã«ããããŸã- config.h ãš rules.mkããããã®ãã¡ã€ã«ã¯ QMK ã®æ§ã
ãªã¬ãã«ã«ååšããåãçš®é¡ã®å
šãŠã®ãã¡ã€ã«ã¯æçµçãªèšå®ãæ§ç¯ããããã«çµã¿åããããŸããæäœã®åªå
床ããæé«ã®åªå
床ãŸã§ã®ã¬ãã«ã¯ä»¥äžã®éãã§ã:
- QMK ããã©ã«ã
- ããŒããŒã
- ãã©ã«ã (æå€§5ã¬ã¹ã«ã®æ·±ã)
- ããŒããã
QMK ããã©ã«ã
QMK ã§ã®å šãŠã®å©çšå¯èœãªèšå®ã«ã¯ããã©ã«ãããããŸãããã®èšå®ãããŒããŒãããã©ã«ãããããã¯ããŒãããã¬ã¹ã«ã§èšå®ãããªãå Žåãããã䜿çšãããèšå®ã§ãã
ããŒããŒã
ãã®ã¬ãã«ã«ã¯ããŒããŒãå šäœã«é©çšãããèšå®ãªãã·ã§ã³ãå«ãŸããŠããŸããäžéšã®èšå®ã¯ããªããžã§ã³ãããã¯ã»ãšãã©ã®ããŒãããã§å€æŽãããŸãããä»ã®èšå®ã¯ãã®ããŒããŒãã®ããã©ã«ãã«éããããã©ã«ããããã¯ããŒãããã«ãã£ãŠäžæžããããå¯èœæ§ããããŸãã
ãã©ã«ã
äžéšã®ããŒããŒãã«ã¯ãç°ãªãããŒããŠã§ã¢æ§æã®ããã®ãã©ã«ããšãµããã©ã«ãããããŸããã»ãšãã©ã®ããŒããŒãã¯æ·±ã1ã®ãã©ã«ãã®ã¿ã§ãããQMK ã¯æå€§æ·±ã5ã®ãã©ã«ãã®æ§é ããµããŒãããŸããåãã©ã«ãã¯ãæçµçãªèšå®ã«çµã¿èŸŒãŸããç¬èªã® config.h ãš rules.mk ãã¡ã€ã«ãæã€ããšãã§ããŸãã
ããŒããã
ãã®ã¬ãã«ã«ã¯ç¹å®ã®ããŒãããã®ããã®å
šãŠã®ãªãã·ã§ã³ãå«ãŸããŠããŸãã以åã®å®çŸ©ãäžæžããããå Žåã¯ã#undef <variable> ã䜿ã£ãŠå®çŸ©ãè§£é€ãããšã©ãŒç¡ãã§åå®çŸ©ããããšãã§ããŸãã
config.h ãã¡ã€ã«
ããã¯æåã« include ããããã®ã® 1 ã€ã§ãã C ããããã¡ã€ã«ã§ããããžã§ã¯ãå
šäœ(ããå«ãŸããå Žå)ã«ããã£ãŠæç¶ããŸããå€ãã®å€æ°ãããã§èšå®ããä»ã®å Žæããã¢ã¯ã»ã¹ããããšãã§ããŸããconfig.h ãã¡ã€ã«ã§ã¯ã以äžã®ãã®ä»¥å€ã®ãä»ã® config.h ãã¡ã€ã«ããã®ä»ã®ãã¡ã€ã«ã® include ãããªãã§ãã ãã:
#include "config_common.h"
ããŒããŠã§ã¢ãªãã·ã§ã³
#define VENDOR_ID 0x1234- VID ãå®çŸ©ããŸããã»ãšãã©ã® DIY ãããžã§ã¯ãã«ãããŠãä»»æã®ãã®ãå®çŸ©ã§ããŸã
#define PRODUCT_ID 0x5678- PID ãå®çŸ©ããŸããã»ãšãã©ã® DIY ãããžã§ã¯ãã§ã¯ãä»»æã®ãã®ãå®çŸ©ã§ããŸã
#define DEVICE_VER 0- ããã€ã¹ã®ããŒãžã§ã³ãå®çŸ©ããŸã (å€ãã®å Žåãªããžã§ã³ã«äœ¿ãããŸã)
#define MANUFACTURER Me- äžè¬çã«ã誰ãããã¯ã©ã®ãã©ã³ããããŒããäœæããã
#define PRODUCT Board- ããŒããŒãã®åå
#define MATRIX_ROWS 5- ããŒããŒãã®ãããªãã¯ã¹ã®è¡ã®æ°
#define MATRIX_COLS 15- ããŒããŒãã®ãããªãã¯ã¹ã®åã®æ°
#define MATRIX_ROW_PINS { D0, D5, B5, B6 }- è¡ã®ãã³ãäžããäžãž
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }- åã®ãã³ãå·Šããå³ãž
#define MATRIX_IO_DELAY 30- ãããªãã¯ã¹ãã³ç¶æ ã®å€æŽãšå€ã®èªã¿åãéã®ãã€ã¯ãç§åäœã®é å»¶
#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }- åèãšããŠãããŒããŒãã§äœ¿ãããŠããªããã³
#define MATRIX_HAS_GHOST- ãããªãã¯ã¹ã«ãŽãŒã¹ããããã(ããããã«ãªãã)å®çŸ©ããŸã
#define DIODE_DIRECTION COL2ROW- COL2ROW ããã㯠ROW2COL - ãããªãã¯ã¹ãã©ã®ããã«èšå®ãããŠããããCOL2ROW ã¯ãã¹ã€ãããšããŠ(è¡)ã©ã€ã³ã®éã«ãã€ãªãŒããé»ãå°ãããŠ(è¡)ã©ã€ã³ã«åããŠçœ®ããŠããããšãæå³ããŸãã
#define DIRECT_PINS { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }- ããŠ(è¡)ã©ã€ã³ãšã«ã©ã (å)ã©ã€ã³ã«ããããããŠãããã³ãå·Šããå³ã«ãåã¹ã€ãããåå¥ã®ãã³ãšã°ã©ãŠã³ãã«æ¥ç¶ãããŠãããããªãã¯ã¹ãå®çŸ©ããŸãã
#define AUDIO_VOICES- (埪ç°ãããããã«)代æ¿é³å£°ãæå¹ã«ããŸã
#define C4_AUDIO- ãã³ C4 ã®ãªãŒãã£ãªãæå¹ã«ããŸã
- éæšå¥šã
#define AUDIO_PIN C4ã䜿ã£ãŠãã ãã
#define C5_AUDIO- ãã³ C5 ã®ãªãŒãã£ãªãæå¹ã«ããŸã
- éæšå¥šã
#define AUDIO_PIN C5ã䜿ã£ãŠãã ãã
#define C6_AUDIO- ãã³ C6 ã®ãªãŒãã£ãªãæå¹ã«ããŸã
- éæšå¥šã
#define AUDIO_PIN C6ã䜿ã£ãŠãã ãã
#define B5_AUDIO- ãã³ B5 ã®ãªãŒãã£ãªãæå¹ã«ããŸã (C ãã³ã®1ã€ãšãšãã« B ãã³ã®1ã€ãæå¹ã«ãããŠããå Žåãç䌌ã¹ãã¬ãªãæå¹ã«ãããŸã)
- éæšå¥šããã
AUDIO_PINã§Cãã³ãæå¹ã«ããŠããå Žåã¯ã#define AUDIO_PIN_ALT B5ã䜿ããããã§ãªããã°#define AUDIO_PIN B5ã䜿ããŸãã
#define B6_AUDIO- ãã³ B6 ã®ãªãŒãã£ãªãæå¹ã«ããŸã (C ãã³ã®1ã€ãšãšãã« B ãã³ã®1ã€ãæå¹ã«ãããŠããå Žåãç䌌ã¹ãã¬ãªãæå¹ã«ãããŸã)
- éæšå¥šããã
AUDIO_PINã§Cãã³ãæå¹ã«ããŠããå Žåã¯ã#define AUDIO_PIN_ALT B6ã䜿ããããã§ãªããã°#define AUDIO_PIN B6ã䜿ããŸãã
#define B7_AUDIO- ãã³ B7 ã®ãªãŒãã£ãªãæå¹ã«ããŸã (C ãã³ã®1ã€ãšãšãã« B ãã³ã®1ã€ãæå¹ã«ãããŠããå Žåãç䌌ã¹ãã¬ãªãæå¹ã«ãããŸã)
- éæšå¥šããã
AUDIO_PINã§Cãã³ãæå¹ã«ããŠããå Žåã¯ã#define AUDIO_PIN_ALT B7ã䜿ããããã§ãªããã°#define AUDIO_PIN B7ã䜿ããŸãã
#define BACKLIGHT_PIN B7- ããã¯ã©ã€ãã®ãã³
#define BACKLIGHT_LEVELS 3- ããã¯ã©ã€ãã®ã¬ãã«æ° (off ãé€ããŠæå€§31)
#define BACKLIGHT_BREATHING- ããã¯ã©ã€ãã®ãã¬ã¹ãæå¹ã«ããŸã
#define BREATHING_PERIOD 6- 1ã€ã®ããã¯ã©ã€ãã® "ãã¬ã¹" ã®é·ãã®ç§æ°
#define DEBOUNCE 5- ãã³ã®å€ãèªã¿åãæã®é å»¶ (5ãããã©ã«ã)
#define LOCKING_SUPPORT_ENABLE- ã¡ã«ãã«ã«ããã¯ã®ãµããŒããããŒãããã§ KC_LCAPãKC_LNUM ãã㊠KC_LSCR ã䜿ããããã«ããŸã
#define LOCKING_RESYNC_ENABLE- ããŒããŒãã® LED ã®ç¶æ ãã¹ã€ããã®ç¶æ ãšäžèŽããç¶ããããšããŸã
#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)- ããžãã¯ã³ãã³ãã®äœ¿çšãå¯èœã«ããããŒã®çµã¿åãã (ãããã°ã«äŸ¿å©ã§ã)
#define USB_MAX_POWER_CONSUMPTION 500- ããã€ã¹ã® USB çµç±ã®æå€§é»å(mA) ãèšå®ããŸã (ããã©ã«ã: 500)
#define USB_POLLING_INTERVAL_MS 10- ããŒããŒããããŠã¹ ããã³ å ±æ (NKRO/ã¡ãã£ã¢ããŒ) ã€ã³ã¿ãã§ãŒã¹ã®ããã® USB ããŒãªã³ã°ã¬ãŒããããªç§ã§èšå®ããŸã
#define USB_SUSPEND_WAKEUP_DELAY 200- ãŠã§ã€ã¯ã¢ãããã±ãããéä¿¡ããåŸã§äžæåæ¢ããããªç§ãèšå®ããŸã
#define F_SCL 100000L- I2C ã䜿çšããããŒããŒãã®ããã® I2C ã¯ããã¯ã¬ãŒãé床ãèšå®ããŸããããã©ã«ãã¯
400000Lã§ãããsplit_commonã䜿ã£ãŠããããŒããŒãã¯å¥ã§ããã©ã«ãã¯100000Lã§ãã
- I2C ã䜿çšããããŒããŒãã®ããã® I2C ã¯ããã¯ã¬ãŒãé床ãèšå®ããŸããããã©ã«ãã¯
ç¡å¹ã«ã§ããæ©èœ
ãããã®ãªãã·ã§ã³ãå®çŸ©ãããšãé¢é£ããæ©èœãç¡å¹ã«ãªããã³ãŒããµã€ãºãç¯çŽã§ããŸãã
#define NO_DEBUG- ãããã°ãç¡å¹ã«ããŸã
#define NO_PRINT- hid_listen ã䜿ã£ãåºåããããã°ãç¡å¹ã«ããŸã
#define NO_ACTION_LAYER- ã¬ã€ã€ãŒãç¡å¹ã«ããŸã
#define NO_ACTION_TAPPING- ã¿ãããã³ã¹ãšä»ã®ã¿ããæ©èœãç¡å¹ã«ããŸã
#define NO_ACTION_ONESHOT- ã¯ã³ã·ã§ããã¢ãã£ãã¡ã€ã¢ãç¡å¹ã«ããŸã
#define NO_ACTION_MACROMACRO()ãaction_get_macro()(éæšå¥š) ã䜿ãå€ã圢åŒã®ãã¯ãåŠçãç¡å¹ã«ããŸã
#define NO_ACTION_FUNCTIONfn_actionsãaction_function()(éæšå¥š) ã䜿ãå€ã圢åŒã®é¢æ°åŠçãç¡å¹ã«ããŸã
æå¹ã«ã§ããæ©èœ
ãããã®ãªãã·ã§ã³ãå®çŸ©ãããšãé¢é£ããæ©èœãæå¹ã«ãªããã³ãŒããµã€ãºã倧ãããªããããããŸããã
#define FORCE_NKRO- NKRO ãããã©ã«ãã§ãªã³ã«ããå¿ èŠããããŸããããã«ãã EEPROM ã®èšå®ã«é¢ä¿ãªããããŒããŒãã®èµ·åæã« NKRO ã匷å¶çã«ãªã³ã«ãªããŸããNKRO ã¯åŒãç¶ããªãã«ã§ããŸãããããŒããŒããåèµ·åãããšåã³ãªã³ã«ãªããŸãã
#define STRICT_LAYER_RELEASE- ããŒãªãªãŒã¹ãã©ã®ã¬ã€ã€ãŒããæ¥ãã®ããèŠããã®ã§ã¯ãªããçŸåšã®ã¬ã€ã€ãŒã¹ã¿ãã¯ã䜿ã£ãŠåŒ·å¶çã«è©äŸ¡ãããããã«ããŸã (é«åºŠãªã±ãŒã¹ã«äœ¿ãããŸã)
èšå®å¯èœãªæå :id=behaviors-that-can-be-configured
#define TAPPING_TERM 200- ã¿ãããããŒã«ãã«ãªããŸã§ã®æéã500以äžã«èšå®ãããå Žåãã¿ããæéäžã«ã¿ãããããããŒãããŒã«ãã«ãªããŸãã(蚳泚: PERMISSIVE_HOLDãåç §)
#define TAPPING_TERM_PER_KEY- ããŒããšã®
TAPPING_TERMèšå®ã®åŠçãæå¹ã«ããŸã
- ããŒããšã®
#define RETRO_TAPPING- æŒäžãšãªãªãŒã¹ã®éã«ä»ã®ããŒã«ããäžæããªããã°ãTAPPING_TERM ã®åŸã§ãã£ãŠããšã«ããã¿ããããŸã
- 詳现㯠Retro Tapping ãèŠãŠãã ãã
#define RETRO_TAPPING_PER_KEY- ããŒããšã®
RETRO_TAPPINGèšå®ã®åŠçãæå¹ã«ããŸã
- ããŒããšã®
#define TAPPING_TOGGLE 2- ãã°ã«ãåŒãèµ·ããåã®ã¿ããæ°
#define PERMISSIVE_HOLDTAPPING_TERMã«ãããããŠããªããŠãããªãªãŒã¹ããåã«å¥ã®ããŒãæŒããããšãã¿ãããšããŒã«ãããŒãããŒã«ããåŒãèµ·ãããŸã- 詳现㯠Permissive Hold ãèŠãŠãã ãã
#define PERMISSIVE_HOLD_PER_KEY- ããŒããšã®
PERMISSIVE_HOLDèšå®ã®åŠçãæå¹ã«ããŸã
- ããŒããšã®
#define IGNORE_MOD_TAP_INTERRUPT- äž¡æ¹ã®ããŒã«
TAPPING_TERMãé©çšããããšã§ãããŒã«ãæã«ä»ã®ããŒã«å€æããããŒã䜿ã£ãŠããŒãªã³ã°ã³ã³ã (zx) ãããããšãã§ããããã«ããŸã - 詳现㯠Ignore Mod Tap Interrupt ãèŠãŠãã ãã
- äž¡æ¹ã®ããŒã«
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY- ããŒããšã®
IGNORE_MOD_TAP_INTERRUPTèšå®ã®åŠçãæå¹ã«ããŸã
- ããŒããšã®
#define TAPPING_FORCE_HOLD- ã¿ãããããçŽåŸã«ããã¥ã¢ã«ããŒã«ããŒã修食åãšããŠäœ¿çšã§ããããã«ããŸã
- Tapping Force HoldãèŠãŠãã ãã
- ã¿ãããã°ã«æ©èœãç¡å¹ã«ããŸã (
TTããã㯠One Shot Tap Toggle)
#define TAPPING_FORCE_HOLD_PER_KEY- ããŒããšã®
TAPPING_FORCE_HOLDèšå®åŠçãæå¹ã«ããŸãã
- ããŒããšã®
#define LEADER_TIMEOUT 300- ãªãŒããŒããŒãã¿ã€ã ã¢ãŠããããŸã§ã®æé
- ã¿ã€ã ã¢ãŠãããåã«ã·ãŒã±ã³ã¹ãçµäºã§ããªãå Žåã¯ãã¿ã€ã ã¢ãŠãã®èšå®ãå¢ããå¿
èŠããããããããŸããããããã¯ã
LEADER_PER_KEY_TIMINGãªãã·ã§ã³ãæå¹ã«ãããšè¯ãã§ããããããã¯åããŒãã¿ãããããåŸã§ã¿ã€ã ã¢ãŠããåèšå®ããŸãã
- ã¿ã€ã ã¢ãŠãããåã«ã·ãŒã±ã³ã¹ãçµäºã§ããªãå Žåã¯ãã¿ã€ã ã¢ãŠãã®èšå®ãå¢ããå¿
èŠããããããããŸããããããã¯ã
- ãªãŒããŒããŒãã¿ã€ã ã¢ãŠããããŸã§ã®æé
#define LEADER_PER_KEY_TIMING- å šäœã§ã¯ç¡ãåããŒãæŒããã³ã«å®è¡ããããªãŒããŒããŒã³ãŒãã®ã¿ã€ããŒãèšå®ããŸã
#define LEADER_KEY_STRICT_KEY_PROCESSING- Mod-Tap ããã³ Layer-Tap ããŒã³ãŒãã®ããã®ããŒã³ãŒããã£ã«ã¿ãªã³ã°ãç¡å¹ã«ããŸããäŸãã°ããããæå¹ã«ãããšã
KC_Aã䜿ãããå Žåã¯MT(MOD_CTL, KC_A)ãæå®ããå¿ èŠããããŸãã
- Mod-Tap ããã³ Layer-Tap ããŒã³ãŒãã®ããã®ããŒã³ãŒããã£ã«ã¿ãªã³ã°ãç¡å¹ã«ããŸããäŸãã°ããããæå¹ã«ãããšã
#define ONESHOT_TIMEOUT 300- ã¯ã³ã·ã§ãããã¿ã€ã ã¢ãŠããããŸã§ã®æé
#define ONESHOT_TAP_TOGGLE 2- ã¯ã³ã·ã§ãããã°ã«ãåŒãèµ·ãããããŸã§ã®ã¿ããæ°
#define QMK_KEYS_PER_SCAN 4- èµ°æ»ããšã«1ã€ä»¥äžã®ããŒãéä¿¡ã§ããããã«ããŸããããã©ã«ãã§ã¯ãèµ°æ»ããšã«
process_record()çµç±ã§1ã€ã®ããŒã€ãã³ãã®ã¿ãéä¿¡ãããŸããããã¯ã»ãšãã©ã®ã¿ã€ãã³ã°ã«ã»ãšãã©åœ±é¿ããŸããããå€ãã®ã³ãŒããå ¥åããŠããããèµ°æ»ã¬ãŒããæåããé ãå ŽåãããŒã€ãã³ãã®åŠçã«å€å°ã®é å»¶ãçããå¯èœæ§ããããŸããããããã®ãã¬ã¹ãšãªãªãŒã¹ã¯å¥ã®ã€ãã³ãã§ããã¹ãã£ã³æéã 1ms çšåºŠã®ããŒããŒãã®å ŽåããšãŠãé«éãªã¿ã€ãã¹ãã§ãããå®éã«ããŒããŒãããæ° ms 以äžã®é å»¶ãçºçãããã®ã«å¿ èŠãª 500 ããŒã¹ãããŒã¯ã1ç§éã«çæããããšã¯ãªãã§ãããããããã3ïœ4ms ã®èµ°æ»æéã§ã³ãŒããå ¥åããŠããå Žåã¯ã©ãã§ããããïŒãããããããå¿ èŠã§ãã
- èµ°æ»ããšã«1ã€ä»¥äžã®ããŒãéä¿¡ã§ããããã«ããŸããããã©ã«ãã§ã¯ãèµ°æ»ããšã«
#define COMBO_COUNT 2- ã³ã³ãæ©èœã§äœ¿ã£ãŠããã³ã³ãã®æ°ã«ãããèšå®ããŸãã
#define COMBO_TERM 200- ã³ã³ãããŒãæ€åºããããŸã§ã®æéãå®çŸ©ãããŠããªãå Žåã¯ãããã©ã«ãã¯
TAPPING_TERMã§ãã
- ã³ã³ãããŒãæ€åºããããŸã§ã®æéãå®çŸ©ãããŠããªãå Žåã¯ãããã©ã«ãã¯
#define TAP_CODE_DELAY 100- é©åãªç»é²ã«åé¡ãããå Žå(VUSB ããŒãã§çãããªã)ã
register_codeãšunregister_codeã®éã®é å»¶ãèšå®ããŸããå€ã¯ããªç§ã§ãã
- é©åãªç»é²ã«åé¡ãããå Žå(VUSB ããŒãã§çãããªã)ã
#define TAP_HOLD_CAPS_DELAY 80- MacOS ã§ç¹å¥ãªåŠçãè¡ãããããã
KC_CAPSLOCKã䜿ãæã«ã¿ããããŒã«ãã㌠(LT,MT) ã«é å»¶ãèšå®ããŸãããã®å€ã¯ããªç§ã§ãå®çŸ©ãããŠããªãå Žåã¯ããã©ã«ãã¯80msã§ããmacOS ã«ã€ããŠã¯ãããã200以äžã«èšå®ãããšè¯ãã§ãããã
- MacOS ã§ç¹å¥ãªåŠçãè¡ãããããã
RGB ã©ã€ãèšå® :id=rgb-light-configuration
#define RGB_DI_PIN D7- WS2812 ã® DI 端åã«ã€ãªããã³
#define RGBLIGHT_ANIMATIONS- RGB ã¢ãã¡ãŒã·ã§ã³ãå®è¡ããŸã
#define RGBLIGHT_LAYERS- ãªã³ãšãªããåãæ¿ããããšãã§ãã ã©ã€ãã¬ã€ã€ãŒ ãå®çŸ©ã§ããŸããçŸåšã®ããŒããŒãã¬ã€ã€ãŒãŸã㯠Caps Lock ç¶æ ã衚瀺ããã®ã«æé©ã§ãã
#define RGBLIGHT_MAX_LAYERS- ããã©ã«ãã¯8ã§ããããããã« ã©ã€ãã¬ã€ã€ãŒ ãå¿ èŠã§ããã°ã32ãŸã§æ¡åŒµã§ããŸãã
- ã¡ã¢: æå€§å€ã倧ãããããšãã¡ãŒã ãŠã§ã¢ãµã€ãºã倧ãããªããåå²ããŒããŒãã§åæãé ããªããŸãã
#define RGBLIGHT_LAYER_BLINK- æå®ãããããªç§ã®éãã©ã€ãã¬ã€ã€ãŒã ç¹æ» ããæ©èœã远å ããŸã(äŸãã°ãã¢ã¯ã·ã§ã³ã確èªãããã)ã
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF- å®çŸ©ãããŠããå ŽåãRGB ã©ã€ãããªãã«ãªã£ãŠããå Žåã§ã ã©ã€ãã¬ã€ã€ãŒ ã衚瀺ãããŸãã
#define RGBLED_NUM 12- LED ã®æ°
#define RGBLIGHT_SPLIT- åå²ããŒããŒãã®å·Šååã® RGB LED ã®åºåãå³ååã® RGB LED ã®å ¥åã«ã€ãªãããããã«ãããããã®åŽã§åå¥ã«ã³ã³ãããŒã©ã®åºåãã³ãçŽæ¥ RGB LED ã®å ¥åã«ç¹ãã£ãŠãããšãã¯ããã®å®çŸ©ãå¿ èŠã§ãã
#define RGBLED_SPLIT { 6, 6 }- åå²ããŒããŒãã®åååã®
RGB_DI_PINã«çŽæ¥é ç·ãããŠããæ¥ç¶ãããŠãã LED ã®æ° - æåã®å€ã¯å·Šååã® LED ã®æ°ã瀺ãã2çªç®ã®å€ã¯å³ååã§ãã
- RGBLED_SPLIT ãå®çŸ©ãããŠããå ŽåãRGBLIGHT_SPLIT ã¯æé»çã«å®çŸ©ãããŸãã
- åå²ããŒããŒãã®åååã®
#define RGBLIGHT_HUE_STEP 12- è²çžã®å¢æžæã®ã¹ãããåäœ
#define RGBLIGHT_SAT_STEP 25- 圩床ã®å¢æžæã®ã¹ãããåäœ
#define RGBLIGHT_VAL_STEP 12- å€(æåºŠ)ã®å¢æžæã®ã¹ãããåäœ
#define RGBW- RGBW LED ã®ãµããŒããæå¹ã«ããŸã
ããŠã¹ããŒãªãã·ã§ã³
#define MOUSEKEY_INTERVAL 20#define MOUSEKEY_DELAY 0#define MOUSEKEY_TIME_TO_MAX 60#define MOUSEKEY_MAX_SPEED 7#define MOUSEKEY_WHEEL_DELAY 0
åå²ããŒããŒããªãã·ã§ã³
åå²ããŒããŒãåºæã®ãªãã·ã§ã³ãããªãã® rules.mk ã« 'SPLIT_KEYBOARD = yes' ãæãããšã確èªããŠãã ããã
SPLIT_TRANSPORT = custom- æšæºã®åå²éä¿¡ã«ãŒãã³ãã«ã¹ã¿ã ã®ãã®ã«çœ®ãæããããšãã§ããŸããçŸåšãARM ããŒã¹ã®åå²ããŒããŒãã¯ããã䜿ããªããã°ãªããŸããã
å·Šå³ã®èšå®
1ã€èŠããŠãããªããã°ãªããªãããšã¯ãUSB ããŒããæ¥ç¶ãããŠããåŽãåžžã«ãã¹ã¿ãŒåŽã§ãããšããããšã§ããUSB ã«æ¥ç¶ãããŠããªãåŽã¯ã¹ã¬ãŒãã§ãã
åå²ããŒããŒãã®å·Šå³ãèšå®ããã«ã¯ã幟ã€ãã®ç°ãªãæ¹æ³ããããŸã (åªå 床ã®é ã«ãªã¹ããããŠããŸã):
SPLIT_HAND_PINãèšå®ããŸã: å·Šå³ã決å®ããããã«ãã³ãèªã¿èŸŒã¿ãŸãããã³ã high ã®å Žåããããå·ŠåŽã§ããlow ã§ããã°ããã®åååŽãå³åŽã§ãããšæ±ºå®ãããŸããEE_HANDSãèšå®ããåååã«eeprom-lefthand.eep/eeprom-righthand.eepãæžã蟌ã¿ãŸã- DFU ããŒãããŒããæèŒããããŒãã§ã¯ããããã® EEPROM ãã¡ã€ã«ãæžã蟌ãããã«
:dfu-split-left/:dfu-split-rightã䜿ãããšãã§ããŸã - Caterina ããŒãããŒããæèŒããããŒã (æšæºç㪠Pro Micros ãªã©)ã§ã¯ã
:avrdude-split-left/:avrdude-split-rightã䜿ã£ãŠãã ãã - ARM DFU ããŒãããŒããæèŒããããŒã (Proton C ãªã©)ã§ã¯ã
:dfu-util-split-left/:dfu-util-split-rightã䜿ã£ãŠãã ãã
- DFU ããŒãããŒããæèŒããããŒãã§ã¯ããããã® EEPROM ãã¡ã€ã«ãæžã蟌ãããã«
MASTER_RIGHTãèšå®ããŸã: USB ããŒãã«å·®ã蟌ãŸããåŽã¯ãã¹ã¿ãŒåŽã§å³åŽã§ãããšæ±ºå®ãããŸã(ããã©ã«ãã®é)- ããã©ã«ã: USB ããŒãã«å·®ã蟌ãŸããŠããåŽããã¹ã¿ãŒåŽã§ãããå·ŠåŽã§ãããšèŠãªãããŸããã¹ã¬ãŒãåŽã¯å³åŽã§ã
å·Šå³ãå®çŸ©ããŸã
-
#define SPLIT_HAND_PIN B7- high/low ãã³ã䜿ã£ãŠå·Šå³ã決å®ããŸããlow = 峿ãhigh = å·Šæã
B7ã䜿ã£ãŠãããã³ã«çœ®ãæããŸããããã¯ãªãã·ã§ã³ã§ãSPLIT_HAND_PINãæªå®çŸ©ã®ãŸãŸã§ããå ŽåãEE_HANDS ã¡ãœãããŸãã¯æšæºã® Let's Splitã䜿ã£ãŠãã MASTER_LEFT / MASTER_RIGHT å®çŸ©ããŸã 䜿ãããšãã§ããŸãã
- high/low ãã³ã䜿ã£ãŠå·Šå³ã決å®ããŸããlow = 峿ãhigh = å·Šæã
-
#define SPLIT_HAND_MATRIX_GRID <out_pin>,<in_pin>- å·Šå³ã¯ããŒãããªãã¯ã¹ã®ããŒã¹ã€ãããååšããªã亀ç¹ã䜿ã£ãŠæ±ºå®ãããŸããéåžžããã®äº€ç¹ãç絡ããŠãã(ããŒã¬ãã«)ã®ãšãã«å·ŠåŽãšèŠãªãããŸãããã
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHTãå®çŸ©ãããŠããå Žåã¯ãããŒã¬ãã«ã®æã«å³åŽãšæ±ºå®ãããŸãã
- å·Šå³ã¯ããŒãããªãã¯ã¹ã®ããŒã¹ã€ãããååšããªã亀ç¹ã䜿ã£ãŠæ±ºå®ãããŸããéåžžããã®äº€ç¹ãç絡ããŠãã(ããŒã¬ãã«)ã®ãšãã«å·ŠåŽãšèŠãªãããŸãããã
-
#define EE_HANDS(SPLIT_HAND_PINãšSPLIT_HAND_MATRIX_GRIDãå®çŸ©ãããŠããªãå Žåã®ã¿åäœããŸã)eeprom-lefthand.eep/eeprom-righthand.eepãããããã®ååã«æžã蟌ãŸããåŸã§ãEEPROM å ã«æ ŒçŽãããŠããå·Šå³ã®èšå®ã®å€ãèªã¿èŸŒã¿ãŸãã
-
#define MASTER_RIGHT- ãã¹ã¿ãŒåŽãå³åŽãšå®çŸ©ãããŸãã
ä»ã®ãªãã·ã§ã³
-
#define USE_I2C- Serial ã®ä»£ããã« I2C ã䜿ãå Žå (ããã©ã«ã㯠serial)
-
#define SOFT_SERIAL_PIN D0- serial ã䜿ãå Žåããããå®çŸ©ããŸãã
D0ãããã¯D1,D2,D3,E6ã
- serial ã䜿ãå Žåããããå®çŸ©ããŸãã
-
#define MATRIX_ROW_PINS_RIGHT { <row pins> } -
#define MATRIX_COL_PINS_RIGHT { <col pins> }- å³ååã«å·Šååãšç°ãªããã³é
眮ãæå®ãããå Žåã¯ã
MATRIX_ROW_PINS_RIGHT/MATRIX_COL_PINS_RIGHTãå®çŸ©ããããšãã§ããŸããçŸåšã®ãšãããMATRIX_ROW_PINSã®ãµã€ãºã¯MATRIX_ROW_PINS_RIGHTãšåãã§ãªããã°ãªãããåã®å®çŸ©ãåæ§ã§ãã
- å³ååã«å·Šååãšç°ãªããã³é
眮ãæå®ãããå Žåã¯ã
-
#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }- å³ååã«å·Šååãšç°ãªãçŽæ¥ãã³é
眮ãæå®ãããå Žåã¯ã
DIRECT_PINS_RIGHTãå®çŸ©ããããšãã§ããŸããçŸåšã®ãšãããDIRECT_PINSã®ãµã€ãºã¯DIRECT_PINS_RIGHTãšåãã§ãªããã°ãªããŸããã
- å³ååã«å·Šååãšç°ãªãçŽæ¥ãã³é
眮ãæå®ãããå Žåã¯ã
-
#define RGBLED_SPLIT { 6, 6 }- RGB ã©ã€ãèšå®ãèŠãŠãã ããã
-
#define SELECT_SOFT_SERIAL_SPEED <speed>(ããã©ã«ãã®é床ã¯1ã§ã)- serial éä¿¡ã䜿ãæã®ãããã³ã«ã®é床ãèšå®ããŸãã
- é床:
- 0: çŽ 189kbps (å®éšç®çã®ã¿)
- 1: çŽ 137kbps (ããã©ã«ã)
- 2: çŽ 75kbps
- 3: çŽ 39kbps
- 4: çŽ 26kbps
- 5: çŽ 20kbps
-
#define SPLIT_USB_DETECT- ãã¹ã¿/ã¹ã¬ãŒããå§ä»»ããæã«(ã¿ã€ã ã¢ãŠãä»ãã§) USB æ¥ç¶ãæ€åºããŸã
- ARM ã«ã€ããŠã¯ããã©ã«ãã®æå
- AVR Teensy ã«ã€ããŠã¯å¿ é
-
#define SPLIT_USB_TIMEOUT 2000SPLIT_USB_DETECTã䜿ãæã®ãã¹ã¿/ã¹ã¬ãŒããæ€åºããå Žåã®æå€§ã¿ã€ã ã¢ãŠã
-
#define SPLIT_USB_TIMEOUT_POLL 10SPLIT_USB_DETECTã䜿ãæã®ãã¹ã¿/ã¹ã¬ãŒããæ€åºããå Žåã®ããŒãªã³ã°é »åºŠ
rules.mk ãã¡ã€ã«
ããã¯ããããã¬ãã«ã® Makefile ãã include ããã make ãã¡ã€ã«ã§ããããã¯ç¹å®ã®æ©èœãæå¹ãŸãã¯ç¡å¹ã«ããã ãã§ãªããã³ã³ãã€ã«ãã MCU ã«é¢ããæ
å ±ãèšå®ããããã«äœ¿ãããŸãã
ãã«ããªãã·ã§ã³
DEFAULT_FOLDER- ããŒããŒãã«1ã€ä»¥äžã®ãµããã©ã«ããããå Žåã«ããã©ã«ãã®ãã©ã«ããæå®ããããã«äœ¿ãããŸãã
FIRMWARE_FORMAT- ãã«ãã®åŸã§ã«ãŒã
qmk_firmwareãã©ã«ãã«ã³ããŒãããåœ¢åŒ (bin, hex) ãå®çŸ©ããŸãã
- ãã«ãã®åŸã§ã«ãŒã
SRC- ã³ã³ãã€ã«ã»ãªã³ã¯ãªã¹ãã«ãã¡ã€ã«ã远å ããããã«äœ¿ãããŸãã
LIB_SRC- ã³ã³ãã€ã«ã»ãªã³ã¯ãªã¹ãã«ã©ã€ãã©ãªãšããŠãã¡ã€ã«ã远å ããããã«äœ¿ãããŸãã
LIB_SRCã§æå®ããããã¡ã€ã«ã¯ãSRCã§æå®ããããã¡ã€ã«ã®åŸã«ãªã³ã¯ãããŸãã
äŸãã°ã次ã®ããã«æå®ããå Žå:
ãªã³ã¯é ã¯ä»¥äžã®éãã§ããSRC += a.c LIB_SRC += lib_b.c SRC += c.c LIB_SRC += lib_d.c... a.o c.o ... lib_b.a lib_d.a ...
- ã³ã³ãã€ã«ã»ãªã³ã¯ãªã¹ãã«ã©ã€ãã©ãªãšããŠãã¡ã€ã«ã远å ããããã«äœ¿ãããŸãã
LAYOUTS- ãã®ããŒããŒãããµããŒãããã¬ã€ã¢ãŠãã®ãªã¹ã
LTO_ENABLE- ããŒããŒããã³ã³ãã€ã«ããæã«ãLink Time Optimization (LTO) ãæå¹ã«ããŸããããã¯åŠçã«æéãæãããŸãããã³ã³ãã€ã«ããããµã€ãºã倧å¹
ã«æžãããŸã (ãããŠããã¡ãŒã ãŠã§ã¢ãå°ããããã远å ã®æéã¯åãããªããããã§ã)ã
ãã ããLTO ãæå¹ãªå Žåãå€ã TMK ã®ãã¯ããšé¢æ°ã®æ©èœãå£ãããããèªåçã«ãããã®æ©èœãç¡å¹ã«ããŸããããã¯
NO_ACTION_MACROãšNO_ACTION_FUNCTIONãèªåçã«å®çŸ©ããããšã§è¡ãããŸãã(ã¡ã¢: ãã㯠QMK ã® ãã¯ã ãš ã¬ã€ã€ãŒ ã«ã¯åœ±é¿ãäžããŸããã)
- ããŒããŒããã³ã³ãã€ã«ããæã«ãLink Time Optimization (LTO) ãæå¹ã«ããŸããããã¯åŠçã«æéãæãããŸãããã³ã³ãã€ã«ããããµã€ãºã倧å¹
ã«æžãããŸã (ãããŠããã¡ãŒã ãŠã§ã¢ãå°ããããã远å ã®æéã¯åãããªããããã§ã)ã
ãã ããLTO ãæå¹ãªå Žåãå€ã TMK ã®ãã¯ããšé¢æ°ã®æ©èœãå£ãããããèªåçã«ãããã®æ©èœãç¡å¹ã«ããŸããããã¯
AVR MCU ãªãã·ã§ã³
MCU = atmega32u4F_CPU = 16000000ARCH = AVR8F_USB = $(F_CPU)OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINTBOOTLOADER = atmel-dfuãšä»¥äžã®ãªãã·ã§ã³:atmel-dfulufa-dfuqmk-dfuhalfkaycaterinabootloadHIDUSBasp
æ©èœãªãã·ã§ã³ :id=feature-options
ãããã䜿ã£ãŠç¹å®ã®æ©èœã®ãã«ããæå¹ãŸãã¯ç¡å¹ã«ããŸããæå¹ã«ããã°ããã»ã©ãã¡ãŒã ãŠã§ã¢ã倧ãããªããMCU ã«ã¯å€§ãããããã¡ãŒã ãŠã§ã¢ãæ§ç¯ãããªã¹ã¯ããããŸãã
BOOTMAGIC_ENABLE- ä»®æ³ DIP ã¹ã€ããèšå®
MOUSEKEY_ENABLE- ããŠã¹ããŒ
EXTRAKEY_ENABLE- ãªãŒãã£ãªå¶åŸ¡ãšã·ã¹ãã å¶åŸ¡
CONSOLE_ENABLE- ãããã°çšã³ã³ãœãŒã«
COMMAND_ENABLE- ãããã°åã³èšå®çšã®ã³ãã³ã
COMBO_ENABLE- ããŒã³ã³ãæ©èœ
NKRO_ENABLE- USB N-ããŒããŒã«ãªãŒã㌠- ãããåäœããªãå Žåã¯ããããèŠãŠãã ãã: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE- ãªãŒãã£ãªãµãã·ã¹ãã ãæå¹ã«ããŸãã
RGBLIGHT_ENABLE- ããŒããŒãã¢ã³ããŒã©ã€ãæ©èœãæå¹ã«ããŸã
LEADER_ENABLE- ãªãŒããŒããŒã³ãŒããæå¹ã«ããŸã
MIDI_ENABLE- MIDI å¶åŸ¡
UNICODE_ENABLE- Unicode
BLUETOOTH- çŸåšã®ãªãã·ã§ã³ã¯ãAdafruitBLEãRN42
SPLIT_KEYBOARD- åå²ããŒããŒã (let's split ã bakingpy ã®ããŒããŒãã®ãããªãã¥ã¢ã« MCU) ã®ãµããŒããæå¹ã«ããquantum/split_common ã«ããå šãŠã®å¿ èŠãªãã¡ã€ã«ãã€ã³ã¯ã«ãŒãããŸã
CUSTOM_MATRIX- æšæºãããªãã¯ã¹èµ°æ»ã«ãŒãã³ãç¬èªã®ãã®ã«çœ®ãæããããšãã§ããŸãã
DEBOUNCE_TYPE- æšæºããŒãããŠã³ã¹ã«ãŒãã³ã代æ¿ãŸãã¯ç¬èªã®ãã®ã«çœ®ãæããããšãã§ããŸãã
WAIT_FOR_USB- ããŒããŒããèµ·åããåã«ãUSB æ¥ç¶ã確ç«ãããã®ãããŒããŒãã«åŸ æ©ãããŸã
NO_USB_STARTUP_CHECK- ããŒããŒãã®èµ·ååŸã® usb ãµã¹ãã³ããã§ãã¯ãç¡å¹ã«ããŸããéåžžãããŒããŒãã¯ã¿ã¹ã¯ãå®è¡ãããåã«ãã¹ãããŠã§ã€ã¯ ã¢ããããã®ãåŸ ã¡ãŸããåå²ããŒããŒãã¯ååã¯ãŠã§ã€ã¯ã¢ããã³ãŒã«ãååŸã§ããŸãããããã¹ã¿ã«ã³ãã³ããéä¿¡ããå¿ èŠãããããã圹ã«ç«ã¡ãŸãã
USB ãšã³ããã€ã³ãã®å¶é
USB çµç±ã§ãµãŒãã¹ãæäŸããããã«ãQMK 㯠USB ãšã³ããã€ã³ãã䜿ãå¿ èŠããããŸãã ãããã¯æéãªãªãœãŒã¹ã§ã: åãã€ã¯ãã³ã³ãããŒã©ã¯ç¹å®ã®æ°ããæã¡ãŸããã ããã¯äžç·ã«æå¹ã«ã§ããæ©èœãå¶éããŸãã å©çšå¯èœãªãšã³ããã€ã³ããè¶ ãããšããã«ããšã©ãŒãã²ãããããŸãã
以äžã®æ©èœã¯åå¥ã®ãšã³ããã€ã³ããå¿ èŠãšãããããããŸãã:
MOUSEKEY_ENABLEEXTRAKEY_ENABLECONSOLE_ENABLENKRO_ENABLEMIDI_ENABLERAW_ENABLEVIRTSER_ENABLE
ãšã³ããã€ã³ãã®äœ¿çšçãåäžãããããã«ãHID æ©èœãçµã¿åãããŠ1ã€ã®ãšã³ããã€ã³ãã䜿ãããã«ããããšãã§ããŸãã
ããã©ã«ãã§ã¯ãMOUSEKEYãEXTRAKEY ããã³ NKRO ãåäžã®ãšã³ããã€ã³ãã«çµåãããŸãã
åºæ¬ããŒããŒãæ©èœããKEYBOARD_SHARED_EP = yes ãèšå®ããããšã§åããšã³ããã€ã³ãã«çµåããããšãã§ããŸãã
ããã«ãããã1ã€ã®ãšã³ããã€ã³ããè§£æŸãããŸãããäžéšã® BIOS ã§ã¯ããŒãããŒããŒããããã³ã«ã®åãæ¿ããå®è£
ããªããããããŒããŒããåäœããªããªããããããŸããã
ããŠã¹ã®çµåããããŒãããŠã¹äºææ§ãç Žå£ããŸãã
ãã®æ©èœãå¿
èŠãªå Žåã¯ãMOUSE_SHARED_EP = no ãèšå®ããããšã§ãããŠã¹ãçµåããªãããã«ããããšãã§ããŸãã