mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-22 02:01:55 +07:00
Add workspace-shadow {} config to overview {}
This commit is contained in:
@@ -754,6 +754,49 @@ pub struct ShadowOffset {
|
||||
pub y: FloatOrInt<-65535, 65535>,
|
||||
}
|
||||
|
||||
#[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)]
|
||||
pub struct WorkspaceShadow {
|
||||
#[knuffel(child)]
|
||||
pub off: bool,
|
||||
#[knuffel(child, default = Self::default().offset)]
|
||||
pub offset: ShadowOffset,
|
||||
#[knuffel(child, unwrap(argument), default = Self::default().softness)]
|
||||
pub softness: FloatOrInt<0, 1024>,
|
||||
#[knuffel(child, unwrap(argument), default = Self::default().spread)]
|
||||
pub spread: FloatOrInt<-1024, 1024>,
|
||||
#[knuffel(child, default = Self::default().color)]
|
||||
pub color: Color,
|
||||
}
|
||||
|
||||
impl Default for WorkspaceShadow {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
off: false,
|
||||
offset: ShadowOffset {
|
||||
x: FloatOrInt(0.),
|
||||
y: FloatOrInt(20.),
|
||||
},
|
||||
softness: FloatOrInt(120.),
|
||||
spread: FloatOrInt(20.),
|
||||
color: Color::from_rgba8_unpremul(0, 0, 0, 0x70),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<WorkspaceShadow> for Shadow {
|
||||
fn from(value: WorkspaceShadow) -> Self {
|
||||
Self {
|
||||
on: !value.off,
|
||||
offset: value.offset,
|
||||
softness: value.softness,
|
||||
spread: value.spread,
|
||||
draw_behind_window: false,
|
||||
color: value.color,
|
||||
inactive_color: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)]
|
||||
pub struct TabIndicator {
|
||||
#[knuffel(child)]
|
||||
@@ -1269,6 +1312,8 @@ pub struct Overview {
|
||||
pub zoom: FloatOrInt<0, 1>,
|
||||
#[knuffel(child, default = Self::default().backdrop_color)]
|
||||
pub backdrop_color: Color,
|
||||
#[knuffel(child, default)]
|
||||
pub workspace_shadow: WorkspaceShadow,
|
||||
}
|
||||
|
||||
impl Default for Overview {
|
||||
@@ -1276,6 +1321,7 @@ impl Default for Overview {
|
||||
Self {
|
||||
zoom: FloatOrInt(0.5),
|
||||
backdrop_color: DEFAULT_BACKDROP_COLOR,
|
||||
workspace_shadow: WorkspaceShadow::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4611,6 +4657,29 @@ mod tests {
|
||||
b: 0.15,
|
||||
a: 1.0,
|
||||
},
|
||||
workspace_shadow: WorkspaceShadow {
|
||||
off: false,
|
||||
offset: ShadowOffset {
|
||||
x: FloatOrInt(
|
||||
0.0,
|
||||
),
|
||||
y: FloatOrInt(
|
||||
20.0,
|
||||
),
|
||||
},
|
||||
softness: FloatOrInt(
|
||||
120.0,
|
||||
),
|
||||
spread: FloatOrInt(
|
||||
20.0,
|
||||
),
|
||||
color: Color {
|
||||
r: 0.0,
|
||||
g: 0.0,
|
||||
b: 0.0,
|
||||
a: 0.4392157,
|
||||
},
|
||||
},
|
||||
},
|
||||
environment: Environment(
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user