diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-02-12 09:34:54 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-02-12 09:34:54 +0400 |
| commit | 18f06a7acd79feb16dc667b68a1ffd0d59e234c8 (patch) | |
| tree | 38fdaa7786d5092fcf8782a19a849c4074c21316 /niri-config/src | |
| parent | 6e2307301991a187b8d4a28cdbbf7a49d33039d5 (diff) | |
| download | niri-18f06a7acd79feb16dc667b68a1ffd0d59e234c8.tar.gz niri-18f06a7acd79feb16dc667b68a1ffd0d59e234c8.tar.bz2 niri-18f06a7acd79feb16dc667b68a1ffd0d59e234c8.zip | |
Fix border getting default values for focus ring
Diffstat (limited to 'niri-config/src')
| -rw-r--r-- | niri-config/src/lib.rs | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 70dc3909..4587483c 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -281,8 +281,8 @@ pub struct Mode { pub struct Layout { #[knuffel(child, default)] pub focus_ring: FocusRing, - #[knuffel(child, default = FocusRing::default_border())] - pub border: FocusRing, + #[knuffel(child, default)] + pub border: Border, #[knuffel(child, unwrap(children), default)] pub preset_column_widths: Vec<PresetWidth>, #[knuffel(child)] @@ -305,11 +305,11 @@ pub struct SpawnAtStartup { pub struct FocusRing { #[knuffel(child)] pub off: bool, - #[knuffel(child, unwrap(argument), default = 4)] + #[knuffel(child, unwrap(argument), default = Self::default().width)] pub width: u16, - #[knuffel(child, default = Color::new(127, 200, 255, 255))] + #[knuffel(child, default = Self::default().active_color)] pub active_color: Color, - #[knuffel(child, default = Color::new(80, 80, 80, 255))] + #[knuffel(child, default = Self::default().inactive_color)] pub inactive_color: Color, } @@ -324,9 +324,21 @@ impl Default for FocusRing { } } -impl FocusRing { - pub const fn default_border() -> FocusRing { - FocusRing { +#[derive(knuffel::Decode, Debug, Clone, Copy, PartialEq)] +pub struct Border { + #[knuffel(child)] + pub off: bool, + #[knuffel(child, unwrap(argument), default = Self::default().width)] + pub width: u16, + #[knuffel(child, default = Self::default().active_color)] + pub active_color: Color, + #[knuffel(child, default = Self::default().inactive_color)] + pub inactive_color: Color, +} + +impl Default for Border { + fn default() -> Self { + Self { off: true, width: 4, active_color: Color::new(255, 200, 127, 255), @@ -335,6 +347,17 @@ impl FocusRing { } } +impl From<Border> for FocusRing { + fn from(value: Border) -> Self { + Self { + off: value.off, + width: value.width, + active_color: value.active_color, + inactive_color: value.inactive_color, + } + } +} + #[derive(knuffel::Decode, Debug, Default, Clone, Copy, PartialEq, Eq)] pub struct Color { #[knuffel(argument)] @@ -881,7 +904,6 @@ mod tests { border { width 3 - active-color 0 100 200 255 inactive-color 255 200 100 0 } @@ -1005,13 +1027,13 @@ mod tests { a: 0, }, }, - border: FocusRing { + border: Border { off: false, width: 3, active_color: Color { - r: 0, - g: 100, - b: 200, + r: 255, + g: 200, + b: 127, a: 255, }, inactive_color: Color { |
