Skip to content

perf(matrix): idle-scan when no key is pressed or debouncing - #1048

Open
jpds wants to merge 1 commit into
rmk-rs:mainfrom
jpds:perf/matrix-idle-scan
Open

perf(matrix): idle-scan when no key is pressed or debouncing#1048
jpds wants to merge 1 commit into
rmk-rs:mainfrom
jpds:perf/matrix-idle-scan

Conversation

@jpds

@jpds jpds commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

This branch adds matrix_idle_scan_ms which matrix scans will sleep for between key presses, instead of busy-polling continuously.

A held or bouncing key keeps the scan at its active rate, so releases and chord changes still land immediately.

The polling matrix drivers scan at full rate even with nothing held,
which keeps the CPU busy (and awake) between keystrokes. Track whether a
pass saw any held or debouncing key, and sleep for `matrix_idle_scan_ms`
when it did not.

A held or bouncing key keeps the scan at its active rate, so releases and
chord changes still land immediately.
@HaoboGu

HaoboGu commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

I don't think this is needed?

For wireless keyboards, async_matrix should be enabled and when there's no key held, the keyboard just waits for interrupt, no scanning is performed. And for wired keyboards, always scanning in maximum speed is preferred I think

@github-actions

Copy link
Copy Markdown

Size Report

Example main PR Diff .text .data .bss
use_config/nrf52832_ble 398.1 KiB 398.1 KiB +0.00% ⬇️ -4 0 0
use_config/nrf52840_ble 440.7 KiB 440.7 KiB +0.00% ⬇️ -4 0 0
use_config/nrf52840_ble_split (central) 502.1 KiB 502.1 KiB +0.00% ⬇️ -4 0 0
use_config/nrf52840_ble_split (peripheral) 317.5 KiB 317.5 KiB +0.00% 0 0 0
use_config/pi_pico_w_ble 673.3 KiB 673.3 KiB +0.00% ⬆️ +64 0 0
use_config/rp2040 146.0 KiB 146.2 KiB +0.10% ⬆️ +152 0 0
use_config/rp2040_split (central) 159.6 KiB 159.7 KiB +0.03% ⬆️ +64 0 0
use_config/rp2040_split (peripheral) 27.9 KiB 27.9 KiB +0.16% ⬆️ +48 0 0
use_config/stm32f1 62.7 KiB 63.3 KiB +0.94% ⬆️ +608 0 0
use_config/stm32h7 100.8 KiB 100.8 KiB +0.00% 0 0 0
use_rust/nrf52832_ble 386.0 KiB 386.0 KiB +0.00% 0 0 0
use_rust/nrf52840_ble 435.6 KiB 435.6 KiB +0.00% ⬇️ -4 0 0
use_rust/nrf52840_ble_split (central) 505.6 KiB 505.6 KiB +0.00% 0 0 0
use_rust/nrf52840_ble_split (peripheral) 315.3 KiB 315.3 KiB +0.00% ⬇️ -4 0 0
use_rust/pi_pico_w_ble 672.7 KiB 672.8 KiB +0.01% ⬆️ +108 0 0
use_rust/rp2040 145.5 KiB 145.6 KiB +0.02% ⬆️ +44 0 0
use_rust/rp2040_split (central) 158.3 KiB 158.5 KiB +0.09% ⬆️ +160 0 0
use_rust/rp2040_split (peripheral) 28.2 KiB 28.4 KiB +0.38% ⬆️ +112 0 0
use_rust/stm32f1 61.9 KiB 62.1 KiB +0.18% ⬆️ +116 0 0
use_rust/stm32h7 119.6 KiB 119.8 KiB +0.14% ⬆️ +172 0 0
use_config/nrf52832_ble — 398.1 KiB → 398.1 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 365360	   8620	  33672	 407652	  63864	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 365364	   8620	  33672	 407656	  63868	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +3.62Ki  [ = ]       0    .debug_str
  +0.1%    +444  [ = ]       0    .strtab
 +10.0%      +5  [ = ]       0    [Unmapped]
  +0.0%      +2  [ = ]       0    .debug_loc
  -0.0%      -4  -0.0%      -4    .text
  -0.2%     -16  [ = ]       0    .debug_abbrev
  -0.1%    -337  [ = ]       0    .debug_line
  -0.0%    -460  [ = ]       0    .debug_info
  +0.0% +3.26Ki  -0.0%      -4    TOTAL
