Skip to content

feat: add LatchTap keyboard action - #939

Open
braindefender wants to merge 1 commit into
rmk-rs:mainfrom
braindefender:latchtap
Open

feat: add LatchTap keyboard action#939
braindefender wants to merge 1 commit into
rmk-rs:mainfrom
braindefender:latchtap

Conversation

@braindefender

Copy link
Copy Markdown
Contributor

LatchTap(modifier, key) is a keymap action that latches a modifier for the lifetime of the current layer and taps a key under it on each press.

Unlike LM(layer, modifier), the modifier is not bound to the layer-switch key. It is bound to this dedicated key, so you can place several independent LatchTap keys (with different modifiers/keys) on the same layer.

@github-actions

Copy link
Copy Markdown

Size Report

Example main PR Diff .text .data .bss
use_config/nrf52832_ble 394.5 KiB 395.5 KiB +0.24% ⬆️ +980 0 +8
use_config/nrf52840_ble 443.6 KiB 444.2 KiB +0.15% ⬆️ +700 0 +8
use_config/nrf52840_ble_split (central) 493.3 KiB 494.0 KiB +0.15% ⬆️ +792 0 +8
use_config/nrf52840_ble_split (peripheral) 317.3 KiB 317.4 KiB +0.04% ⬆️ +148 0 0
use_config/pi_pico_w_ble 668.0 KiB 668.7 KiB +0.10% ⬆️ +692 0 +8
use_config/rp2040 149.4 KiB 150.1 KiB +0.45% ⬆️ +688 0 +8
use_config/rp2040_split (central) 162.9 KiB 163.7 KiB +0.45% ⬆️ +748 0 +8
use_config/rp2040_split (peripheral) 27.8 KiB 27.8 KiB +0.00% 0 0 0
use_config/stm32f1 63.1 KiB 63.6 KiB +0.75% ⬆️ +480 0 +8
use_config/stm32h7 100.2 KiB 100.8 KiB +0.57% ⬆️ +580 0 +8
use_rust/nrf52832_ble 382.4 KiB 382.5 KiB +0.01% ⬆️ +52 0 +8
use_rust/nrf52840_ble 439.9 KiB 440.1 KiB +0.04% ⬆️ +212 0 +8
use_rust/nrf52840_ble_split (central) 503.4 KiB 503.9 KiB +0.10% ⬆️ +552 0 +8
use_rust/nrf52840_ble_split (peripheral) 313.7 KiB 313.8 KiB +0.04% ⬆️ +156 0 0
use_rust/pi_pico_w_ble 668.2 KiB 668.9 KiB +0.10% ⬆️ +728 0 +8
use_rust/rp2040 148.9 KiB 149.6 KiB +0.47% ⬆️ +716 0 +8
use_rust/rp2040_split (central) 161.6 KiB 162.4 KiB +0.46% ⬆️ +764 0 +8
use_rust/rp2040_split (peripheral) 28.2 KiB 28.2 KiB +0.00% 0 0 0
use_rust/stm32f1 62.7 KiB 63.1 KiB +0.74% ⬆️ +472 0 +8
use_rust/stm32h7 122.5 KiB 122.9 KiB +0.32% ⬆️ +400 0 +8
use_config/nrf52832_ble — 394.5 KiB → 395.5 KiB (+0.24% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 365496	   4588	  34864	 404948	  62dd4	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 364516	   4588	  34856	 403960	  629f8	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +1.85Ki  [ = ]       0    .debug_str
  +0.3%    +916  +0.3%    +916    .text
  +0.3%    +664  [ = ]       0    .debug_ranges
  +0.2%    +576  [ = ]       0    .strtab
  +0.2%    +224  [ = ]       0    .symtab
  +0.0%    +156  [ = ]       0    .debug_line
  +0.3%    +144  [ = ]       0    .debug_frame
  +0.0%    +132  [ = ]       0    .debug_info
  +0.2%     +64  +0.2%     +64    .rodata
  +0.1%     +56  [ = ]       0    .debug_aranges
  [ = ]       0  +0.0%      +8    .bss
 -33.3%     -20  [ = ]       0    [Unmapped]
  -1.1%     -86  [ = ]       0    .debug_abbrev
  -0.1%    -353  [ = ]       0    .debug_loc
  +0.1% +4.27Ki  +0.2%    +988    TOTAL
use_config/nrf52840_ble — 443.6 KiB → 444.2 KiB (+0.15% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 398812	   4596	  51504	 454912	  6f100	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 398112	   4596	  51496	 454204	  6ee3c	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +2.29Ki  [ = ]       0    .debug_loc
  +0.0% +1.42Ki  [ = ]       0    .debug_str
  +0.5% +1.09Ki  [ = ]       0    .debug_ranges
  +0.2%    +640  +0.2%    +640    .text
  +0.1%    +419  [ = ]       0    .strtab
  +0.1%    +317  [ = ]       0    .debug_line
  +0.0%    +199  [ = ]       0    .debug_info
  +0.0%     +64  [ = ]       0    .symtab
  +0.1%     +60  +0.1%     +60    .rodata
  +0.5%     +39  [ = ]       0    .debug_abbrev
  +0.0%     +16  [ = ]       0    .debug_frame
  [ = ]       0  +0.0%      +8    .bss
  +6.9%      +4  [ = ]       0    [Unmapped]
  -0.0%      -8  [ = ]       0    .debug_aranges
  +0.1% +6.50Ki  +0.2%    +708    TOTAL
use_config/nrf52840_ble_split (central) — 493.3 KiB → 494.0 KiB (+0.15% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 454344	   4652	  46904	 505900	  7b82c	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 453552	   4652	  46896	 505100	  7b50c	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.68Ki  [ = ]       0    .debug_str
  +0.2%    +728  +0.2%    +728    .text
  +0.3%    +720  [ = ]       0    .debug_ranges
  +0.0%    +624  [ = ]       0    .debug_info
  +0.2%    +619  [ = ]       0    .strtab
  +0.1%    +286  [ = ]       0    .debug_line
  +0.2%    +256  [ = ]       0    .symtab
  +0.3%    +160  [ = ]       0    .debug_frame
  +0.1%     +64  [ = ]       0    .debug_aranges
  +0.1%     +64  +0.1%     +64    .rodata
  [ = ]       0  +0.0%      +8    .bss
  +0.9%      +8  [ = ]       0    .defmt
  +3.5%      +2  [ = ]       0    [Unmapped]
  -0.0%     -39  [ = ]       0    .debug_loc
  +0.1% +5.09Ki  +0.2%    +800    TOTAL
use_config/nrf52840_ble_split (peripheral) — 317.3 KiB → 317.4 KiB (+0.04% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 293440	   4468	  27152	 325060	  4f5c4	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 293292	   4468	  27152	 324912	  4f530	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.10Ki  [ = ]       0    .debug_str
  +0.1% +1.02Ki  [ = ]       0    .debug_info
  +0.1%    +572  [ = ]       0    .debug_loc
  +0.1%    +331  [ = ]       0    .strtab
  +0.1%    +148  +0.1%    +148    .text
  +0.1%    +147  [ = ]       0    .debug_line
  +0.1%    +136  [ = ]       0    .debug_ranges
  +0.1%    +128  [ = ]       0    .symtab
  +0.2%     +76  [ = ]       0    .debug_frame
  +0.1%     +32  [ = ]       0    .debug_aranges
   +26%     +12  [ = ]       0    [Unmapped]
  +0.1% +3.67Ki  +0.0%    +148    TOTAL
use_config/pi_pico_w_ble — 668.0 KiB → 668.7 KiB (+0.10% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 630000	      0	  54708	 684708	  a72a4	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 629308	      0	  54700	 684008	  a6fe8	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2% +6.49Ki  [ = ]       0    .debug_str
  +0.1% +2.73Ki  [ = ]       0    .debug_info
  +0.1% +1.40Ki  [ = ]       0    .debug_loc
  +0.3% +1.10Ki  [ = ]       0    .strtab
  +0.2%    +763  [ = ]       0    .debug_line
  +0.2%    +628  +0.2%    +628    .text
  +0.2%    +608  [ = ]       0    .debug_ranges
  +0.0%     +64  +0.0%     +64    .rodata
  +0.1%     +60  [ = ]       0    .debug_frame
  +0.1%     +48  [ = ]       0    .symtab
  +0.0%     +16  [ = ]       0    .debug_aranges
   +29%     +15  [ = ]       0    [Unmapped]
  [ = ]       0  +0.0%      +8    .bss
  +0.1% +13.9Ki  +0.1%    +700    TOTAL
use_config/rp2040 — 149.4 KiB → 150.1 KiB (+0.45% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 138044	      0	  15636	 153680	  25850	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 137356	      0	  15628	 152984	  25598	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +2.78Ki  [ = ]       0    .debug_info
  +0.1% +1.80Ki  [ = ]       0    .debug_str
  +0.4%    +750  [ = ]       0    .debug_line
  +0.5%    +624  +0.5%    +624    .text
  +0.2%    +532  [ = ]       0    .debug_loc
  +0.4%    +461  [ = ]       0    .strtab
  +0.5%    +456  [ = ]       0    .debug_ranges
  +0.4%     +64  +0.4%     +64    .rodata
  +0.3%     +60  [ = ]       0    .debug_frame
   +68%     +23  [ = ]       0    [Unmapped]
  +0.1%     +16  [ = ]       0    .debug_aranges
  +0.0%     +16  [ = ]       0    .symtab
  [ = ]       0  +0.1%      +8    .bss
  +0.2% +7.52Ki  +0.5%    +696    TOTAL
use_config/rp2040_split (central) — 162.9 KiB → 163.7 KiB (+0.45% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 151096	      0	  16484	 167580	  28e9c	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 150348	      0	  16476	 166824	  28ba8	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2% +2.78Ki  [ = ]       0    .debug_info
  +0.1% +1.81Ki  [ = ]       0    .debug_str
  +0.4%    +707  [ = ]       0    .debug_line
  +0.5%    +684  +0.5%    +684    .text
  +0.2%    +551  [ = ]       0    .debug_loc
  +0.5%    +456  [ = ]       0    .debug_ranges
  +0.3%    +455  [ = ]       0    .strtab
  +0.3%     +64  +0.3%     +64    .rodata
  +0.3%     +60  [ = ]       0    .debug_frame
   +45%     +17  [ = ]       0    [Unmapped]
  +0.1%     +16  [ = ]       0    .debug_aranges
  +0.0%     +16  [ = ]       0    .symtab
  [ = ]       0  +0.1%      +8    .bss
  +0.2% +7.54Ki  +0.5%    +756    TOTAL
use_config/rp2040_split (peripheral) — 27.8 KiB → 27.8 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25612	     60	   2796	  28468	   6f34	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25612	     60	   2796	  28468	   6f34	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +47  [ = ]       0    .debug_info
  +0.0%     +34  [ = ]       0    .debug_str
  -0.0%      -2  [ = ]       0    .strtab
  -7.0%      -3  [ = ]       0    [Unmapped]
  +0.0%     +76  [ = ]       0    TOTAL
use_config/stm32f1 — 63.1 KiB → 63.6 KiB (+0.75% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  57528	     28	   7596	  65152	   fe80	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  57048	     28	   7588	  64664	   fc98	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +1.45Ki  [ = ]       0    .debug_info
  +0.6%    +711  [ = ]       0    .debug_loc
  +0.1%    +618  [ = ]       0    .debug_str
  +1.2%    +496  [ = ]       0    .debug_ranges
  +0.9%    +480  +0.9%    +480    .text
  +0.4%    +336  [ = ]       0    .debug_line
  +0.0%     +22  [ = ]       0    .strtab
  [ = ]       0  +0.1%      +8    .bss
  +7.0%      +4  [ = ]       0    [Unmapped]
  -0.1%      -8  [ = ]       0    .debug_aranges
  -0.2%     -32  [ = ]       0    .symtab
  +0.2% +4.02Ki  +0.8%    +488    TOTAL
use_config/stm32h7 — 100.2 KiB → 100.8 KiB (+0.57% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  93100	    264	   9824	 103188	  19314	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  92520	    264	   9816	 102600	  190c8	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2% +1.55Ki  [ = ]       0    .debug_info
  +0.4%    +732  [ = ]       0    .debug_loc
  +0.6%    +500  +0.6%    +500    .text
  +0.6%    +384  [ = ]       0    .debug_ranges
  +0.3%    +356  [ = ]       0    .debug_line
  +0.6%     +80  +0.6%     +80    .rodata
  [ = ]       0  +0.1%      +8    .bss
  -6.2%      -4  [ = ]       0    [Unmapped]
  -0.0%      -8  [ = ]       0    .debug_aranges
  -0.1%     -16  [ = ]       0    .symtab
  -0.1%     -92  [ = ]       0    .strtab
  -0.0%    -713  [ = ]       0    .debug_str
  +0.1% +2.74Ki  +0.6%    +588    TOTAL
use_rust/nrf52832_ble — 382.4 KiB → 382.5 KiB (+0.01% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 353228	   4588	  33848	 391664	  5f9f0	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 353176	   4588	  33840	 391604	  5f9b4	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2% +3.08Ki  [ = ]       0    .debug_info
  +0.0% +1.46Ki  [ = ]       0    .debug_str
  +0.3%    +733  [ = ]       0    .strtab
  +0.2%    +702  [ = ]       0    .debug_line
  +0.2%     +64  +0.2%     +64    .rodata
   +35%     +15  [ = ]       0    [Unmapped]
  [ = ]       0  +0.0%      +8    .bss
  +1.7%      +8  [ = ]       0    .defmt
  -0.0%     -12  -0.0%     -12    .text
  -0.2%     -16  [ = ]       0    .debug_abbrev
  -0.3%    -112  [ = ]       0    .debug_aranges
  -0.4%    -168  [ = ]       0    .debug_frame
  -0.3%    -400  [ = ]       0    .symtab
  -0.5%   -1016  [ = ]       0    .debug_ranges
  -0.6% -3.90Ki  [ = ]       0    .debug_loc
  +0.0%    +444  +0.0%     +60    TOTAL
use_rust/nrf52840_ble — 439.9 KiB → 440.1 KiB (+0.04% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 399068	   4588	  46984	 450640	  6e050	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 398856	   4588	  46976	 450420	  6df74	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.4% +3.21Ki  [ = ]       0    .debug_loc
  +0.1% +2.64Ki  [ = ]       0    .debug_info
  +0.2%    +520  [ = ]       0    .debug_ranges
  +0.1%    +194  [ = ]       0    .debug_line
  +0.0%    +148  +0.0%    +148    .text
  +0.1%     +96  [ = ]       0    .symtab
  +0.2%     +64  +0.2%     +64    .rodata
  +0.1%     +60  [ = ]       0    .debug_frame
  +0.0%     +24  [ = ]       0    .strtab
  +0.0%     +16  [ = ]       0    .debug_aranges
   +15%      +9  [ = ]       0    [Unmapped]
  [ = ]       0  +0.0%      +8    .bss
  -0.1% -2.66Ki  [ = ]       0    .debug_str
  +0.1% +4.29Ki  +0.0%    +220    TOTAL
use_rust/nrf52840_ble_split (central) — 503.4 KiB → 503.9 KiB (+0.10% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 458700	   4652	  52648	 516000	  7dfa0	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 458148	   4652	  52640	 515440	  7dd70	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +3.47Ki  [ = ]       0    .debug_info
  +0.0% +2.08Ki  [ = ]       0    .debug_str
  +0.2% +1.50Ki  [ = ]       0    .debug_loc
  +0.2%    +647  [ = ]       0    .strtab
  +0.1%    +549  [ = ]       0    .debug_line
  +0.1%    +488  +0.1%    +488    .text
  +0.2%    +320  [ = ]       0    .symtab
  +0.1%    +256  [ = ]       0    .debug_ranges
  +0.3%    +172  [ = ]       0    .debug_frame
  +0.1%     +72  [ = ]       0    .debug_aranges
  +0.1%     +64  +0.1%     +64    .rodata
  [ = ]       0  +0.0%      +8    .bss
 -16.7%     -11  [ = ]       0    [Unmapped]
  +0.1% +9.54Ki  +0.1%    +560    TOTAL
use_rust/nrf52840_ble_split (peripheral) — 313.7 KiB → 313.8 KiB (+0.04% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 291512	   4468	  25400	 321380	  4e764	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 291356	   4468	  25400	 321224	  4e6c8	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.07Ki  [ = ]       0    .debug_str
  +0.1% +1.03Ki  [ = ]       0    .debug_info
  +0.1%    +574  [ = ]       0    .debug_loc
  +0.1%    +314  [ = ]       0    .strtab
  +0.1%    +156  +0.1%    +156    .text
  +0.1%    +146  [ = ]       0    .debug_line
  +0.1%    +136  [ = ]       0    .debug_ranges
  +0.1%    +128  [ = ]       0    .symtab
  +0.2%     +76  [ = ]       0    .debug_frame
  +0.1%     +32  [ = ]       0    .debug_aranges
  +3.1%      +2  [ = ]       0    [Unmapped]
  +0.1% +3.62Ki  +0.0%    +156    TOTAL
use_rust/pi_pico_w_ble — 668.2 KiB → 668.9 KiB (+0.10% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 630128	      0	  54852	 684980	  a73b4	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 629400	      0	  54844	 684244	  a70d4	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1% +2.75Ki  [ = ]       0    .debug_info
  +0.2% +1.94Ki  [ = ]       0    .debug_loc
  +0.0% +1.54Ki  [ = ]       0    .debug_str
  +0.2%    +691  [ = ]       0    .debug_line
  +0.2%    +664  +0.2%    +664    .text
  +0.2%    +584  [ = ]       0    .debug_ranges
  +0.1%    +453  [ = ]       0    .strtab
  +0.0%     +64  +0.0%     +64    .rodata
  +0.1%     +60  [ = ]       0    .debug_frame
  +0.1%     +48  [ = ]       0    .symtab
  +0.0%     +16  [ = ]       0    .debug_aranges
  [ = ]       0  +0.0%      +8    .bss
   +14%      +8  [ = ]       0    [Unmapped]
  +0.1% +8.76Ki  +0.1%    +736    TOTAL
use_rust/rp2040 — 148.9 KiB → 149.6 KiB (+0.47% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 137644	      0	  15508	 153152	  25640	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 136928	      0	  15500	 152428	  2536c	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +2.74Ki  [ = ]       0    .debug_info
  +0.1% +1.80Ki  [ = ]       0    .debug_str
  +0.4% +1.20Ki  [ = ]       0    .debug_loc
  +0.4%    +747  [ = ]       0    .debug_line
  +0.5%    +652  +0.5%    +652    .text
  +0.4%    +473  [ = ]       0    .strtab
  +0.6%    +456  [ = ]       0    .debug_ranges
  +0.2%     +80  [ = ]       0    .symtab
  +0.4%     +64  +0.4%     +64    .rodata
  +0.3%     +60  [ = ]       0    .debug_frame
  +0.1%     +16  [ = ]       0    .debug_aranges
  [ = ]       0  +0.1%      +8    .bss
 -24.5%     -12  [ = ]       0    [Unmapped]
  +0.2% +8.23Ki  +0.5%    +724    TOTAL
use_rust/rp2040_split (central) — 161.6 KiB → 162.4 KiB (+0.46% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 149980	      0	  16268	 166248	  28968	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 149216	      0	  16260	 165476	  28664	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2% +4.22Ki  [ = ]       0    .debug_str
  +0.3% +2.81Ki  [ = ]       0    .debug_info
  +0.2%    +730  [ = ]       0    .debug_loc
  +0.4%    +724  [ = ]       0    .debug_line
  +0.5%    +716  [ = ]       0    .strtab
  +0.5%    +700  +0.5%    +700    .text
  +0.5%    +480  [ = ]       0    .debug_ranges
  +0.3%     +64  +0.3%     +64    .rodata
  +0.3%     +60  [ = ]       0    .debug_frame
  +0.1%     +16  [ = ]       0    .debug_aranges
  +0.0%     +16  [ = ]       0    .symtab
  [ = ]       0  +0.1%      +8    .bss
  +3.9%      +2  [ = ]       0    [Unmapped]
  +0.3% +10.5Ki  +0.5%    +772    TOTAL
use_rust/rp2040_split (peripheral) — 28.2 KiB → 28.2 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25712	     60	   3060	  28832	   70a0	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25712	     60	   3060	  28832	   70a0	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +617  [ = ]       0    .debug_str
  +0.0%     +47  [ = ]       0    .debug_info
  +0.1%     +26  [ = ]       0    .strtab
  +5.4%      +2  [ = ]       0    [Unmapped]
  +0.0%    +692  [ = ]       0    TOTAL
use_rust/stm32f1 — 62.7 KiB → 63.1 KiB (+0.74% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  57052	     28	   7564	  64644	   fc84	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  56580	     28	   7556	  64164	   faa4	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.3% +1.41Ki  [ = ]       0    .debug_info
  +0.5%    +659  [ = ]       0    .debug_loc
  +0.1%    +596  [ = ]       0    .debug_str
  +1.2%    +496  [ = ]       0    .debug_ranges
  +0.8%    +472  +0.8%    +472    .text
  +0.4%    +349  [ = ]       0    .debug_line
  [ = ]       0  +0.1%      +8    .bss
   +16%      +8  [ = ]       0    [Unmapped]
  -0.0%      -9  [ = ]       0    .strtab
  -0.3%     -16  [ = ]       0    .debug_aranges
  -0.1%     -16  [ = ]       0    .debug_frame
  -0.5%     -96  [ = ]       0    .symtab
  +0.2% +3.80Ki  +0.7%    +480    TOTAL
use_rust/stm32h7 — 122.5 KiB → 122.9 KiB (+0.32% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 109760	    320	  15788	 125868	  1ebac	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 109360	    320	  15780	 125460	  1ea14	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.2% +2.38Ki  [ = ]       0    .debug_info
  +0.6% +1.38Ki  [ = ]       0    .debug_loc
  +0.1% +1.24Ki  [ = ]       0    .debug_str
  +0.8%    +640  [ = ]       0    .debug_ranges
  +0.4%    +400  +0.4%    +400    .text
  +0.2%    +296  [ = ]       0    .debug_line
  +0.3%    +264  [ = ]       0    .strtab
  [ = ]       0  +0.1%      +8    .bss
 -26.6%     -17  [ = ]       0    [Unmapped]
  -0.1%     -48  [ = ]       0    .debug_aranges
  -0.3%     -68  [ = ]       0    .debug_frame
  -0.6%    -224  [ = ]       0    .symtab
  +0.1% +6.22Ki  +0.3%    +408    TOTAL

@HaoboGu

HaoboGu commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

This behavior is quite similar with what #859 does, but narrower. What do you think the way proposed by #859?

@braindefender

Copy link
Copy Markdown
Contributor Author

This behavior is quite similar with what #859 does, but narrower. What do you think the way proposed by #859?

Yeah, I will take a closer look at #859. Maybe it will cover all the cases.

I see potential problem in combining OSM/SK into one behavior:

  • The behavior is configured once, but some users may want to combine different settings for different keys. How will this be handled?
  • For example, in my LatchTap implementation, the layer change is releasing the latched mod (similar to release_on_layer_change behavior setting). But what if I want that behavior only in LatchTap keys and not in OSM?

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