ubuntu / ubuntu/Tiling-Assistant

Enhancement: Enable adaptive tiling behavior across all move modes

Open
#426 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
JavaScript
Stars
1.3k
Forks
78
PR merge metrics
No merged PRs in 30d

Description

Current Behavior

Adaptive Tiling mode and Favorite Layout mode operate independently with strict boundaries:

  • When default mode is Favorite Layout: Cannot drop a window to half of a favorite layout tile (adaptive splitting is unavailable)
  • When default mode is Adaptive: Cannot drop a window into empty favorite tile areas - adaptive mode falls back to edge tiling when no windows are tiled

Proposed Enhancement

Enable adaptive tiling behavior to work regardless of tile state (full or empty), allowing seamless interaction between modes:

  • When default mode is Favorite Layout: Allow dropping windows to half of favorite layout tiles by hovering edges (adaptive behavior)
  • When default mode is Adaptive: Allow dropping windows into empty favorite tile spaces using the free screen rects

Benefits

  1. More intuitive workflow: Users don't need to switch modes to access adaptive splitting on favorite layouts
  2. Consistent behavior: Adaptive tiling works everywhere, not just on already-tiled windows
  3. Backward compatible: Doesn't break existing usage patterns - only adds functionality
  4. Better UX: Reduces mode-switching friction for advanced tiling scenarios

Implementation Details

The changes modify moveHandler.js:

  1. _adaptiveTilingPreview(): Remove early return when no windows are tiled; use _freeScreenRects for empty spaces
  2. _favoriteLayoutTilingPreview(): Add adaptive splitting logic (25% edge zones) to allow half-tiling within favorite rects

Testing

Tested on GNOME 48 with both default move modes. The enhancement works as expected without breaking existing functionality.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in moveHandler.js with _adaptiveTilingPreview() and _favoriteLayoutTilingPreview(). Trace how tiled and empty spaces are selected, then verify both default move modes on GNOME 48. Done means adaptive splitting works over favorite layout tiles and empty favorite spaces without breaking existing tiling behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
desktop
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.