Skip to content

Corner tile snap zone too small (1-2px) — make configurable #852

Description

@rkristelijn

Problem

The corner tile snap zones (quarter tiling) are extremely small — only 1-2 pixels wide. This makes it very difficult to drag a window into a corner to trigger quarter tiling, especially on multi-monitor setups where you easily overshoot onto the adjacent monitor.

The constants are hardcoded in src/core/window.c:

#define ORIGIN_CONSTANT 1
#define EXTREME_CONSTANT 2
#define COMMON_EDGE_PADDING 5

For corner tiling, the user must hit both edge zones simultaneously (e.g. ZONE_LEFT | ZONE_TOP), making the effective target area approximately 2×2 pixels. This is nearly impossible to hit consistently with a mouse or trackpad.

For comparison:

  • KDE Plasma: configurable snap zone (default ~25px)
  • Windows 11: generous corner zones (~50px+)
  • macOS (Rectangle): configurable zones

Proposal

Add a new org.cinnamon.muffin gsetting tile-edge-zone-width (integer, default 25, range 2–100) that controls the snap zone width for edge and corner tiling.

This would:

  1. Replace the hardcoded ORIGIN_CONSTANT and EXTREME_CONSTANT with the setting value
  2. Make corner tiling usable without requiring pixel-perfect mouse placement
  3. Allow users who prefer the current behavior to keep it

Environment

  • Linux Mint 22.3 (Cinnamon)
  • Multi-monitor setup (MacBook + external)
  • tile-maximize enabled

Steps to reproduce

  1. Enable corner tiling: gsettings set org.cinnamon.muffin tile-maximize true
  2. Drag a window toward a screen corner
  3. Observe how precisely you need to position the cursor (1-2px from edge) to trigger quarter tiling
  4. On multi-monitor: cursor often overshoots onto adjacent display before hitting the zone

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions