Skip to content

Add TileWindow action for keyboard window snapping#124

Open
jlaustill wants to merge 1 commit intopop-os:masterfrom
jlaustill:feature/tile-window-action
Open

Add TileWindow action for keyboard window snapping#124
jlaustill wants to merge 1 commit intopop-os:masterfrom
jlaustill:feature/tile-window-action

Conversation

@jlaustill
Copy link

@jlaustill jlaustill commented Jan 20, 2026

Summary

  • Add TilingZone enum with 8 zones: Top, TopRight, Right, BottomRight, Bottom, BottomLeft, Left, TopLeft
  • Add TileWindow(TilingZone) action variant to enable keyboard shortcuts for snapping floating windows to screen edges and corners

This enables users to configure keyboard shortcuts like:

(modifiers: [Super, Ctrl], key: "Left"): TileWindow(Left),
(modifiers: [Super, Ctrl], key: "Right"): TileWindow(Right),

Related PR

  • cosmic-comp implementation PR will follow (depends on this PR being merged)

Test plan

  • Build succeeds
  • Tested with cosmic-comp handler implementation

🤖 Generated with Claude Code
Kooha-2026-01-20-15-32-59.webm

Add TilingZone enum with 8 zones (Top, TopRight, Right, BottomRight,
Bottom, BottomLeft, Left, TopLeft) and TileWindow(TilingZone) action
variant to enable keyboard shortcuts for snapping floating windows
to screen edges and corners.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
jlaustill added a commit to jlaustill/cosmic-comp that referenced this pull request Jan 20, 2026
Implement handler for the TileWindow action that snaps floating windows
to screen edges and corners (8 zones: Top, TopRight, Right, BottomRight,
Bottom, BottomLeft, Left, TopLeft).

- Add TileWindow action handler in input/actions.rs
- Add Shell::tile_window() method in shell/mod.rs
- Add FloatingLayout::tile_window() method in shell/layout/floating/mod.rs

The implementation reuses the existing TiledCorners enum and animation
system for smooth transitions.

Depends on: pop-os/cosmic-settings-daemon#124

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant