Fixes two tests that failed intermittently on CI (make race).
TestSyncobjProtocolErrors/surface destroyed (run 132): the first set_acquire_point already raises no_surface and the server closes the connection; the second request of setPoints could then hit EPIPE and t.Fatal. The subtest now sends only the erroring request.
TestCaptureExclusionKeyboardClamp (run 127): the test drained r.commands after sending LayerChanged, so it could drop the FocusWindow{11} the core emits for that change and then time out. drainCommands now runs before the send; TestCaptureExclusionKeyboardNone uses the same helper.
Checks
The core race reproduced on the old code (-race -count=300 -cpu 1,4 under load, capture_test.go:381: timed out); fixed, -count=500 -cpu 1,2,4 passes. The wayland EPIPE did not reproduce locally; the fix follows the CI trace.
make check, make race, make mocks-check, staticcheck ./... pass.
@@ -54,7 +54,7 @@ See [examples/config](../examples/config) for every key with its default.
54
54
| `animations.speed` | `normal` | `slow`, `normal`, `fast`, or a factor from `0.1` to `10` |
55
55
| `focus.follow-move` | `off` | Follow a column moved to another workspace |
56
56
| `focus.position-hint` | `on` | Show workspace/band dots near the output bottom for 600ms after a position change, then fade for 150ms (no fade with animations off); hidden in overview, fullscreen and session lock; never captured |
57
-
| `focus.flash` | `on` | Briefly draw an inner border, inside the window border, on the window, column or output an action changed |
57
+
| `focus.flash` | `on` | Briefly draw an inner border on the window, column or output an action changed |
58
58
| `focus.flash-width` | `2` | Flash border width in logical pixels, `1` to `8` |
59
59
| `focus.flash-opacity` | `0.6` | Starting opacity of the flash, `0.1` to `1` |
60
60
| `focus.flash-duration` | `200ms` | Fade duration, `50ms` to `1s`; not scaled by `animations.speed` |
@@ -54,7 +54,7 @@ See [examples/config](../examples/config) for every key with its default.
54
| `animations.speed` | `normal` | `slow`, `normal`, `fast`, or a factor from `0.1` to `10` |
54
| `animations.speed` | `normal` | `slow`, `normal`, `fast`, or a factor from `0.1` to `10` |
55
| `focus.follow-move` | `off` | Follow a column moved to another workspace |
55
| `focus.follow-move` | `off` | Follow a column moved to another workspace |
56
| `focus.position-hint` | `on` | Show workspace/band dots near the output bottom for 600ms after a position change, then fade for 150ms (no fade with animations off); hidden in overview, fullscreen and session lock; never captured |
56
| `focus.position-hint` | `on` | Show workspace/band dots near the output bottom for 600ms after a position change, then fade for 150ms (no fade with animations off); hidden in overview, fullscreen and session lock; never captured |
57
-
| `focus.flash` | `on` | Briefly draw an inner border, inside the window border, on the window, column or output an action changed |
57
+
| `focus.flash` | `on` | Briefly draw an inner border on the window, column or output an action changed |
58
| `focus.flash-width` | `2` | Flash border width in logical pixels, `1` to `8` |
58
| `focus.flash-width` | `2` | Flash border width in logical pixels, `1` to `8` |
59
| `focus.flash-opacity` | `0.6` | Starting opacity of the flash, `0.1` to `1` |
59
| `focus.flash-opacity` | `0.6` | Starting opacity of the flash, `0.1` to `1` |
60
| `focus.flash-duration` | `200ms` | Fade duration, `50ms` to `1s`; not scaled by `animations.speed` |
60
| `focus.flash-duration` | `200ms` | Fade duration, `50ms` to `1s`; not scaled by `animations.speed` |