Skip to content

Conversation

@HaoboGu
Copy link
Owner

@HaoboGu HaoboGu commented Dec 26, 2025

Closes #231

Signed-off-by: Haobo Gu <haobogu@outlook.com>
@github-actions
Copy link

github-actions bot commented Dec 26, 2025

Binary Size Report

use_config/nrf52832_ble

   text	   data	    bss	    dec	    hex	filename
 313360	   5072	  32476	 350908	  55abc	rmk-nrf52832
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/nrf52840_ble

   text	   data	    bss	    dec	    hex	filename
 351164	   5072	  48276	 404512	  62c20	rmk-nrf52840
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/nrf52840_ble_split

   text	   data	    bss	    dec	    hex	filename
 428560	   6376	  44588	 479524	  75124	central

   text	   data	    bss	    dec	    hex	filename
 273828	   5740	  28252	 307820	  4b26c	peripheral
Diff

Central Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.7% +22.8Ki  [ = ]       0    .debug_str
  +0.5% +9.37Ki  [ = ]       0    .debug_info
  +0.9% +5.45Ki  [ = ]       0    .debug_loc
  +0.6% +2.17Ki  +0.6% +2.17Ki    .text
  +1.0% +2.02Ki  [ = ]       0    .debug_ranges
  +0.6% +1.92Ki  [ = ]       0    .debug_line
  +0.4% +1.10Ki  [ = ]       0    .strtab
  +0.3%    +496  [ = ]       0    .symtab
  [ = ]       0  +0.6%    +280    .bss
  +0.6%    +276  [ = ]       0    .debug_frame
  +0.5%    +208  +0.5%    +208    .rodata
  +0.2%     +96  [ = ]       0    .debug_aranges
  +1.8%      +1  [ = ]       0    [Unmapped]
  +0.6% +45.9Ki  +0.6% +2.65Ki    TOTAL

Peripheral Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_rust/nrf52840_ble_split

   text	   data	    bss	    dec	    hex	filename
 428996	   6376	  50668	 486040	  76a98	central

   text	   data	    bss	    dec	    hex	filename
 272856	   5196	  26988	 305040	  4a790	peripheral
Diff

Central Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

Peripheral Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/pi_pico_w_ble

   text	   data	    bss	    dec	    hex	filename
 587008	      0	  53908	 640916	  9c794	rmk-pi-pico-w
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/pi_pico_w_ble_split

   text	   data	    bss	    dec	    hex	filename
 619648	      0	  60660	 680308	  a6174	central

   text	   data	    bss	    dec	    hex	filename
 488364	      0	  41984	 530348	  817ac	peripheral
Diff

Central Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

Peripheral Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_rust/pi_pico_w_ble_split

   text	   data	    bss	    dec	    hex	filename
 619872	      0	  60972	 680844	  a638c	central

   text	   data	    bss	    dec	    hex	filename
 488608	      0	  41984	 530592	  818a0	peripheral
Diff

Central Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

Peripheral Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/rp2040

   text	   data	    bss	    dec	    hex	filename
 131412	      0	  15444	 146856	  23da8	rmk-rp2040
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/rp2040_split

   text	   data	    bss	    dec	    hex	filename
 145340	      0	  17016	 162356	  27a34	central

   text	   data	    bss	    dec	    hex	filename
  26536	      0	   2944	  29480	   7328	peripheral
Diff

Central Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

Peripheral Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_rust/rp2040_split

   text	   data	    bss	    dec	    hex	filename
 144632	      0	  16612	 161244	  275dc	central

   text	   data	    bss	    dec	    hex	filename
  27144	      0	   3184	  30328	   7678	peripheral
Diff

Central Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

Peripheral Diff

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/stm32f1

   text	   data	    bss	    dec	    hex	filename
  51704	     24	   7616	  59344	   e7d0	rmk-stm32f1
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/stm32f4

   text	   data	    bss	    dec	    hex	filename
 135780	    320	  16880	 152980	  25594	rmk-stm32f4
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

use_config/stm32h7

   text	   data	    bss	    dec	    hex	filename
  95420	    264	  11000	 106684	  1a0bc	rmk-stm32h7
Diff
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [ = ]       0  [ = ]       0    TOTAL

@Schievel1 Schievel1 mentioned this pull request Dec 30, 2025
@Schievel1
Copy link
Contributor

Schievel1 commented Dec 31, 2025

Can processors themselves emit events that get funneled back in at the start of the chain?

What I mean is: if I have an event coming from one device, that I recognize in a processor and if I recognize it I want to do something in a device. E.g. I press a User-Keycode and that should set the cpi of a trackball sensor. My matrix device emits the keycode event, a processor sees it and wants to set the cpi. How would the processor talk to the sensor/ the device of the sensor?

/ maybe every device should also get a Channel and proc_message method to make them controllable. Every processor should get a reference to the set of all available device channels.

@HaoboGu
Copy link
Owner Author

HaoboGu commented Jan 1, 2026

Can processors themselves emit events that get funneled back in at the start of the chain?

What I mean is: if I have an event coming from one device, that I recognize in a processor and if I recognize it I want to do something in a device. E.g. I press a User-Keycode and that should set the cpi of a trackball sensor. My matrix device emits the keycode event, a processor sees it and wants to set the cpi. How would the processor talk to the sensor/ the device of the sensor?

/ maybe every device should also get a Channel and proc_message method to make them controllable. Every processor should get a reference to the set of all available device channels.

Yes, you can. There are two ways:

  1. The processor can emit another Event in it's ProcessResult, the processor can be chained. But now it's impossible to send the Event back to the start of the processor chain.
  2. The processor can also publish a ControllerEvent. The ControllerEvent can be subscribed by any struct that is interested to this event(aka a Controller). For example, you can subscribe the ControllerEvent in your sensor and change the cpi.

Generally the event flow is

InputDevice --Event--> InputProcessor --ControllerEvent--> Controller

In you case, the sensor can also be a controller.

Prefix unused variables with underscore to suppress compiler warnings
in the custom input device example implementation.
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 5, 2026

Deploying rmk-rs with  Cloudflare Pages  Cloudflare Pages

Latest commit: d029a99
Status: ✅  Deploy successful!
Preview URL: https://30e33c2c.rmk-4a2.pages.dev
Branch Preview URL: https://feat-input-device-config.rmk-4a2.pages.dev

View logs

Signed-off-by: Haobo Gu <haobogu@outlook.com>
@HaoboGu HaoboGu force-pushed the feat/input_device_config branch from b02b6e1 to d029a99 Compare January 5, 2026 06:22
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.

Provide easy-to-use configuration for input devices in keyboard.toml

4 participants