#wayland #keymap #libxkbcommon #xkbcommon #xkb

xkbcommon-rs

libxkbcommon 的安全 Rust 版本

1 个不稳定版本

0.1.0 2024年6月7日

#698GUI

自定义许可

1MB
18K SLoC

xkbcommon-rs

libxkbcommon 在安全 Rust 中的移植。

在 Cargo.toml 中

xkbcommon-rs = "0.1.0"

在 Wayland 客户端应用程序中使用

此 crate 提供的 Keymap 和 State 可以用于在 Wayland 客户端中表示键盘状态。例如,可以与 Smithay 的 wayland-client crate 一起使用 xkbcommon-rs

设置键映射和状态

use xkbcommon_rs::*;

let keymap = Keymap::new_from_string(
    Context::new(0).unwrap(),
    string, /* Read from the OwnedFd provided by the Wayland compositor */
    KeymapFormat::TextV1,
    0).unwrap();

let mut state = State::new(keymap);

获取键盘符号并更新状态

// Get syms before updating state
let sym = state.key_get_one_sym(keycode)?;

// Update state with the parameters provided by the wl_keyboard::Event::Modifiers{..} event
state.update_mask(
    mods_depressed, mods_latched, mods_locked,
    0, 0, group as usize);

有关在 Wayland 客户端中使用 State::update_mask() 的更多信息,请参阅 https://wayland-book.com/seat/keyboard.html

信息

此 crate 旨在在 Wayland 客户端中使用。还提供合成器端的功能。

对应于 libxkbcommon 版本 1.7.0

依赖项

~8–11MB
~174K SLoC