Skip to content

Conversation

@rezigned
Copy link
Owner

@rezigned rezigned commented Jun 8, 2025

This PR introduces a complete revamp of the keymap-rs library, culminating in the official v1.0.0 release.


What's New

Library Overhaul

  • Reorganized internal architecture for improved extensibility and maintainability
  • More consistent and ergonomic API
  • Strongly-typed key pattern system for advanced matching use cases

Core Features

  • Declarative key mapping via config files (yaml, json, toml, etc.)
  • Support for key sequences like ctrl-b n, g g, etc.
  • Pattern-matching key groups (@upper, @any, etc.)
  • Derive-based config parsing via keymap_derive
  • Backend-agnostic design with support for crossterm, termion, web_sys, etc.
  • Config<T>: loads keys exclusively from config files
  • DerivedConfig<T>: merges config and #[key("..")] annotations

@rezigned rezigned force-pushed the add-keymap-derive branch from 2822ea5 to babbd04 Compare June 8, 2025 14:39
@rezigned rezigned force-pushed the add-keymap-derive branch from babbd04 to 59c9d92 Compare June 8, 2025 14:40
@rezigned rezigned merged commit 8da2b52 into main Jun 8, 2025
1 check passed
@rezigned rezigned deleted the add-keymap-derive branch June 8, 2025 16:30
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 9, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 10, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
@rezigned rezigned mentioned this pull request Jun 10, 2025
rezigned added a commit that referenced this pull request Jun 10, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 10, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
rezigned added a commit that referenced this pull request Jun 10, 2025
* Declarative key mapping via config files (`yaml`, `json`, `toml`, etc.)
* Support for key sequences like `ctrl-b n`, `g g`, etc.
* Support key groups (`@upper`, `@any`, etc.)
* Derive-based config parsing via `keymap_derive`
* Backend-agnostic design with support for `crossterm`, `termion`, `web_sys`, etc.
* `Config<T>`: loads keys exclusively from config files
* `DerivedConfig<T>`: merges config and `#[key("..")]` annotations
@github-actions github-actions bot mentioned this pull request Jun 10, 2025
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