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_MACRO
MACRO()
ãaction_get_macro()
(éæšå¥š) ã䜿ãå€ã圢åŒã®ãã¯ãåŠçãç¡å¹ã«ããŸã
#define NO_ACTION_FUNCTION
fn_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_HOLD
TAPPING_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 2000
SPLIT_USB_DETECT
ã䜿ãæã®ãã¹ã¿/ã¹ã¬ãŒããæ€åºããå Žåã®æ倧ã¿ã€ã ã¢ãŠã
-
#define SPLIT_USB_TIMEOUT_POLL 10
SPLIT_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 = atmega32u4
F_CPU = 16000000
ARCH = AVR8
F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
BOOTLOADER = atmel-dfu
ãšä»¥äžã®ãªãã·ã§ã³:atmel-dfu
lufa-dfu
qmk-dfu
halfkay
caterina
bootloadHID
USBasp
æ©èœãªãã·ã§ã³ :id=feature-options
ãããã䜿ã£ãŠç¹å®ã®æ©èœã®ãã«ããæå¹ãŸãã¯ç¡å¹ã«ããŸããæå¹ã«ããã°ããã»ã©ãã¡ãŒã ãŠã§ã¢ã倧ãããªããMCU ã«ã¯å€§ãããããã¡ãŒã ãŠã§ã¢ãæ§ç¯ãããªã¹ã¯ããããŸãã
BOOTMAGIC_ENABLE
- ããŒãããžãã¯ã©ã€ããæå¹ã«ããŸã
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_ENABLE
EXTRAKEY_ENABLE
CONSOLE_ENABLE
NKRO_ENABLE
MIDI_ENABLE
RAW_ENABLE
VIRTSER_ENABLE
ãšã³ããã€ã³ãã®äœ¿çšçãåäžãããããã«ãHID æ©èœãçµã¿åãããŠ1ã€ã®ãšã³ããã€ã³ãã䜿ãããã«ããããšãã§ããŸãã
ããã©ã«ãã§ã¯ãMOUSEKEY
ãEXTRAKEY
ããã³ NKRO
ãåäžã®ãšã³ããã€ã³ãã«çµåãããŸãã
åºæ¬ããŒããŒãæ©èœããKEYBOARD_SHARED_EP = yes
ãèšå®ããããšã§åããšã³ããã€ã³ãã«çµåããããšãã§ããŸãã
ããã«ãããã1ã€ã®ãšã³ããã€ã³ãã解æŸãããŸãããäžéšã® BIOS ã§ã¯ããŒãããŒããŒããããã³ã«ã®åãæ¿ããå®è£
ããªããããããŒããŒããåäœããªããªããããããŸããã
ããŠã¹ã®çµåããããŒãããŠã¹äºææ§ãç Žå£ããŸãã
ãã®æ©èœãå¿
èŠãªå Žåã¯ãMOUSE_SHARED_EP = no
ãèšå®ããããšã§ãããŠã¹ãçµåããªãããã«ããããšãã§ããŸãã