1
0
Fork 0
forked from wry/wry

config: Add keymap_from_names for RMLVO keymaps

This commit is contained in:
khyperia 2025-12-26 13:19:23 +01:00 committed by Julian Orth
parent bc9f2aef69
commit 0dfa6bc74b
5 changed files with 135 additions and 4 deletions

View file

@ -19,7 +19,7 @@ use {
acceleration::AccelProfile, capability::Capability, clickmethod::ClickMethod,
},
keyboard::{
Keymap,
Group, Keymap,
mods::{Modifiers, RELEASE},
syms::KeySym,
},
@ -1385,6 +1385,23 @@ impl ConfigClient {
keymap
}
pub fn keymap_from_names(
&self,
rules: Option<&str>,
model: Option<&str>,
groups: Option<&[Group<'_>]>,
options: Option<&[&str]>,
) -> Keymap {
let res = self.send_with_response(&ClientMessage::KeymapFromNames {
rules,
model,
groups: groups.map(|v| v.to_vec()),
options: options.map(|v| v.to_vec()),
});
get_response!(res, Keymap(0), KeymapFromNames { keymap });
keymap
}
pub fn set_ei_socket_enabled(&self, enabled: bool) {
self.send(&ClientMessage::SetEiSocketEnabled { enabled })
}

View file

@ -7,7 +7,7 @@ use {
FocusFollowsMouseMode, InputDevice, LayerDirection, Seat, SwitchEvent, Timeline,
acceleration::AccelProfile, capability::Capability, clickmethod::ClickMethod,
},
keyboard::{Keymap, mods::Modifiers, syms::KeySym},
keyboard::{Group, Keymap, mods::Modifiers, syms::KeySym},
logging::LogLevel,
theme::{BarPosition, Color, colors::Colorable, sized::Resizable},
timer::Timer,
@ -820,6 +820,12 @@ pub enum ClientMessage<'a> {
connector: Connector,
use_native_gamut: bool,
},
KeymapFromNames {
rules: Option<&'a str>,
model: Option<&'a str>,
groups: Option<Vec<Group<'a>>>,
options: Option<Vec<&'a str>>,
},
}
#[derive(Serialize, Deserialize, Debug)]
@ -1067,6 +1073,9 @@ pub enum Response {
GetBarPosition {
position: BarPosition,
},
KeymapFromNames {
keymap: Keymap,
},
}
#[derive(Serialize, Deserialize, Debug)]