From 31de54096243fb000fa6e7008a914861293482a5 Mon Sep 17 00:00:00 2001 From: srdusr <99972264+srdusr@users.noreply.github.com> Date: Fri, 9 Aug 2024 09:36:00 +0200 Subject: Fix a misleading workspace comment and drop four dead config keys visible_windows' doc comment claimed windows show "on the active workspace of whichever monitor they're assigned to" - the code never reads w.monitor at all; current_workspace is one flat value shared by every monitor, not per-output. Documented that explicitly on both the field and the method, since this is a real behavioral difference from Hyprland worth a reader actually seeing, not just an inaccurate comment to fix quietly. monitor.primary_workspace/monitor.workspace_count describe a per- monitor-workspace design that doesn't exist; workspace.auto_switch/ workspace.persistent were never wired to any behavior. All four were seeded into default_config() and documented in DEFAULTS.md, so srd.set()/srd.get() on them silently succeeded while doing nothing -- removed from both, matching the precedent already set by general. rounded_corners' deliberate absence from default_config for a different reason (backend-dependent default rather than unbuilt). --- crates/config/src/engine/support.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'crates/config/src/engine') diff --git a/crates/config/src/engine/support.rs b/crates/config/src/engine/support.rs index 160e27a..7b42f53 100644 --- a/crates/config/src/engine/support.rs +++ b/crates/config/src/engine/support.rs @@ -159,8 +159,12 @@ pub(super) fn default_config() -> HashMap { set("monitor.primary_layout", String("dynamic".into())); set("monitor.secondary_layout", String("tiling".into())); set("monitor.auto_detect", Bool(true)); - set("monitor.primary_workspace", Number(1.0)); - set("monitor.workspace_count", Number(10.0)); + // Deliberately *not* seeded, unlike everything else here: srdwm has one + // flat workspace list shared by every monitor (see WindowManager's + // `current_workspace` doc comment), not Hyprland-style independent + // per-monitor workspace sets - "this monitor's primary workspace" and + // "this monitor's workspace count" describe a design that doesn't + // exist. `workspace.count` is the one knob that actually does anything. set("window.focus_follows_mouse", Bool(false)); set("window.mouse_follows_focus", Bool(true)); @@ -173,8 +177,13 @@ pub(super) fn default_config() -> HashMap { set("workspace.count", Number(10.0)); set("workspace.names", List(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"].map(|s| s.to_string()).to_vec())); - set("workspace.auto_switch", Bool(false)); - set("workspace.persistent", Bool(true)); + // `auto_switch` (jump to a new window's workspace when a rule places it + // elsewhere) and `persistent` (workspace state surviving a restart) are + // deliberately *not* seeded here: neither is implemented, and a key + // that's accepted and silently does nothing is worse than one that + // doesn't exist - see the same reasoning on `general.rounded_corners`' + // absence from this function, though that one differs by backend + // rather than being simply unbuilt. set("workspace.auto_back_and_forth", Bool(false)); set("performance.vsync", Bool(true)); -- cgit v1.2.3