Skip to content

Window auto-assignment rules (assign windows to tiles by app) #35

@m96-chan

Description

@m96-chan

Summary

Allow users to define rules that automatically assign windows to specific tiles based on app bundle ID or window title. Currently, every assignment requires a manual Shift+Drop each time an app launches.

Motivation

The most common workflow is predictable: Terminal always goes to the left tile, Slack always goes to the right, browser always goes to the center. Having to Shift+Drop on every launch is the biggest friction point for daily use.

Proposed Behavior

  • Rules are stored persistently (e.g., `rules.json` in Application Support)
  • A rule maps an app bundle ID (e.g., `com.apple.Terminal`) to a tile position or profile slot
  • When `WindowLifecycleProvider` fires `onWindowCreated`, KTApple checks for a matching rule and assigns automatically
  • Rules are manageable from Preferences (add / remove / reorder)

Scope

  • `RuleStore` in KTAppleCore (following `LayoutStore`/`HotkeyStore` pattern)
  • `AppRule` model: `{ bundleID, tileIndex, displayID }`
  • Match logic in `AppCoordinator.handleWindowCreated`
  • Preferences UI: list of rules with app picker and tile selector
  • Optional: wildcard / window title matching (v2)

Notes

Bundle IDs are stable across app updates. Window title matching would add flexibility but increase complexity — keep v1 to bundle ID only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions