# jigish/slate

**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/jigish-slate).**

7,836 stars · 512 forks · Objective-C · GPL-3.0

## Links

- GitHub: https://github.com/jigish/slate
- awesome-repositories: https://awesome-repositories.com/repository/jigish-slate.md

## Description

Slate is a keyboard-driven window manager and tiling system for macOS. It functions as a JavaScript-configurable automation tool and workflow orchestrator, allowing users to resize and position application windows through custom keystroke bindings and predefined spatial configurations.

The project distinguishes itself by using a scripting API to define complex window manipulation logic, system event callbacks, and custom input mappings. This allows for the creation of sequenced action chains and the execution of external shell commands tied to specific keyboard shortcuts.

Its capabilities include comprehensive window management primitives such as directional focusing, window hinting with character overlays, and grid-based arrangements. It also supports multi-monitor optimization, enabling the application to automatically adjust layouts or restore window state snapshots based on detected screen configurations.

The system uses JavaScript for its configuration and logic definitions.

## Tags

### Business & Productivity Software

- [macOS Workspace Managers](https://awesome-repositories.com/f/business-productivity-software/desktop-workspace-organizers/macos-workspace-managers.md) — Acts as a keyboard-driven window manager for resizing and positioning application windows specifically on macOS.
- [Workspace Layout Automations](https://awesome-repositories.com/f/business-productivity-software/workspace-layout-automations.md) — Defines and restores specific arrangements of multiple applications to create consistent, task-based workspaces.

### User Interface & Experience

- [Keyboard-Driven Window Orchestration](https://awesome-repositories.com/f/user-interface-experience/keyboard-driven-window-orchestration.md) — Provides a keyboard-driven system for moving and resizing application windows using custom shortcuts and grid overlays.
- [Keyboard-to-Action Mappings](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/touch-event-processors/coordinate-to-translation-mapping/input-to-action-mappings/keyboard-to-action-mappings.md) — Maps keyboard shortcuts to window operations or JavaScript functions, including repeat-on-hold behavior. ([source](https://github.com/jigish/slate/wiki/JavaScript-Configs))
- [Window Visibility Controllers](https://awesome-repositories.com/f/user-interface-experience/application-state-managers/window-visibility-controllers.md) — Provides utilities to hide, show, or toggle the visibility of specific applications or all open windows. ([source](https://github.com/jigish/slate#readme))
- [Application Switchers](https://awesome-repositories.com/f/user-interface-experience/context-menu-customizations/application-launch-menus/per-application-menu-switching/application-launch-and-window-managers/application-switchers.md) — Implements a customizable alternative to the default system application switcher. ([source](https://github.com/jigish/slate/blob/master/README.md))
- [Keyboard Navigation](https://awesome-repositories.com/f/user-interface-experience/keyboard-navigation.md) — Enables switching focus between windows using directional keys or temporary character-based hinting labels.
- [Window Hinting Overlays](https://awesome-repositories.com/f/user-interface-experience/window-hinting-overlays.md) — Displays temporary character overlays on all windows to enable quick focusing via a single key press. ([source](https://github.com/jigish/slate/blob/master/README.md))

### Part of an Awesome List

- [Positioning and Resizing](https://awesome-repositories.com/f/awesome-lists/devtools/window-management/positioning-and-resizing.md) — Provides keyboard-driven capabilities for programmatically setting window screen coordinates and dimensions. ([source](https://github.com/jigish/slate#readme))

### Development Tools & Productivity

- [JavaScript-Configurable Automation Frameworks](https://awesome-repositories.com/f/development-tools-productivity/javascript-configurable-automation-frameworks.md) — Uses a JavaScript scripting API to define complex window manipulation logic and system event callbacks.
- [Application Scripting APIs](https://awesome-repositories.com/f/development-tools-productivity/open-source-software/modular-cad-platforms/python-scripting-engines/application-scripting-apis.md) — Provides a scripting API using JavaScript to implement dynamic and complex window management logic. ([source](https://github.com/jigish/slate/blob/master/README.md))
- [Custom Key Action Bindings](https://awesome-repositories.com/f/development-tools-productivity/terminal-action-bindings/custom-key-action-bindings.md) — Binds custom keystrokes and modal sequences to window operations, shell commands, and action chains. ([source](https://github.com/jigish/slate#readme))
- [Window](https://awesome-repositories.com/f/development-tools-productivity/window-managers/layout-automation/window.md) — Defines named sets of window positions and sizes for specific applications to activate simultaneously. ([source](https://github.com/jigish/slate/blob/master/README.md))
- [Configuration Scripts](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-tools/system-integration-interfaces/automation-apis/scripting-apis/custom-logic-extensions/javascript-logic-extensions/configuration-scripts.md) — Uses an executed JavaScript script to define dynamic application behavior, custom functions, and keyboard mappings.
- [Ordered Key Sequences](https://awesome-repositories.com/f/development-tools-productivity/action-execution-frameworks/multi-action-triggers/ordered-key-sequences.md) — Intercepts buffered keystroke sequences to trigger complex window operations without conflicting with system shortcuts.
- [Global Event Listeners](https://awesome-repositories.com/f/development-tools-productivity/extensible-configuration-interfaces/behavioral-extension-scripts/global-event-listeners.md) — Registers callback functions that execute automatically in response to specific system or application events. ([source](https://github.com/jigish/slate/wiki/JavaScript-Configs))
- [Shell Command Execution](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution.md) — Runs external terminal commands via keyboard shortcuts with support for blocking execution and working directories. ([source](https://github.com/jigish/slate#readme))
- [Layout Automation](https://awesome-repositories.com/f/development-tools-productivity/window-managers/layout-automation.md) — Automatically triggers specific layouts or snapshots when monitor counts or resolutions change. ([source](https://github.com/jigish/slate#readme))
- [Multi-Monitor Window Management](https://awesome-repositories.com/f/development-tools-productivity/window-managers/multi-monitor-window-management.md) — Provides capabilities to automatically adjust window layouts and positions based on the number of connected screens.

### DevOps & Infrastructure

- [Event-Driven Triggers](https://awesome-repositories.com/f/devops-infrastructure/event-driven-triggers.md) — Executes window operations and shell commands automatically in response to global keyboard shortcuts and system events.
- [Grid Layout Managers](https://awesome-repositories.com/f/devops-infrastructure/tiling-window-managers/grid-layout-managers.md) — Uses a visual grid overlay to manually resize and move windows into aligned cells. ([source](https://github.com/jigish/slate/blob/master/README.md))

### Operating Systems & Systems Programming

- [Tiling Window Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/display-windowing/tiling-window-managers.md) — Organizes application windows into predefined grids and spatial configurations via keystroke bindings.
- [Native macOS API Bridges](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/native-interoperability-bindings/native-system-integrations/native-api-bridges/native-macos-api-bridges.md) — Provides native bridges to macOS system APIs for direct manipulation of window positions and screen states.
- [Window Manipulations](https://awesome-repositories.com/f/operating-systems-systems-programming/window-manipulations.md) — Creates named window manipulation actions using parameters or configuration strings for programmatic control. ([source](https://github.com/jigish/slate/wiki/JavaScript-Configs))
- [Spatial Window Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/desktop-environment-frameworks/desktop-environment-components/window-management-systems/spatial-window-managers.md) — Arranges multiple windows into predefined spatial configurations based on window titles or order. ([source](https://github.com/jigish/slate#readme))

### Data & Databases

- [Window Arrangement Snapshots](https://awesome-repositories.com/f/data-databases/data-snapshotting/state-snapshots/window-arrangement-snapshots.md) — Captures and stores coordinate and dimension data of all open windows to restore spatial arrangements.
- [Window Geometry Snapshots](https://awesome-repositories.com/f/data-databases/data-snapshotting/state-snapshots/window-geometry-snapshots.md) — Captures the current state of all window positions and sizes to restore them later as a named snapshot. ([source](https://github.com/jigish/slate#readme))

### Graphics & Multimedia

- [Window Layout Grids](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/visualization-frameworks/coordinate-systems/page-coordinate-mapping/grid-coordinate-mapping/window-layout-grids.md) — Implements a virtual spatial grid to calculate precise window placements using screen percentages and pixel coordinates.

### Software Engineering & Architecture

- [Child Process Execution](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/external-application-integrations/child-process-execution.md) — Spawns and manages external shell commands as child processes with configurable working directories.

### Web Development

- [Directional Focus Switching](https://awesome-repositories.com/f/web-development/headless-browser-controllers/window-configurations/window-focus-switching/directional-focus-switching.md) — Enables changing the active window based on its relative screen position or the application name. ([source](https://github.com/jigish/slate/blob/master/README.md))