use_config/nrf52840_ble — 440.7 KiB → 440.7 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 398948	   8628	  43704	 451280	  6e2d0	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 398952	   8628	  43704	 451284	  6e2d4	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +4.38Ki  [ = ]       0    .debug_str
  +0.1%    +496  [ = ]       0    .strtab
  +0.5%     +39  [ = ]       0    .debug_abbrev
  +5.9%      +3  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  -0.0%     -71  [ = ]       0    .debug_info
  -0.1%    -223  [ = ]       0    .debug_line
  +0.1% +4.62Ki  -0.0%      -4    TOTAL
use_config/nrf52840_ble_split (central) — 502.1 KiB → 502.1 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 456400	   8684	  49040	 514124	  7d84c	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 456404	   8684	  49040	 514128	  7d850	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +250  [ = ]       0    .debug_str
  +0.0%     +12  [ = ]       0    .debug_loc
  +8.3%      +4  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  -0.0%     -11  [ = ]       0    .strtab
  -0.0%    -138  [ = ]       0    .debug_info
  -0.1%    -221  [ = ]       0    .debug_line
  -0.0%    -108  -0.0%      -4    TOTAL
use_config/nrf52840_ble_split (peripheral) — 317.5 KiB → 317.5 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 291464	   8500	  25184	 325148	  4f61c	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 291464	   8500	  25184	 325148	  4f61c	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +12  [ = ]       0    .debug_loc
  +0.0%      +6  [ = ]       0    .debug_str
  +0.0%      +5  [ = ]       0    .strtab
  -5.3%      -3  [ = ]       0    [Unmapped]
  +0.0%     +20  [ = ]       0    TOTAL
use_config/pi_pico_w_ble — 673.3 KiB → 673.3 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 635756	      0	  53736	 689492	  a8554	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 635692	      0	  53736	 689428	  a8514	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +457  [ = ]       0    .debug_loc
  +0.0%    +117  [ = ]       0    .debug_info
  +0.1%     +96  [ = ]       0    .symtab
  +0.0%     +64  [ = ]       0    .debug_ranges
  +0.0%     +64  +0.0%     +64    .text
  +0.0%     +51  [ = ]       0    .debug_str
  +0.0%     +30  [ = ]       0    .strtab
  +0.0%     +19  [ = ]       0    .debug_line
  -3.0%      -2  [ = ]       0    [Unmapped]
  +0.0%    +896  +0.0%     +64    TOTAL
