# eczarny/spectacle

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/eczarny-spectacle).**

13,631 stars · 846 forks · Objective-C · NOASSERTION · archived

## Links

- GitHub: https://github.com/eczarny/spectacle
- Homepage: https://spectacleapp.com/
- awesome-repositories: https://awesome-repositories.com/repository/eczarny-spectacle.md

## Description

Spectacle is a keyboard-driven window manager and organizer that uses system accessibility frameworks to manipulate window coordinates and dimensions. It allows for the arrangement, resizing, and movement of application windows across multiple displays using global keyboard shortcuts.

The tool focuses on multi-monitor layout management, enabling users to shift active windows between connected displays and snap windows into predefined screen regions such as halves, thirds, or corners. It also provides the ability to center and maximize windows to optimize screen real estate without using a mouse.

Additional capabilities include window dimension adjustment and a history system that allows users to undo or redo previous positioning and sizing actions.

## Tags

### Development Tools & Productivity

- [Window Managers](https://awesome-repositories.com/f/development-tools-productivity/window-managers.md) — Organizes and arranges application windows into specific layouts on the desktop using keyboard shortcuts. ([source](https://cdn.jsdelivr.net/gh/eczarny/spectacle@master/README.md))
- [Global Hotkey Managers](https://awesome-repositories.com/f/development-tools-productivity/global-hotkey-managers.md) — Registers system-wide keyboard listeners to trigger window repositioning and resizing actions.
- [Keyboard-Driven Control](https://awesome-repositories.com/f/development-tools-productivity/window-managers/keyboard-driven-control.md) — Provides keyboard shortcuts to arrange and resize windows without the need for mouse interaction.
- [Multi-Monitor Window Management](https://awesome-repositories.com/f/development-tools-productivity/window-managers/multi-monitor-window-management.md) — Provides keyboard shortcuts to quickly move application windows between different connected monitors. ([source](https://cdn.jsdelivr.net/gh/eczarny/spectacle@master/README.md))
- [State History Buffers](https://awesome-repositories.com/f/development-tools-productivity/change-tracking/state-tracking-utilities/state-history-buffers.md) — Maintains a history buffer of previous window states for undo and redo navigation.
- [Event-Driven Configuration](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution/event-driven-configuration.md) — Triggers window layout functions immediately upon detecting registered keyboard system events.
- [Window Resizing Shortcuts](https://awesome-repositories.com/f/development-tools-productivity/window-managers/split-screen-layouts/desktop-screen-partitioning/window-resizing-shortcuts.md) — Provides keyboard-driven controls for rapidly changing window dimensions while aligning with screen boundaries. ([source](https://cdn.jsdelivr.net/gh/eczarny/spectacle@master/README.md))

### User Interface & Experience

- [Accessibility-Based Window Manipulators](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/accessibility-based-window-manipulators.md) — Uses system accessibility frameworks to programmatically manipulate window coordinates and dimensions.
- [Window Organizers](https://awesome-repositories.com/f/user-interface-experience/desktop-windowing-management/window-organizers.md) — Ships a utility for snapping windows into predefined screen regions and centering them without a mouse.
- [Keyboard-Driven Window Orchestration](https://awesome-repositories.com/f/user-interface-experience/keyboard-driven-window-orchestration.md) — Provides a toolset for moving, resizing, and orchestrating window locations using keyboard-driven commands.
- [Screen Region Snapping](https://awesome-repositories.com/f/user-interface-experience/screen-region-snapping.md) — Moves windows into predefined screen areas such as halves, thirds, or corners using shortcuts. ([source](https://cdn.jsdelivr.net/gh/eczarny/spectacle@master/README.md))
- [Window Snapping Coordinates](https://awesome-repositories.com/f/user-interface-experience/coordinate-based-positioning/window-snapping-coordinates.md) — Allows windows to be quickly snapped into predefined screen regions like halves, thirds, or corners.
- [Display Region Mappings](https://awesome-repositories.com/f/user-interface-experience/coordinate-systems/coordinate-converters/screen-space-mappings/display-region-mappings.md) — Calculates exact pixel coordinates for snapping windows into predefined regions across multiple monitors.

### Business & Productivity Software

- [Desktop Workspace Organizers](https://awesome-repositories.com/f/business-productivity-software/desktop-workspace-organizers.md) — Optimizes screen real estate by maximizing, centering, and resizing windows to reduce manual dragging.
- [Workspace Layout Automations](https://awesome-repositories.com/f/business-productivity-software/workspace-layout-automations.md) — Provides commands to maximize, resize, and revert window states to optimize screen real estate.

### Game Development

- [Multi-Monitor Geometry Resolution](https://awesome-repositories.com/f/game-development/mobile-game-automation-tools/multi-resolution-display-support/multi-monitor-geometry-resolution.md) — Resolves target pixel areas for placing windows across multiple displays with varying resolutions.
- [Window Layout History](https://awesome-repositories.com/f/game-development/move-history-stacks/window-layout-history.md) — Tracks a stack of previous window coordinates and dimensions to allow reversing layout changes.
