1
0
Fork 0
forked from wry/wry

config: add client-rule infrastructure

This commit is contained in:
Julian Orth 2025-05-04 18:02:17 +02:00
parent 17e715cde4
commit fd2163d658
32 changed files with 1804 additions and 27 deletions

View file

@ -66,6 +66,7 @@ pub enum SimpleCommand {
ToggleFloatAboveFullscreen,
SetFloatPinned(bool),
ToggleFloatPinned,
KillClient,
}
#[derive(Debug, Clone)]
@ -198,6 +199,34 @@ pub enum OutputMatch {
},
}
#[derive(Default, Debug, Clone)]
pub struct GenericMatch<Match> {
pub name: Option<String>,
pub not: Option<Box<Match>>,
pub all: Option<Vec<Match>>,
pub any: Option<Vec<Match>>,
pub exactly: Option<MatchExactly<Match>>,
}
#[derive(Debug, Clone)]
pub struct MatchExactly<Match> {
pub num: usize,
pub list: Vec<Match>,
}
#[derive(Debug, Clone)]
pub struct ClientRule {
pub name: Option<String>,
pub match_: ClientMatch,
pub action: Option<Action>,
pub latch: Option<Action>,
}
#[derive(Default, Debug, Clone)]
pub struct ClientMatch {
pub generic: GenericMatch<Self>,
}
#[derive(Debug, Clone)]
pub enum DrmDeviceMatch {
Any(Vec<DrmDeviceMatch>),
@ -395,6 +424,7 @@ pub struct Config {
pub float: Option<Float>,
pub named_actions: Vec<NamedAction>,
pub max_action_depth: u64,
pub client_rules: Vec<ClientRule>,
}
#[derive(Debug, Error)]