Deduplicate WindowOverview and MultitaskingView code
- Dominant language
- Vala
- Stars
- 302
- Forks
- 83
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 7
Description
### Problem
This is a follow-up issue/feature request since #485 has been closed. This issue has been created after talking about it with @danirabbit on Discord:
> @danirabbit: I think it was dismissed as written maybe? I think it’s worth opening a new Task issue. The original issue was really old so I think it’d be good to have a new clean updated issue
So as of today, Gala still has two separate overview paths with overlapping responsibilities:
- `MultitaskingView`, which is workspace-aware with dragging between workspaces and polished transitions.
- `WindowOverview` entry points with `expose-all-windows` and single-app overview hints.
This creates duplicated logic and UX divergence for very similar tasks. In the current code, `ActionType.WINDOW_OVERVIEW` is already marked deprecated in `src/WindowManager.vala`, but the separate component still exists and is used by keybindings and desktop integration.
From the #485 discussion, and for context, the discussed tradeoffs were:
- keep fast all-windows discovery (especially keyboard-first)
- keep good multi-display behavior
- avoid confusion around workspace context
- reduce maintenance burden from parallel implementations
### Proposal
Refactor toward one implementation path:
- Keep existing public entry points (`Super+A`, app-window overview, actions) for compatibility.
- Route overview/spread behavior through `MultitaskingView` with a filtered set of windows.
- See the deprecation story, maybe by making `WindowOverview` a shim and then removing it after parity.
### Prior Art (Optional)
- Original discussion and closure context: #485
- Potentially related discussions mentioned there:
- #287
- #415
- #218
- #1045
- #1795
- Relevant implementation progress: #1793
- Closure note on #485
- (Mar 12, 2025): window spread is used in the dock, and single-workspace spread was explicitly removed.
Contributor guide
Assessment
This issue has not been assessed yet.