use_config/rp2040 — 146.0 KiB → 146.2 KiB (+0.10% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 135808	      0	  13884	 149692	  248bc	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 135656	      0	  13884	 149540	  24824	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +152  +0.1%    +152    .text
  +0.0%    +144  [ = ]       0    .debug_info
  +0.1%     +98  [ = ]       0    .debug_line
  +0.1%     +72  [ = ]       0    .debug_ranges
  +0.1%     +32  [ = ]       0    .symtab
  +0.0%     +13  [ = ]       0    .debug_loc
   +20%      +8  [ = ]       0    [Unmapped]
  +0.0%      +3  [ = ]       0    .strtab
  -0.0%      -6  [ = ]       0    .debug_str
  +0.0%    +516  +0.1%    +152    TOTAL
use_config/rp2040_split (central) — 159.6 KiB → 159.7 KiB (+0.03% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 148688	      0	  14836	 163524	  27ec4	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 148624	      0	  14836	 163460	  27e84	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +725  [ = ]       0    .debug_str
  +0.0%    +133  [ = ]       0    .debug_info
  +0.0%     +64  +0.0%     +64    .text
  +0.0%     +34  [ = ]       0    .strtab
  +0.0%     +32  [ = ]       0    .debug_ranges
  -0.2%     -64  [ = ]       0    .symtab
  -0.0%     -68  [ = ]       0    .debug_line
  -0.1%    -320  [ = ]       0    .debug_loc
  +0.0%    +536  +0.0%     +64    TOTAL
use_config/rp2040_split (peripheral) — 27.9 KiB → 27.9 KiB (+0.16% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25744	     60	   2804	  28608	   6fc0	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25696	     60	   2804	  28560	   6f90	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.6%    +466  [ = ]       0    .debug_loc
  +0.0%    +196  [ = ]       0    .debug_str
  +0.9%    +160  [ = ]       0    .debug_ranges
  +0.2%    +109  [ = ]       0    .debug_line
  +0.2%     +48  +0.2%     +48    .text
  +0.0%     +22  [ = ]       0    .debug_info
  +0.0%      +1  [ = ]       0    .strtab
 -20.0%     -10  [ = ]       0    [Unmapped]
  +0.1%    +992  +0.2%     +48    TOTAL
use_config/stm32f1 — 62.7 KiB → 63.3 KiB (+0.94% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  58420	     28	   6344	  64792	   fd18	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  57812	     28	   6344	  64184	   fab8	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +1.52Ki  [ = ]       0    .debug_info
  +1.1%    +608  +1.1%    +608    .text
  +0.1%    +486  [ = ]       0    .debug_str
  +0.2%    +226  [ = ]       0    .debug_line
  +0.3%    +128  [ = ]       0    .debug_ranges
  -4.5%      -3  [ = ]       0    [Unmapped]
  -0.0%     -22  [ = ]       0    .debug_loc
  -0.5%     -32  [ = ]       0    .debug_aranges
  -0.5%     -64  [ = ]       0    .debug_frame
  -0.2%    -100  [ = ]       0    .strtab
  -0.6%    -128  [ = ]       0    .symtab
  +0.1% +2.59Ki  +0.9%    +608    TOTAL
use_config/stm32h7 — 100.8 KiB → 100.8 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  94804	    264	   8104	 103172	  19304	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  94804	    264	   8104	 103172	  19304	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%      +2  [ = ]       0    .debug_line
  +4.0%      +2  [ = ]       0    [Unmapped]
  +0.0%      +4  [ = ]       0    TOTAL
use_rust/nrf52832_ble — 386.0 KiB → 386.0 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 352992	   8620	  33608	 395220	  607d4	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 352992	   8620	  33608	 395220	  607d4	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +30  [ = ]       0    .strtab
  -5.8%      -4  [ = ]       0    [Unmapped]
  -0.0%     -10  [ = ]       0    .debug_loc
  -0.0%     -11  [ = ]       0    .debug_line
  -0.0%     -37  [ = ]       0    .debug_str
  -0.0%     -72  [ = ]       0    .debug_info
  -0.0%    -104  [ = ]       0    TOTAL
use_rust/nrf52840_ble — 435.6 KiB → 435.6 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 396460	   8628	  40944	 446032	  6ce50	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 396464	   8628	  40944	 446036	  6ce54	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +20  [ = ]       0    .strtab
  +6.4%      +3  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  -0.0%      -6  [ = ]       0    .debug_line
  -0.0%     -45  [ = ]       0    .debug_str
  -0.0%     -72  [ = ]       0    .debug_info
  -0.0%    -104  -0.0%      -4    TOTAL
use_rust/nrf52840_ble_split (central) — 505.6 KiB → 505.6 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 458064	   8684	  51008	 517756	  7e67c	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 458064	   8684	  51008	 517756	  7e67c	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +10  [ = ]       0    .debug_loc
  +0.0%      +7  [ = ]       0    .debug_str
  +5.8%      +3  [ = ]       0    [Unmapped]
  +0.0%      +2  [ = ]       0    .debug_line
  -0.0%      -2  [ = ]       0    .strtab
  +0.0%     +20  [ = ]       0    TOTAL
use_rust/nrf52840_ble_split (peripheral) — 315.3 KiB → 315.3 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 289448	   8500	  24952	 322900	  4ed54	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 289452	   8500	  24952	 322904	  4ed58	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +232  [ = ]       0    .debug_info
  +0.0%    +162  [ = ]       0    .debug_str
  +0.0%     +95  [ = ]       0    .debug_line
  +0.0%     +10  [ = ]       0    .debug_loc
  +0.0%     +10  [ = ]       0    .strtab
  -1.9%      -1  [ = ]       0    [Unmapped]
  -0.0%      -4  -0.0%      -4    .text
  +0.0%    +504  -0.0%      -4    TOTAL
use_rust/pi_pico_w_ble — 672.7 KiB → 672.8 KiB (+0.01% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 635580	      0	  53416	 688996	  a8364	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 635472	      0	  53416	 688888	  a82f8	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +167  [ = ]       0    .debug_line
  +0.0%    +139  [ = ]       0    .debug_info
  +0.0%    +108  +0.0%    +108    .text
  +0.0%     +72  [ = ]       0    .debug_ranges
  +0.0%      +7  [ = ]       0    .debug_str
 -18.0%     -11  [ = ]       0    [Unmapped]
  -0.0%     -16  [ = ]       0    .strtab
  -0.0%     -32  [ = ]       0    .symtab
  -0.1%    -974  [ = ]       0    .debug_loc
  -0.0%    -540  +0.0%    +108    TOTAL
use_rust/rp2040 — 145.5 KiB → 145.6 KiB (+0.02% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 135324	      0	  13724	 149048	  24638	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 135280	      0	  13724	 149004	  2460c	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +414  [ = ]       0    .debug_loc
  +0.1%    +205  [ = ]       0    .debug_line
  +0.0%    +184  [ = ]       0    .debug_info
  +0.4%    +128  [ = ]       0    .symtab
  +0.0%     +44  +0.0%     +44    .text
  +0.0%     +23  [ = ]       0    .debug_str
  +0.0%     +14  [ = ]       0    .strtab
 -13.1%      -8  [ = ]       0    [Unmapped]
  -0.0%     -40  [ = ]       0    .debug_ranges
  +0.0%    +964  +0.0%     +44    TOTAL
use_rust/rp2040_split (central) — 158.3 KiB → 158.5 KiB (+0.09% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 147716	      0	  14580	 162296	  279f8	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 147556	      0	  14580	 162136	  27958	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.4% +1.42Ki  [ = ]       0    .debug_loc
  +0.6%    +224  [ = ]       0    .symtab
  +0.1%    +160  +0.1%    +160    .text
  +0.0%    +123  [ = ]       0    .debug_info
  +0.0%     +28  [ = ]       0    .strtab
  +0.0%     +16  [ = ]       0    .debug_ranges
  -2.2%      -1  [ = ]       0    [Unmapped]
  -0.0%     -90  [ = ]       0    .debug_str
  -0.1%    -117  [ = ]       0    .debug_line
  +0.0% +1.75Ki  +0.1%    +160    TOTAL
use_rust/rp2040_split (peripheral) — 28.2 KiB → 28.4 KiB (+0.38% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25908	     60	   3068	  29036	   716c	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25796	     60	   3068	  28924	   70fc	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +3.4% +2.30Ki  [ = ]       0    .debug_loc
  +0.2%    +819  [ = ]       0    .debug_info
  +2.1%    +352  [ = ]       0    .debug_ranges
  +0.5%    +112  +0.5%    +112    .text
  +0.4%    +109  [ = ]       0    .strtab
  +0.0%     +92  [ = ]       0    .debug_str
  +0.1%     +64  [ = ]       0    .debug_line
  +0.6%     +48  [ = ]       0    .symtab
  +0.5%     +28  [ = ]       0    .debug_frame
   +42%     +20  [ = ]       0    [Unmapped]
  +0.1%      +8  [ = ]       0    .debug_aranges
  +0.3% +3.91Ki  +0.4%    +112    TOTAL
use_rust/stm32f1 — 61.9 KiB → 62.1 KiB (+0.18% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  57244	     28	   6272	  63544	   f838	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  57128	     28	   6272	  63428	   f7c4	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +534  [ = ]       0    .debug_str
  +0.3%    +343  [ = ]       0    .debug_loc
  +0.7%    +128  [ = ]       0    .symtab
  +0.2%    +116  +0.2%    +116    .text
  +0.1%     +98  [ = ]       0    .debug_line
  +0.2%     +81  [ = ]       0    .strtab
  +0.2%     +80  [ = ]       0    .debug_ranges
  +0.4%     +48  [ = ]       0    .debug_frame
  +0.5%     +24  [ = ]       0    .debug_aranges
   +19%      +9  [ = ]       0    [Unmapped]
  -0.0%     -29  [ = ]       0    .debug_info
  +0.1% +1.40Ki  +0.2%    +116    TOTAL
use_rust/stm32h7 — 119.6 KiB → 119.8 KiB (+0.14% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 108320	    320	  14004	 122644	  1df14	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 108148	    320	  14004	 122472	  1de68	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3%    +470  [ = ]       0    .debug_line
  +0.5%    +400  [ = ]       0    .debug_ranges
  +0.2%    +172  +0.2%    +172    .text
  +0.0%     +91  [ = ]       0    .debug_info
  -0.0%      -1  [ = ]       0    .debug_loc
  -0.0%      -1  [ = ]       0    .debug_str
 -17.2%     -10  [ = ]       0    [Unmapped]
  -0.0%     -17  [ = ]       0    .strtab
  -0.2%     -64  [ = ]       0    .symtab
  +0.0% +1.02Ki  +0.1%    +172    TOTAL

@jpds

jpds commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

My ⌨️ isn't wireless, and I think there is a benefit to not having a small ARM CPU spin cycles continuously (even if it's just for power or wear-and-tear). ZMK also ships with this option+setting: https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/kscan.md whilst, interestingly, there is a request for QMK to add this: qmk/qmk_firmware#23209 .

Beyond that, I don't think there's a perceptible difference between always-on and 10ms.

@HaoboGu

HaoboGu commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

For power or wear-and-tear, you can also enable async_matrix in wired keyboard, which I think is much better.

@jpds

jpds commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Just tried re-enabling async matrix on my ZSA Voyager and I remembered why I abandoned this months ago: it only has an MCU on the left hand side so, whilst that half can be made async - the right still has to run in sync mode/full power.

This branch probably makes more sense for keyboards in a hardware configuration like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants