config: move input match schema into schema crate
This commit is contained in:
parent
fb65585bfa
commit
81a1a865a1
4 changed files with 33 additions and 21 deletions
17
jay-config-schema/src/input.rs
Normal file
17
jay-config-schema/src/input.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub enum InputMatch {
|
||||||
|
Any(Vec<InputMatch>),
|
||||||
|
All {
|
||||||
|
tag: Option<String>,
|
||||||
|
name: Option<String>,
|
||||||
|
syspath: Option<String>,
|
||||||
|
devnode: Option<String>,
|
||||||
|
is_keyboard: Option<bool>,
|
||||||
|
is_pointer: Option<bool>,
|
||||||
|
is_touch: Option<bool>,
|
||||||
|
is_tablet_tool: Option<bool>,
|
||||||
|
is_tablet_pad: Option<bool>,
|
||||||
|
is_gesture: Option<bool>,
|
||||||
|
is_switch: Option<bool>,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -5,11 +5,13 @@
|
||||||
//! generated config documentation, and compositor-side application code.
|
//! generated config documentation, and compositor-side application code.
|
||||||
|
|
||||||
pub mod animations;
|
pub mod animations;
|
||||||
|
pub mod input;
|
||||||
pub mod options;
|
pub mod options;
|
||||||
pub mod output;
|
pub mod output;
|
||||||
pub mod theme;
|
pub mod theme;
|
||||||
|
|
||||||
pub use animations::{AnimationCurveConfig, Animations};
|
pub use animations::{AnimationCurveConfig, Animations};
|
||||||
|
pub use input::InputMatch;
|
||||||
pub use options::{
|
pub use options::{
|
||||||
ColorManagement, Float, FocusHistory, Libei, RepeatRate, SimpleIm, Tearing, UiDrag, Vrr,
|
ColorManagement, Float, FocusHistory, Libei, RepeatRate, SimpleIm, Tearing, UiDrag, Vrr,
|
||||||
Xwayland,
|
Xwayland,
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,8 @@ use {
|
||||||
|
|
||||||
pub use jay_config_schema::{
|
pub use jay_config_schema::{
|
||||||
AnimationCurveConfig, Animations, ColorManagement, ConfigConnector, ConfigDrmDevice,
|
AnimationCurveConfig, Animations, ColorManagement, ConfigConnector, ConfigDrmDevice,
|
||||||
ConnectorMatch, DrmDeviceMatch, Float, FocusHistory, Libei, Mode, Output, OutputMatch,
|
ConnectorMatch, DrmDeviceMatch, Float, FocusHistory, InputMatch, Libei, Mode, Output,
|
||||||
RepeatRate, SimpleIm, Tearing, Theme, UiDrag, Vrr, Xwayland,
|
OutputMatch, RepeatRate, SimpleIm, Tearing, Theme, UiDrag, Vrr, Xwayland,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone)]
|
#[derive(Debug, Copy, Clone)]
|
||||||
|
|
@ -291,24 +291,6 @@ pub struct WindowMatch {
|
||||||
pub content_types: Option<ContentType>,
|
pub content_types: Option<ContentType>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub enum InputMatch {
|
|
||||||
Any(Vec<InputMatch>),
|
|
||||||
All {
|
|
||||||
tag: Option<String>,
|
|
||||||
name: Option<String>,
|
|
||||||
syspath: Option<String>,
|
|
||||||
devnode: Option<String>,
|
|
||||||
is_keyboard: Option<bool>,
|
|
||||||
is_pointer: Option<bool>,
|
|
||||||
is_touch: Option<bool>,
|
|
||||||
is_tablet_tool: Option<bool>,
|
|
||||||
is_tablet_pad: Option<bool>,
|
|
||||||
is_gesture: Option<bool>,
|
|
||||||
is_switch: Option<bool>,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Input {
|
pub struct Input {
|
||||||
pub tag: Option<String>,
|
pub tag: Option<String>,
|
||||||
|
|
|
||||||
|
|
@ -637,7 +637,18 @@ impl DrmDeviceMatchExt for DrmDeviceMatch {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl InputMatch {
|
trait InputMatchExt {
|
||||||
|
fn matches(&self, d: InputDevice, state: &State) -> bool;
|
||||||
|
|
||||||
|
fn matches_<'a>(
|
||||||
|
&'a self,
|
||||||
|
d: InputDevice,
|
||||||
|
state: &'a State,
|
||||||
|
active: &mut AHashSet<&'a str>,
|
||||||
|
) -> bool;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl InputMatchExt for InputMatch {
|
||||||
fn matches(&self, d: InputDevice, state: &State) -> bool {
|
fn matches(&self, d: InputDevice, state: &State) -> bool {
|
||||||
self.matches_(d, state, &mut AHashSet::new())
|
self.matches_(d, state, &mut AHashSet::new())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue