git.lucas.co / cce-system-interface
system settings
git clone https://git.lucas.co/cce-system-interface.git

commit7eec65462f7526dccf6218dd84c6f2de00175aed
parenta5c5f94e77
authorLucas Galante <[email protected]>
date2026-06-24 12:13
Remove separators color selector and fix status box background color selector index mismatch

 src/input_handler.rs   |  39 +++++++++---------
 src/main.rs            |  77 +++++++++++++++++-----------------
 src/pages/interface.rs | 110 ++++++++++++++++++++-----------------------------
 src/renderer.rs        |  37 ++++++++---------
 4 files changed, 119 insertions(+), 144 deletions(-)

diff --git a/src/input_handler.rs b/src/input_handler.rs
index 67c5d25..ead89e4 100644
--- a/src/input_handler.rs
+++ b/src/input_handler.rs
@@ -224,26 +224,25 @@ impl SystemInterface {
                             1 => pages::interface::InterfaceMessage::SetHighColor(cp.color),
                             2 => pages::interface::InterfaceMessage::SetVisualGuidesColor(cp.color),
                             3 => pages::interface::InterfaceMessage::SetDisabledColor(cp.color),
-                            4 => pages::interface::InterfaceMessage::SetSeparatorColor(cp.color),
-                            5 => pages::interface::InterfaceMessage::SetSliderTrackColor(cp.color),
-                            6 => pages::interface::InterfaceMessage::SetColorBordersColor(cp.color),
-                            7 => pages::interface::InterfaceMessage::SetDesktopBackground(cp.color),
-                            8 => pages::interface::InterfaceMessage::SetNormalColor(cp.color),
-                            9 => pages::interface::InterfaceMessage::SetPaginatorSidebarColor(cp.color),
-                            10 => pages::interface::InterfaceMessage::SetPrimaryHighlightColor(cp.color),
-                            11 => pages::interface::InterfaceMessage::SetMenubarTabLabelColor(cp.color),
-                            12 => pages::interface::InterfaceMessage::SetToggleEnabledColor(cp.color),
-                            13 => pages::interface::InterfaceMessage::SetToggleDisabledColor(cp.color),
-                            14 => pages::interface::InterfaceMessage::SetScrollingListBgColor(cp.color),
-                            15 => pages::interface::InterfaceMessage::SetBreadcrumbBgColor(cp.color),
-                            16 => pages::interface::InterfaceMessage::SetPopoverBgColor(cp.color),
-                            17 => pages::interface::InterfaceMessage::SetNotificationBgColor(cp.color),
-                            18 => pages::interface::InterfaceMessage::SetWindowColor(cp.color),
-                            19 => pages::interface::InterfaceMessage::SetPageColor(cp.color),
-                            20 => pages::interface::InterfaceMessage::SetLayerColor(cp.color),
-                            21 => pages::interface::InterfaceMessage::SetScrollingListEntryBgColor([cp.color[0], cp.color[1], cp.color[2], cp.alpha]),
-                            22 => pages::interface::InterfaceMessage::SetScrollingListEntryHighlightColor([cp.color[0], cp.color[1], cp.color[2], cp.alpha]),
-                            23 => pages::interface::InterfaceMessage::SetStatusBoxBackgroundColor(cp.color),
+                            4 => pages::interface::InterfaceMessage::SetSliderTrackColor(cp.color),
+                            5 => pages::interface::InterfaceMessage::SetColorBordersColor(cp.color),
+                            6 => pages::interface::InterfaceMessage::SetDesktopBackground(cp.color),
+                            7 => pages::interface::InterfaceMessage::SetNormalColor(cp.color),
+                            8 => pages::interface::InterfaceMessage::SetPaginatorSidebarColor(cp.color),
+                            9 => pages::interface::InterfaceMessage::SetPrimaryHighlightColor(cp.color),
+                            10 => pages::interface::InterfaceMessage::SetMenubarTabLabelColor(cp.color),
+                            11 => pages::interface::InterfaceMessage::SetToggleEnabledColor(cp.color),
+                            12 => pages::interface::InterfaceMessage::SetToggleDisabledColor(cp.color),
+                            13 => pages::interface::InterfaceMessage::SetScrollingListBgColor(cp.color),
+                            14 => pages::interface::InterfaceMessage::SetBreadcrumbBgColor(cp.color),
+                            15 => pages::interface::InterfaceMessage::SetPopoverBgColor(cp.color),
+                            16 => pages::interface::InterfaceMessage::SetNotificationBgColor(cp.color),
+                            17 => pages::interface::InterfaceMessage::SetWindowColor(cp.color),
+                            18 => pages::interface::InterfaceMessage::SetPageColor(cp.color),
+                            19 => pages::interface::InterfaceMessage::SetLayerColor(cp.color),
+                            20 => pages::interface::InterfaceMessage::SetScrollingListEntryBgColor([cp.color[0], cp.color[1], cp.color[2], cp.alpha]),
+                            21 => pages::interface::InterfaceMessage::SetScrollingListEntryHighlightColor([cp.color[0], cp.color[1], cp.color[2], cp.alpha]),
+                            22 => pages::interface::InterfaceMessage::SetStatusBoxBackgroundColor(cp.color),
                             _ => pages::interface::InterfaceMessage::SetDesktopBackground(cp.color),
                         }));
                     }
diff --git a/src/main.rs b/src/main.rs
index 1c66116..d20e247 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -106,6 +106,7 @@ fn make_text_buffer_with_font(
     buf
 }
 
+#[allow(dead_code)]
 struct AppWidget {
     x: f32, y: f32, w: f32, h: f32,
     color: [f32; 4],
@@ -470,28 +471,27 @@ fn collect_popover_rects(w: &dyn cce_ui::widget::Element, popovers: &mut Vec<(f3
                 1 => self.app.interface.high_color,
                 2 => self.app.interface.visual_guides_color,
                 3 => self.app.interface.disabled_color,
-                4 => self.app.interface.separator_color,
-                5 => self.app.interface.slider_track_color,
-                6 => self.app.interface.color_borders_color,
-                7 => self.app.interface.desktop_background_color,
-                8 => self.app.interface.normal_color,
-                9 => self.app.interface.paginator_sidebar_color,
-                10 => self.app.interface.primary_highlight_color,
-                11 => self.app.interface.menubar_tab_label_color,
-                12 => self.app.interface.toggle_enabled_color,
-                13 => self.app.interface.toggle_disabled_color,
-                14 => self.app.interface.scrollinglist_bg_color,
-                15 => self.app.interface.breadcrumb_bg_color,
-                16 => self.app.interface.popover_bg_color,
-                17 => self.app.interface.notification_bg_color,
-                18 => self.app.interface.window_color,
-                19 => self.app.interface.page_color,
-                20 => self.app.interface.layer_color,
-                23 => self.app.interface.status_box_background_color,
+                4 => self.app.interface.slider_track_color,
+                5 => self.app.interface.color_borders_color,
+                6 => self.app.interface.desktop_background_color,
+                7 => self.app.interface.normal_color,
+                8 => self.app.interface.paginator_sidebar_color,
+                9 => self.app.interface.primary_highlight_color,
+                10 => self.app.interface.menubar_tab_label_color,
+                11 => self.app.interface.toggle_enabled_color,
+                12 => self.app.interface.toggle_disabled_color,
+                13 => self.app.interface.scrollinglist_bg_color,
+                14 => self.app.interface.breadcrumb_bg_color,
+                15 => self.app.interface.popover_bg_color,
+                16 => self.app.interface.notification_bg_color,
+                17 => self.app.interface.window_color,
+                18 => self.app.interface.page_color,
+                19 => self.app.interface.layer_color,
+                22 => self.app.interface.status_box_background_color,
                 _ => self.app.interface.desktop_background_color,
             };
-            if i == 21 || i == 22 {
-                let (state_rgb, state_alpha) = if i == 21 {
+            if i == 20 || i == 21 {
+                let (state_rgb, state_alpha) = if i == 20 {
                     (
                         [
                             self.app.interface.scrollinglist_entry_bg_color[0],
@@ -511,7 +511,7 @@ fn collect_popover_rects(w: &dyn cce_ui::widget::Element, popovers: &mut Vec<(f3
                     )
                 };
                 if cp.color != state_rgb || cp.alpha != state_alpha {
-                    color_actions.push(AppAction::Interface(if i == 21 {
+                    color_actions.push(AppAction::Interface(if i == 20 {
                         pages::interface::InterfaceMessage::SetScrollingListEntryBgColor([cp.color[0], cp.color[1], cp.color[2], cp.alpha])
                     } else {
                         pages::interface::InterfaceMessage::SetScrollingListEntryHighlightColor([cp.color[0], cp.color[1], cp.color[2], cp.alpha])
@@ -524,24 +524,23 @@ fn collect_popover_rects(w: &dyn cce_ui::widget::Element, popovers: &mut Vec<(f3
                     1 => pages::interface::InterfaceMessage::SetHighColor(cp.color),
                     2 => pages::interface::InterfaceMessage::SetVisualGuidesColor(cp.color),
                     3 => pages::interface::InterfaceMessage::SetDisabledColor(cp.color),
-                    4 => pages::interface::InterfaceMessage::SetSeparatorColor(cp.color),
-                    5 => pages::interface::InterfaceMessage::SetSliderTrackColor(cp.color),
-                    6 => pages::interface::InterfaceMessage::SetColorBordersColor(cp.color),
-                    7 => pages::interface::InterfaceMessage::SetDesktopBackground(cp.color),
-                    8 => pages::interface::InterfaceMessage::SetNormalColor(cp.color),
-                    9 => pages::interface::InterfaceMessage::SetPaginatorSidebarColor(cp.color),
-                    10 => pages::interface::InterfaceMessage::SetPrimaryHighlightColor(cp.color),
-                    11 => pages::interface::InterfaceMessage::SetMenubarTabLabelColor(cp.color),
-                    12 => pages::interface::InterfaceMessage::SetToggleEnabledColor(cp.color),
-                    13 => pages::interface::InterfaceMessage::SetToggleDisabledColor(cp.color),
-                    14 => pages::interface::InterfaceMessage::SetScrollingListBgColor(cp.color),
-                    15 => pages::interface::InterfaceMessage::SetBreadcrumbBgColor(cp.color),
-                    16 => pages::interface::InterfaceMessage::SetPopoverBgColor(cp.color),
-                    17 => pages::interface::InterfaceMessage::SetNotificationBgColor(cp.color),
-                    18 => pages::interface::InterfaceMessage::SetWindowColor(cp.color),
-                    19 => pages::interface::InterfaceMessage::SetPageColor(cp.color),
-                    20 => pages::interface::InterfaceMessage::SetLayerColor(cp.color),
-                    23 => pages::interface::InterfaceMessage::SetStatusBoxBackgroundColor(cp.color),
+                    4 => pages::interface::InterfaceMessage::SetSliderTrackColor(cp.color),
+                    5 => pages::interface::InterfaceMessage::SetColorBordersColor(cp.color),
+                    6 => pages::interface::InterfaceMessage::SetDesktopBackground(cp.color),
+                    7 => pages::interface::InterfaceMessage::SetNormalColor(cp.color),
+                    8 => pages::interface::InterfaceMessage::SetPaginatorSidebarColor(cp.color),
+                    9 => pages::interface::InterfaceMessage::SetPrimaryHighlightColor(cp.color),
+                    10 => pages::interface::InterfaceMessage::SetMenubarTabLabelColor(cp.color),
+                    11 => pages::interface::InterfaceMessage::SetToggleEnabledColor(cp.color),
+                    12 => pages::interface::InterfaceMessage::SetToggleDisabledColor(cp.color),
+                    13 => pages::interface::InterfaceMessage::SetScrollingListBgColor(cp.color),
+                    14 => pages::interface::InterfaceMessage::SetBreadcrumbBgColor(cp.color),
+                    15 => pages::interface::InterfaceMessage::SetPopoverBgColor(cp.color),
+                    16 => pages::interface::InterfaceMessage::SetNotificationBgColor(cp.color),
+                    17 => pages::interface::InterfaceMessage::SetWindowColor(cp.color),
+                    18 => pages::interface::InterfaceMessage::SetPageColor(cp.color),
+                    19 => pages::interface::InterfaceMessage::SetLayerColor(cp.color),
+                    22 => pages::interface::InterfaceMessage::SetStatusBoxBackgroundColor(cp.color),
                     _ => pages::interface::InterfaceMessage::SetDesktopBackground(cp.color),
                 }));
                 color_changed = true;
diff --git a/src/pages/interface.rs b/src/pages/interface.rs
index 60e7c6f..a1f0e20 100644
--- a/src/pages/interface.rs
+++ b/src/pages/interface.rs
@@ -204,7 +204,6 @@ pub struct InterfaceState {
     pub desktop_background_color: [u8; 3],
     pub high_color: [u8; 3],
     pub disabled_color: [u8; 3],
-    pub separator_color: [u8; 3],
     pub visual_guides_color: [u8; 3],
     pub slider_track_color: [u8; 3],
     pub page_low_color: [u8; 3],
@@ -355,7 +354,6 @@ impl Default for InterfaceState {
             desktop_background_color: [0, 0, 0],
             high_color: [0x3e, 0x3e, 0x3e],
             disabled_color: [0x55, 0x55, 0x55],
-            separator_color: [124, 124, 137],
             visual_guides_color: [0xff, 0x8c, 0x00],
             slider_track_color: [116, 116, 128],
             page_low_color: [71, 71, 81],
@@ -376,8 +374,7 @@ impl Default for InterfaceState {
                 ColorSelector::new([0x3e, 0x3e, 0x3e]).with_label("High Color").with_config(CONFIG_PATH, "high_color"), // 1: Layout - High Color
                 ColorSelector::new([0xff, 0x8c, 0x00]).with_label("Visual Guides").with_config(CONFIG_PATH, "visual_guides_color"), // 2: Layout - Visual Guides
                 ColorSelector::new([0x55, 0x55, 0x55]).with_label("Disabled").with_config(CONFIG_PATH, "disabled_color"), // 3: Status - Disabled
-                ColorSelector::new([124, 124, 137]).with_label("Separators").with_config(CONFIG_PATH, "separator_color"), // 4: Status - Separators
-                ColorSelector::new([116, 116, 128]).with_label("Slider Track").with_config(CONFIG_PATH, "slider_track_color"), // 5: Controls - Slider Track
+                ColorSelector::new([116, 116, 128]).with_label("Slider Track").with_config(CONFIG_PATH, "slider_track_color"), // 4: Controls - Slider Track
                 ColorSelector::new([124, 124, 137]).with_label("Borders").with_config(CONFIG_PATH, "color_borders_color"), // 6: Controls - Borders
                 ColorSelector::new([0, 0, 0]).with_label("Color").with_config(CONFIG_PATH, "desktop_background_color"), // 7: Surfaces - Desktop Background Color
                 ColorSelector::new([0xcc, 0xcc, 0xd8]).with_label("Normal").with_config(CONFIG_PATH, "status_normal_color"), // 8: Status - Normal
@@ -534,7 +531,6 @@ pub enum InterfaceMessage {
     SetDesktopBackground([u8; 3]),
     SetHighColor([u8; 3]),
     SetDisabledColor([u8; 3]),
-    SetSeparatorColor([u8; 3]),
     SetVisualGuidesColor([u8; 3]),
     SetSliderTrackColor([u8; 3]),
     SetPageLowColor([u8; 3]),
@@ -604,7 +600,6 @@ pub enum InterfaceMessage {
     PickLowColor,
     PickHighColor,
     PickDisabledColor,
-    PickSeparatorColor,
     PickVisualGuides,
     PickSliderTrackColor,
     PickPageLowColor,
@@ -656,8 +651,6 @@ pub fn read_interface_config() -> InterfaceState {
     
     let disabled = parse_color_from_key(&content, "disabled_color", [0x55, 0x55, 0x55]);
     
-    let separator = parse_color_from_key(&content, "status_separator_color", [124, 124, 137]);
-    
     let visual_guides = parse_color_from_key(&content, "visual_guides_color", [0xff, 0x8c, 0x00]);
     
     let slider_track = parse_color_from_key(&content, "slider_track_color", [116, 116, 128]);
@@ -748,7 +741,6 @@ pub fn read_interface_config() -> InterfaceState {
         desktop_background_color: bg,
         high_color: border,
         disabled_color: disabled,
-        separator_color: separator,
         visual_guides_color: visual_guides,
         slider_track_color: slider_track,
         page_low_color: page_low,
@@ -769,8 +761,7 @@ pub fn read_interface_config() -> InterfaceState {
             ColorSelector::new(border).with_label("High Color").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "high_color"), // 1: Layout - High Color
             ColorSelector::new(visual_guides).with_label("Visual Guides").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "visual_guides_color"), // 2: Layout - Visual Guides
             ColorSelector::new(disabled).with_label("Disabled").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "disabled_color"), // 3: Status - Disabled
-            ColorSelector::new(separator).with_label("Separators").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "separator_color"), // 4: Status - Separators
-            ColorSelector::new(slider_track).with_label("Slider Track").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "slider_track_color"), // 5: Controls - Slider Track
+            ColorSelector::new(slider_track).with_label("Slider Track").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "slider_track_color"), // 4: Controls - Slider Track
             ColorSelector::new(color_borders).with_label("Borders").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "color_borders_color"), // 6: Controls - Borders
             ColorSelector::new(bg).with_label("Low Color").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "desktop_background_color"), // 7: Layout - Low Color
             ColorSelector::new(normal).with_label("Normal").with_font_family(&color_selector_font).with_config(CONFIG_PATH, "status_normal_color"), // 8: Status - Normal
@@ -1724,13 +1715,6 @@ pub fn status_interface_reload() {
     send_ipc_command("spawn cce-status-interface");
 }
 
-fn apply_separator_color(rgb: [u8; 3]) {
-    let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
-    write_config_value("status_separator_color", &hex);
-    send_ipc_command(&format!("layout status_separator_color #{:02x}{:02x}{:02x}", rgb[0], rgb[1], rgb[2]));
-    status_interface_reload();
-}
-
 fn apply_visual_guides_color(rgb: [u8; 3]) {
     let hex = format!("\"#{:02x}{:02x}{:02x}\"", rgb[0], rgb[1], rgb[2]);
     write_config_value("visual_guides_color", &hex);
@@ -2503,17 +2487,14 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
     // 3. Status Section
     builder.add_section_with_width(&mut final_pc, cw, "Status", false, |sec| {
         sec.spacing(8.0);
-        state.color_selectors[8].color = state.normal_color;
-        sec.widget_full(&mut state.color_selectors[8], 40.0, ctx);
+        state.color_selectors[7].color = state.normal_color;
+        sec.widget_full(&mut state.color_selectors[7], 40.0, ctx);
         sec.spacing(8.0);
         state.color_selectors[3].color = state.disabled_color;
         sec.widget_full(&mut state.color_selectors[3], 40.0, ctx);
         sec.spacing(8.0);
-        state.color_selectors[4].color = state.separator_color;
-        sec.widget_full(&mut state.color_selectors[4], 40.0, ctx);
-        sec.spacing(8.0);
-        state.color_selectors[23].color = state.status_box_background_color;
-        sec.widget_full(&mut state.color_selectors[23], 40.0, ctx);
+        state.color_selectors[22].color = state.status_box_background_color;
+        sec.widget_full(&mut state.color_selectors[22], 40.0, ctx);
         sec.spacing(8.0);
         state.status_box_corner_radius_spinbox.value = state.status_box_corner_radius as i32;
         sec.widget_full(&mut state.status_box_corner_radius_spinbox, 44.0, ctx);
@@ -2523,15 +2504,15 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
     // 4. Controls Section
     builder.add_section_with_width(&mut final_pc, cw, "Controls", false, |sec| {
         sec.spacing(8.0);
-        state.color_selectors[6].color = state.color_borders_color;
-        sec.widget_full(&mut state.color_selectors[6], 40.0, ctx);
+        state.color_selectors[5].color = state.color_borders_color;
+        sec.widget_full(&mut state.color_selectors[5], 40.0, ctx);
         sec.spacing(12.0);
 
         // Slider Section
         sec.add_section("Slider", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[5].color = state.slider_track_color;
-            subsec.widget_full(&mut state.color_selectors[5], 40.0, ctx);
+            state.color_selectors[4].color = state.slider_track_color;
+            subsec.widget_full(&mut state.color_selectors[4], 40.0, ctx);
             subsec.spacing(8.0);
             state.slider_height_spinbox.value = state.slider_height as i32;
             subsec.widget_full(&mut state.slider_height_spinbox, 44.0, ctx);
@@ -2543,11 +2524,11 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // MenuBar Section
         sec.add_section("MenuBar", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[9].color = state.paginator_sidebar_color;
-            subsec.widget_full(&mut state.color_selectors[9], 40.0, ctx);
+            state.color_selectors[8].color = state.paginator_sidebar_color;
+            subsec.widget_full(&mut state.color_selectors[8], 40.0, ctx);
             subsec.spacing(8.0);
-            state.color_selectors[11].color = state.menubar_tab_label_color;
-            subsec.widget_full(&mut state.color_selectors[11], 40.0, ctx);
+            state.color_selectors[10].color = state.menubar_tab_label_color;
+            subsec.widget_full(&mut state.color_selectors[10], 40.0, ctx);
             state.menubar_font_selector.font_family = state.menubar_font.clone();
             subsec.widget_full(&mut state.menubar_font_selector, 44.0, ctx);
             subsec.spacing(8.0);
@@ -2560,11 +2541,11 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // Toggle Section
         sec.add_section("Toggle", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[12].color = state.toggle_enabled_color;
-            subsec.widget_full(&mut state.color_selectors[12], 40.0, ctx);
+            state.color_selectors[11].color = state.toggle_enabled_color;
+            subsec.widget_full(&mut state.color_selectors[11], 40.0, ctx);
             subsec.spacing(8.0);
-            state.color_selectors[13].color = state.toggle_disabled_color;
-            subsec.widget_full(&mut state.color_selectors[13], 40.0, ctx);
+            state.color_selectors[12].color = state.toggle_disabled_color;
+            subsec.widget_full(&mut state.color_selectors[12], 40.0, ctx);
             subsec.spacing(8.0);
             state.toggle_height_spinbox.value = state.toggle_height as i32;
             subsec.widget_full(&mut state.toggle_height_spinbox, 44.0, ctx);
@@ -2577,8 +2558,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // Breadcrumb Section
         sec.add_section("Breadcrumb", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[15].color = state.breadcrumb_bg_color;
-            subsec.widget_full(&mut state.color_selectors[15], 40.0, ctx);
+            state.color_selectors[14].color = state.breadcrumb_bg_color;
+            subsec.widget_full(&mut state.color_selectors[14], 40.0, ctx);
             subsec.spacing(8.0);
             state.breadcrumb_font_selector.font_family = state.breadcrumb_font.clone();
             subsec.widget_full(&mut state.breadcrumb_font_selector, 44.0, ctx);
@@ -2697,8 +2678,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         sec.spacing(8.0);
         sec.add_section("Primary Highlight", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[10].color = state.primary_highlight_color;
-            subsec.widget_full(&mut state.color_selectors[10], 40.0, ctx);
+            state.color_selectors[9].color = state.primary_highlight_color;
+            subsec.widget_full(&mut state.color_selectors[9], 40.0, ctx);
             subsec.spacing(8.0);
         });
         sec.spacing(8.0);
@@ -2707,8 +2688,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
     // 5. Notification Section
     builder.add_section_with_width(&mut final_pc, cw, "Notification", false, |sec| {
         sec.spacing(8.0);
-        state.color_selectors[17].color = state.notification_bg_color;
-        sec.widget_full(&mut state.color_selectors[17], 40.0, ctx);
+        state.color_selectors[16].color = state.notification_bg_color;
+        sec.widget_full(&mut state.color_selectors[16], 40.0, ctx);
         sec.spacing(8.0);
         state.notification_opacity_spinbox.value = (state.notification_opacity * 100.0).round() as i32;
         sec.widget_full(&mut state.notification_opacity_spinbox, 44.0, ctx);
@@ -2720,8 +2701,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         sec.spacing(12.0);
         sec.add_section("Window", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[18].color = state.window_color;
-            subsec.widget_full(&mut state.color_selectors[18], 40.0, ctx);
+            state.color_selectors[17].color = state.window_color;
+            subsec.widget_full(&mut state.color_selectors[17], 40.0, ctx);
             subsec.spacing(8.0);
             state.window_corner_radius_spinbox.value = state.window_corner_radius as i32;
             subsec.widget_full(&mut state.window_corner_radius_spinbox, 44.0, ctx);
@@ -2750,8 +2731,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // Popover Section
         sec.add_section("Popover", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[16].color = state.popover_bg_color;
-            subsec.widget_full(&mut state.color_selectors[16], 40.0, ctx);
+            state.color_selectors[15].color = state.popover_bg_color;
+            subsec.widget_full(&mut state.color_selectors[15], 40.0, ctx);
             subsec.spacing(8.0);
         });
         sec.spacing(12.0);
@@ -2759,8 +2740,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // Desktop Background Section
         sec.add_section("Desktop Background", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[7].color = state.desktop_background_color;
-            subsec.widget_full(&mut state.color_selectors[7], 40.0, ctx);
+            state.color_selectors[6].color = state.desktop_background_color;
+            subsec.widget_full(&mut state.color_selectors[6], 40.0, ctx);
             subsec.spacing(8.0);
         });
         sec.spacing(12.0);
@@ -2867,8 +2848,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // Page child section
         sec.add_section("Page", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[19].color = state.page_color;
-            subsec.widget_full(&mut state.color_selectors[19], 40.0, ctx);
+            state.color_selectors[18].color = state.page_color;
+            subsec.widget_full(&mut state.color_selectors[18], 40.0, ctx);
             subsec.spacing(8.0);
             state.page_opacity_spinbox.value = (state.page_opacity * 100.0).round() as i32;
             subsec.widget_full(&mut state.page_opacity_spinbox, 44.0, ctx);
@@ -2879,8 +2860,8 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // Layer child section
         sec.add_section("Layer", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[20].color = state.layer_color;
-            subsec.widget_full(&mut state.color_selectors[20], 40.0, ctx);
+            state.color_selectors[19].color = state.layer_color;
+            subsec.widget_full(&mut state.color_selectors[19], 40.0, ctx);
             subsec.spacing(8.0);
             state.layer_opacity_spinbox.value = (state.layer_opacity * 100.0).round() as i32;
             subsec.widget_full(&mut state.layer_opacity_spinbox, 44.0, ctx);
@@ -2920,20 +2901,20 @@ pub fn view(state: &mut InterfaceState, cx: f32, cy: f32, cw: f32, ch: f32, sec_
         // ScrollingList Section
         sec.add_section("ScrollingList", false, |subsec| {
             subsec.spacing(8.0);
-            state.color_selectors[14].color = state.scrollinglist_bg_color;
-            subsec.widget_full(&mut state.color_selectors[14], 40.0, ctx);
+            state.color_selectors[13].color = state.scrollinglist_bg_color;
+            subsec.widget_full(&mut state.color_selectors[13], 40.0, ctx);
             subsec.spacing(8.0);
 
             let bg_rgba = state.scrollinglist_entry_bg_color;
-            state.color_selectors[21].color = [bg_rgba[0], bg_rgba[1], bg_rgba[2]];
-            state.color_selectors[21].alpha = bg_rgba[3];
-            subsec.widget_full(&mut state.color_selectors[21], 40.0, ctx);
+            state.color_selectors[20].color = [bg_rgba[0], bg_rgba[1], bg_rgba[2]];
+            state.color_selectors[20].alpha = bg_rgba[3];
+            subsec.widget_full(&mut state.color_selectors[20], 40.0, ctx);
             subsec.spacing(8.0);
 
             let highlight_rgba = state.scrollinglist_entry_highlight_color;
-            state.color_selectors[22].color = [highlight_rgba[0], highlight_rgba[1], highlight_rgba[2]];
-            state.color_selectors[22].alpha = highlight_rgba[3];
-            subsec.widget_full(&mut state.color_selectors[22], 40.0, ctx);
+            state.color_selectors[21].color = [highlight_rgba[0], highlight_rgba[1], highlight_rgba[2]];
+            state.color_selectors[21].alpha = highlight_rgba[3];
+            subsec.widget_full(&mut state.color_selectors[21], 40.0, ctx);
             subsec.spacing(8.0);
         });
         sec.spacing(12.0);
@@ -3118,10 +3099,7 @@ pub fn update(state: &mut InterfaceState, msg: InterfaceMessage) {
             state.disabled_color = rgb;
             apply_disabled_color(rgb);
         }
-        InterfaceMessage::SetSeparatorColor(rgb) => {
-            state.separator_color = rgb;
-            apply_separator_color(rgb);
-        }
+
         InterfaceMessage::SetVisualGuidesColor(rgb) => {
             state.visual_guides_color = rgb;
             apply_visual_guides_color(rgb);
@@ -3444,7 +3422,7 @@ pub fn update(state: &mut InterfaceState, msg: InterfaceMessage) {
             status_interface_reload();
             propagate_links(state, "menubar_opacity", &opacity.to_string());
         }
-        InterfaceMessage::PickLowColor | InterfaceMessage::PickHighColor | InterfaceMessage::PickDisabledColor | InterfaceMessage::PickSeparatorColor | InterfaceMessage::PickVisualGuides | InterfaceMessage::PickSliderTrackColor | InterfaceMessage::PickPageLowColor | InterfaceMessage::PickColorBordersColor | InterfaceMessage::PickNormalColor | InterfaceMessage::PickPaginatorSidebarColor | InterfaceMessage::PickPrimaryHighlightColor | InterfaceMessage::PickMenubarTabLabelColor | InterfaceMessage::PickToggleEnabledColor | InterfaceMessage::PickToggleDisabledColor | InterfaceMessage::PickScrollingListBgColor | InterfaceMessage::PickScrollingListEntryBgColor | InterfaceMessage::PickScrollingListEntryHighlightColor | InterfaceMessage::PickBreadcrumbBgColor | InterfaceMessage::PickPopoverBgColor | InterfaceMessage::PickNotificationBgColor | InterfaceMessage::PickWindowColor | InterfaceMessage::PickPageColor | InterfaceMessage::PickLayerColor => {}
+        InterfaceMessage::PickLowColor | InterfaceMessage::PickHighColor | InterfaceMessage::PickDisabledColor | InterfaceMessage::PickVisualGuides | InterfaceMessage::PickSliderTrackColor | InterfaceMessage::PickPageLowColor | InterfaceMessage::PickColorBordersColor | InterfaceMessage::PickNormalColor | InterfaceMessage::PickPaginatorSidebarColor | InterfaceMessage::PickPrimaryHighlightColor | InterfaceMessage::PickMenubarTabLabelColor | InterfaceMessage::PickToggleEnabledColor | InterfaceMessage::PickToggleDisabledColor | InterfaceMessage::PickScrollingListBgColor | InterfaceMessage::PickScrollingListEntryBgColor | InterfaceMessage::PickScrollingListEntryHighlightColor | InterfaceMessage::PickBreadcrumbBgColor | InterfaceMessage::PickPopoverBgColor | InterfaceMessage::PickNotificationBgColor | InterfaceMessage::PickWindowColor | InterfaceMessage::PickPageColor | InterfaceMessage::PickLayerColor => {}
         InterfaceMessage::Refreshed(new) => {
             let was_bp_hovered = state.button_padding_spinbox.hovered();
             let was_bss_hovered = state.button_strip_spacing_spinbox.hovered();
diff --git a/src/renderer.rs b/src/renderer.rs
index 2bdb3b0..d3e705e 100644
--- a/src/renderer.rs
+++ b/src/renderer.rs
@@ -299,32 +299,31 @@ impl SystemInterface {
 
                 
                 // Section 2: Status
-                link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.color_selectors[8], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.color_selectors[7], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.color_selectors[3], &mut self.ui_context);
-                link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.color_selectors[4], &mut self.ui_context);
-                link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.color_selectors[23], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.color_selectors[22], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[2], &mut self.app.interface.status_box_corner_radius_spinbox, &mut self.ui_context);
                 
                 // Section 3: Controls (parent of: Slider, MenuBar, Toggles, Spinbox, ColorSelector, Textbox, FontSelector)
-                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[6], &mut self.ui_context);
-                // (Slider child widgets)
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[5], &mut self.ui_context);
+                // (Slider child widgets)
+                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[4], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.slider_height_spinbox, &mut self.ui_context);
                 
                 // (MenuBar child widgets)
-                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[9], &mut self.ui_context);
-                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[11], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[8], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[10], &mut self.ui_context);
 
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.button_padding_spinbox, &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.menubar_opacity_spinbox, &mut self.ui_context);
                  // (Toggles child widgets)
+                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[11], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[12], &mut self.ui_context);
-                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[13], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.toggle_height_spinbox, &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.toggle_corner_radius_spinbox, &mut self.ui_context);
                 
                 // (Breadcrumb child widgets)
-                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[15], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.color_selectors[14], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.breadcrumb_font_selector, &mut self.ui_context);
  
                 // (Spinbox child widgets)
@@ -358,14 +357,14 @@ impl SystemInterface {
                 link_parent_child(&mut self.page_sec_containers[3], &mut self.app.interface.label_margin_spinbox, &mut self.ui_context);
                 
                 // Section 4: Indicators (parent of Primary Highlight)
-                link_parent_child(&mut self.page_sec_containers[4], &mut self.app.interface.color_selectors[10], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[4], &mut self.app.interface.color_selectors[9], &mut self.ui_context);
                 
                 // Section 5: Notification
-                link_parent_child(&mut self.page_sec_containers[5], &mut self.app.interface.color_selectors[17], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[5], &mut self.app.interface.color_selectors[16], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[5], &mut self.app.interface.notification_opacity_spinbox, &mut self.ui_context);
                 
                 // Section 6: Surfaces
-                link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[18], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[17], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.window_corner_radius_spinbox, &mut self.ui_context);
                 // (Plate child widgets)
                 link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[0], &mut self.ui_context);
@@ -373,9 +372,9 @@ impl SystemInterface {
                 link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.plate_opacity_spinbox, &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.plate_corner_radius_spinbox, &mut self.ui_context);
                 // (Popover child widgets)
-                link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[16], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[15], &mut self.ui_context);
                 // (Desktop Background child widgets)
-                link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[7], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[6], &mut self.app.interface.color_selectors[6], &mut self.ui_context);
                 
                 // Section 7: Fonts (parent of System Fonts and Program Fonts)
                 // (System Fonts)
@@ -392,7 +391,7 @@ impl SystemInterface {
                 link_parent_child(&mut self.page_sec_containers[7], &mut self.app.interface.fuzzel_box, &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[7], &mut self.app.interface.terminal_menu, &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[7], &mut self.app.interface.terminal_box, &mut self.ui_context);
-
+ 
                 // Section 8: Containers (parent of ScrollingList, Sections, Graph)
                 // (Sections child widgets)
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.section_padding_spinbox, &mut self.ui_context);
@@ -402,14 +401,14 @@ impl SystemInterface {
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.label_offset_spinbox, &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.nested_section_label_font_selector, &mut self.ui_context);
                 // (ScrollingList child widgets)
-                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[14], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[13], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[20], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[21], &mut self.ui_context);
-                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[22], &mut self.ui_context);
                 // (Page child widgets)
-                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[19], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[18], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.page_opacity_spinbox, &mut self.ui_context);
                 // (Layer child widgets)
-                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[20], &mut self.ui_context);
+                link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.color_selectors[19], &mut self.ui_context);
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.layer_opacity_spinbox, &mut self.ui_context);
                 // (Graph child widgets)
                 link_parent_child(&mut self.page_sec_containers[8], &mut self.app.interface.graph_show_grid_toggle, &mut self.ui_context);