aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-05-01 09:36:10 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-05-01 09:45:38 +0300
commit446bc155ce15103c347c1a4f654c71a88d9991fa (patch)
tree63ec298768577b1ed14ff4dfc1e729bcd43d9aaf /niri-config/src
parent3289324ce412f882566c99d53732078bf888ad56 (diff)
downloadniri-446bc155ce15103c347c1a4f654c71a88d9991fa.tar.gz
niri-446bc155ce15103c347c1a4f654c71a88d9991fa.tar.bz2
niri-446bc155ce15103c347c1a4f654c71a88d9991fa.zip
Add workspace-shadow {} config to overview {}
Diffstat (limited to 'niri-config/src')
-rw-r--r--niri-config/src/lib.rs69
1 files changed, 69 insertions, 0 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs
index 263ab7a7..8bb069c6 100644
--- a/niri-config/src/lib.rs
+++ b/niri-config/src/lib.rs
@@ -755,6 +755,49 @@ pub struct ShadowOffset {
}
#[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)]
pub off: bool,
@@ -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(
[