Commit Graph
158 Commits
Author SHA1 Message Date
LGUG2Z a8e79ca5d2 test(nix): share the columns of the scrolling layout, and two monitors
The checks of the scrolling suite were KDE's, but kfde and komorebi for
Windows lay the strip out with the same model. scrolling.columns is the
scenario of the five windows in two columns, now run by the scrolling
suite and by core-e2e; scrolling.two_monitors checks that a strip with a
display next to it leaves no window shown on that display.
2026-10-30 16:18:32 -07:00
LGUG2Z b4edd1c023 feat(nix): the platform says where a resize border is pressed
The press point of the resize scenarios was a gap outside the frame, which
is KDE's resize zone. On Windows there is no invisible border on the top
of a window, so a press there reached the desktop. Platform.resize_grab
gives each port its own point; KDE keeps the gap outside the frame.
2026-10-30 15:50:24 -07:00
LGUG2Z b80c18a9be docs(scrolling): the scrolling suite has run, and what no VM check covers 2026-10-30 15:37:53 -07:00
LGUG2Z e8963aee21 docs(behaviour): the differences kfw has with kfde, as known 2026-10-30 15:37:53 -07:00
LGUG2Z 76c97fb4e1 docs(scrolling): the scrolling layout, and what changed in the design docs
docs/usage/scrolling-layout.md says how the columns work. The design docs
say what the strip is, where a window out of view rests, and that the
generated tables of COMPARE.md are to be made again.
2026-10-30 14:44:54 -07:00
LGUG2Z b86aa6fb78 docs(scrolling): review of upstream's rework of the Scrolling layout
For each commit of master...next that touches the layout: what it changes,
whether kfde takes it, and why not where it does not.
2026-10-30 14:44:54 -07:00
LGUG2Z d205320d64 docs(repo): KDE pads every monitor to the same number of workspaces 2026-10-30 14:44:33 -07:00
LGUG2Z a2897edd12 docs(repo): a title change does not re-evaluate a window, as in kfw 2026-10-30 14:12:26 -07:00
LGUG2Z 84080f879e fix(wm): a title change does not make the daemon look at a window again 2026-10-30 14:12:15 -07:00
LGUG2Z 4920650155 fix(nix): the shared core: neutral names, E2E_ONLY, waits and diagnostics 2026-10-30 14:07:21 -07:00
LGUG2Z 3ef5f8279f docs(repo): the Windows displays and the Rect naming, from kfw 2026-10-30 13:20:41 -07:00
LGUG2Z 86cf814f92 feat(nix): a crashed daemon leaves nothing hidden, as a shared scenario
Platform.crash kills the daemon abruptly. lifecycle_hidden.crash turns a
monocle on, crashes, starts the daemon again, and checks that it manages
every window, that none is left out of sight, and that a monocle works
again. The KDE extra parking keeps the stale parking desktop checks.
2026-10-30 12:53:28 -07:00
LGUG2Z cb134e7908 feat(nix): fullscreen and the user's maximize are shared scenarios
Platform.fullscreen and Platform.user_maximize take a window fullscreen or
maximize it as the user would, without asking the daemon. The scenarios
maximizing.user and fullscreen check that the daemon takes the window out
of the layout, leaves it alone, and puts it back. The KDE extras keep the
on-top screenshot, the daemon's log and the setup.
2026-10-30 12:53:27 -07:00
LGUG2Z 595706d66f feat(nix): the drag-resize edge cases are a shared scenario
resize.edge_cases makes its drags from the daemon's layout and reads the
frames from the operating system: both sides of a shared edge, a horizontal
edge, a corner and an edge of the screen, with a neighbour or without. The
KDE extra keeps pointer_is_exact.
2026-10-30 12:53:13 -07:00
LGUG2Z 4db3f97e2e feat(nix): the display_change scenario, and resizable_display
A display whose mode changes: the daemon's monitor follows, the windows
stay on a display and apart, and changed back they are where they were.
Platform.resizable_display says which display can change its mode, or None
and the scenario is skipped; KDE says None, as the virtual outputs of the
headless KWin have one mode. Platform.resize_display changes the mode.
2026-10-30 12:53:13 -07:00
LGUG2Z 3beb1b82d9 feat(nix): a window the user moves to another display is a shared scenario
hotplug.user_move moves a window with Platform.move_window to the second
display and checks that the daemon has it on that monitor and every window
is tiled on its display. The KDE suite runs it before the unplug and after
the replug, and the extra sent_by_the_user is gone.
2026-10-30 12:52:51 -07:00
LGUG2Z d14ce4d2e7 feat(nix): monocle focus behaviour is a shared scenario
monocle.focus_behaviour checks that with no-op the window keeps the work
area when the focus is moved in a direction, and with cycle another window
gets it. The KDE extra monocle_focus_behaviour is gone.
2026-10-30 12:52:22 -07:00
LGUG2Z 19c71eef9e feat(nix): named workspace rules and cleared rules are in the shared scenario
The shared rules scenario sends a window by the name of a workspace, checks
that a rule that is not initial is applied again when a window opens, and
that the daemon's global state has no rule after clear-all-workspace-rules.
The KDE extras keep the desktop numbers.
2026-10-30 12:52:21 -07:00
LGUG2Z f2a5c234e1 feat(nix): placement by the class of a window is a shared case
The shared placement scenario opens a window with a class and a rule that
puts the windows of that class first. The KDE extra by_app_id is gone;
by_program (foot.exe) stays.
2026-10-30 12:52:21 -07:00
LGUG2Z fec9b1e3da feat(nix): the query scenario is shared and asserts values
Each komorebic query is compared with the daemon's state, before and after
a change of focus and layout, and a resize that was saved is undone by
loading it, with quick-save-resize and with save-resize. Platform gets
temp_path for the file of save-resize.
2026-10-30 12:52:20 -07:00
LGUG2Z dc710ce419 feat(nix): every layout is tried with three, two and one windows
commands.layouts and layouts.run close windows from the end and open them
again with their own titles. The KDE extra layouts_by_count keeps only what
reads the daemon's log: KWin has each window where the daemon last asked.
2026-10-30 12:52:20 -07:00
LGUG2Z 7d32b02ec8 feat(nix): the handover scenario is shared
minimize, unmanage and manage on the focused window now run through the
neutral platform. The check that the unmanaged window is centered is
neutral: inside the work area and not on a tile of the layout.
2026-10-30 12:52:20 -07:00
LGUG2Z 8b64b3373a feat(nix): the title rule scenario is shared, and a window can rename itself
Platform.spawn takes rename_to and after: the window gives itself another
title after some seconds (a terminal escape on KDE). The scenario ignores a
title, and checks that the window is left alone while it has it, and tiled
once it has another.
2026-10-30 12:51:41 -07:00
LGUG2Z 26b4ff931b docs(repo): the ledger and the scenario table for monitors and layout_flip
Both are new shared scenarios and have not been run on a real KWin or Windows
guest yet, so their columns say so.
2026-10-30 12:51:06 -07:00
LGUG2Z 1b655251dd docs(repo): the contract of each Platform member, and the quirks
The audit behind the docstrings of Platform: what each member promises
to both ports, what each port answers for another reason, what each
finding of the review turned out to be, and what is left to run on a
KDE VM and on Windows.
2026-10-30 12:51:01 -07:00
LGUG2Z 720daea382 docs(repo): kfw confirms the four fixes on next 2026-10-30 12:48:13 -07:00
LGUG2Z 4c5606f235 docs(repo): the four upstream fixes, and what each means for kfde 2026-10-30 12:34:23 -07:00
LGUG2Z bbe002be54 docs(repo): the scenario table made from the last runs 2026-10-30 12:06:25 -07:00
LGUG2Z ab63b0c340 docs(repo): the faster loop, the ledger of the KDE-only suites, the kfw padding 2026-10-30 12:03:01 -07:00
LGUG2Z e7645cc89a docs(repo): the ledger of what stacks, kwin-restart and the rest moved 2026-10-30 12:03:01 -07:00
LGUG2Z 0e79d4d009 docs(repo): the ledger of what workspace-rules moved 2026-10-30 12:03:01 -07:00
LGUG2Z 227e1e0e89 docs(repo): the ledger of what core-e2e moved 2026-10-30 12:03:01 -07:00
LGUG2Z af25cf8564 docs(repo): the ledger of what commands and drag-resize moved 2026-10-30 12:03:01 -07:00
LGUG2Z 5570e994e7 docs(repo): rules_exe passes on kfw 2026-10-30 12:03:01 -07:00
LGUG2Z d84d0b98e7 docs(repo): a ledger of the checks that moved to shared scenarios 2026-10-30 12:03:01 -07:00
LGUG2Z f4dbc790a0 docs(repo): config_reload and locking pass on kfw, rules_exe needs exe_id 2026-10-30 12:03:00 -07:00
LGUG2Z ce5b389bad docs(repo): config reload, exe rules and lock in the scenario table 2026-10-30 12:03:00 -07:00
LGUG2Z fcf19933be docs(repo): rules_class passes on kfw 2026-10-30 12:03:00 -07:00
LGUG2Z 13d740bfdf docs(repo): reloading the configuration and rules by exe are not neutral 2026-10-30 12:03:00 -07:00
LGUG2Z 6a6d5ce49a docs(repo): rules_class is in the table 2026-10-30 12:03:00 -07:00
LGUG2Z ccbfc83463 docs(repo): scrolling passes on kfw 2026-10-30 12:03:00 -07:00
LGUG2Z 9c29757cff docs(repo): lifecycle_hidden passes on kfw, and scrolling is in the table 2026-10-30 12:03:00 -07:00
LGUG2Z 2be21aaa6d docs(repo): tiling_off passes on kfw, and lifecycle_hidden is in the table 2026-10-30 12:03:00 -07:00
LGUG2Z 1e2b10eb86 docs(repo): pausing passes on kfw, and tiling_off is in the table 2026-10-30 12:03:00 -07:00
LGUG2Z 0d8f073dc8 docs(repo): promoting and flipping pass on kfw, and pausing is in the table 2026-10-30 12:03:00 -07:00
LGUG2Z 211acae92d docs(repo): workspace_moves, resize_commands and promoting in the table 2026-10-30 12:03:00 -07:00
LGUG2Z 4a3b0c4b14 docs(repo): layouts, floating, minimizing and padding, and a padding finding
The scenario table has the four new scenarios, which pass on both
ports, and maximizing, which kfw has not run. The state's padding and
the frames' disagree on both ports, by 10 px on kfde and 7 on kfw.
2026-10-30 12:03:00 -07:00
LGUG2Z b4dffcaa7a docs(repo): focus_follows_mouse passes, and five green runs on kfw
The scenario's failure was its own: it waited for a focus that already
held. Five consecutive runs of 14 scenarios on Windows passed, hotplug
and focus_follows_mouse apart.
2026-10-30 12:03:00 -07:00
LGUG2Z 4c8404dfa0 docs(repo): the scenarios there are, restart_with and known failures 2026-10-30 12:03:00 -07:00
LGUG2Z 7e20061763 docs(repo): focus follows mouse, on again, fails on kfw
The last check of focus_follows_mouse fails on a Windows guest after
the setting was turned off with the pointer on a window and on again;
disable then enable works. The cause is not known, and the scenario is
unchanged.
2026-10-30 12:03:00 -07:00