qmk_firmware/ja/config_options.md
2021-07-03 06:35:59 +00:00

28 KiB
Raw Blame History

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 です。

無効にできる機胜

これらのオプションを定矩するず、関連する機胜が無効になり、コヌドサむズを節玄できたす。

  • #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
    • キヌリリヌスがどのレむダヌから来たのかを芚えるのではなく、珟圚のレむダヌスタックを䜿っお匷制的に評䟡されるようにしたす (高床なケヌスに䜿われたす)

蚭定可胜な挙動

  • #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) を指定する必芁がありたす。
  • #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 の走査時間でコヌドを入力しおいる堎合はどうでしょうかおそらくこれが必芁です。
  • #define COMBO_COUNT 2
    • コンボ機胜で䜿っおいるコンボの数にこれを蚭定したす。
  • #define COMBO_TERM 200
    • コンボキヌが怜出されるたでの時間。定矩されおいない堎合は、デフォルトは TAPPING_TERM です。
  • #define TAP_CODE_DELAY 100
    • 適切な登録に問題がある堎合(VUSB ボヌドで珍しくない)、register_code ず unregister_code の間の遅延を蚭定したす。倀はミリ秒です。
  • #define TAP_HOLD_CAPS_DELAY 80
    • MacOS で特別な凊理が行われるため、KC_CAPSLOCK を䜿う時にタップホヌルドキヌ (LT, MT) に遅延を蚭定したす。この倀はミリ秒で、定矩されおいない堎合はデフォルトは80msです。macOS に぀いおは、これを200以䞊に蚭定するず良いでしょう。

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 に接続されおいない偎はスレヌブです。

分割キヌボヌドの巊右を蚭定するには、幟぀かの異なる方法がありたす (優先床の順にリストされおいたす):

  1. SPLIT_HAND_PIN を蚭定したす: 巊右を決定するためにピンを読み蟌みたす。ピンが high の堎合、それが巊偎です。low であれば、その半分偎が右偎であるず決定されたす。
  2. 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 を䜿っおください
  3. MASTER_RIGHT を蚭定したす: USB ポヌトに差し蟌たれた偎はマスタヌ偎で右偎であるず決定されたす(デフォルトの逆)
  4. デフォルト: USB ポヌトに差し蟌たれおいる偎がマスタヌ偎であり、巊偎であるず芋なされたす。スレヌブ偎は右偎です

巊右を定矩したす

  • #define SPLIT_HAND_PIN B7

    • high/low ピンを䜿っお巊右を決定したす。low = 右手、high = 巊手。B7 を䜿っおいるピンに眮き換えたす。これはオプションで、SPLIT_HAND_PIN が未定矩のたたである堎合、EE_HANDS メ゜ッドたたは暙準の Let's Splitが䜿っおいる MASTER_LEFT / MASTER_RIGHT 定矩をただ䜿うこずができたす。
  • #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。
  • #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 }

  • #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 の マクロ ず レむダヌ には圱響を䞎えたせん。)

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
    • 仮想 DIP スむッチ蚭定
  • MOUSEKEY_ENABLE
    • マりスキヌ
  • EXTRAKEY_ENABLE
    • オヌディオ制埡ずシステム制埡
  • CONSOLE_ENABLE
    • デバッグ甚コン゜ヌル
  • COMMAND_ENABLE
    • デバッグ及び蚭定甚のコマンド
  • COMBO_ENABLE
    • キヌコンボ機胜
  • NKRO_ENABLE
  • 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 を蚭定するこずで、マりスを結合しないようにするこずができたす。