elementary / elementary/gala

Deduplicate WindowOverview and MultitaskingView code

Open
#2,779 0 comments 0 reactions 0 assignees View on GitHub
Confirmed Multitasking View
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.