Design your desktop canvas.
A native macOS window manager for arranging open apps across one screen or many screens with quick layouts, live drag previews, custom grids, and saved workspaces.
Website and downloads: screenx.scrubmac.app · Landing page source: screenx-landing · License: MIT
ScreenX helps you place every open Mac window exactly where you want it.
Instead of manually resizing windows again and again, you choose a layout and ScreenX fits the active app into that space. You can split a display into halves, quarters, thirds, rows, columns, or your own custom grid. You can also use a live drag canvas to preview where a window will go before you release it.
The goal is simple: your desktop should feel calm, intentional, and easy to rebuild.
macOS has useful built-in tiling, but it can still feel limited when you work with multiple screens, unusual window sizes, or personal layout habits.
ScreenX was built from that need: keep the direct feeling of native Mac window placement, then add more control for people who want their workspace to behave like a real canvas.
ScreenX is useful for:
- People who work with many apps open at the same time.
- Designers, developers, traders, researchers, operators, and founders who live across multiple windows.
- Anyone using two, three, or more displays.
- Users who want fast keyboard shortcuts without losing visual drag-and-drop control.
- People who want repeatable workspace layouts instead of rebuilding the same desktop every day.
- Built-in guide: ScreenX includes an in-app Guide section with setup steps, feature explanations, hints, and troubleshooting.
- Drag placement: hold
Shiftby default, drag a window, see the live placement preview, and release to fit it into the selected area. - Placement Canvas: open a full-screen layout overlay with
Control + Option + Space, or holdControl + Shiftbriefly, and choose where the current window should go. - Quick layouts: instantly move windows into halves, quarters, thirds, two-thirds, center, or full-screen visible area.
- Custom grids: create layouts like
1 x 2,2 x 1,3 x 2, one-left-two-right, or other grid-based workspace shapes. - Per-screen layouts: each connected display can have its own grid, row count, column count, and spacing.
- Saved layouts: capture a workspace and restore windows back to their familiar places later.
- Live previews: see where the app will be placed before ScreenX moves it.
- Adjustable controls: change the main placement shortcut, drag modifier keys, direct canvas modifier keys, and quick-layout modifier keys from Settings.
- Edge-to-edge tiling: use
0 pxgap when you want windows to touch exactly with no space between them.
ScreenX uses macOS Accessibility permission to move and resize windows from other apps.
In plain language:
- You choose or preview a target space on your screen.
- ScreenX reads the active window and the visible area of the display.
- It calculates the exact position and size for that layout.
- It asks macOS to move the window into that position.
ScreenX does not need screen recording to arrange windows. The important permission is Accessibility, because macOS protects window control behind that approval.
For a normal Mac install:
- Download
ScreenX-1.0.3.dmg. - Open the DMG.
- Drag
ScreenX.appinto theApplicationsfolder. - Eject the DMG.
- Open ScreenX from Applications.
The public download DMG must be Developer ID signed, notarized by Apple, and stapled before release. A locally signed but unnotarized DMG is useful for testing, but macOS Gatekeeper will warn users.
- Open
ScreenX.appfrom Applications. - When macOS asks, allow Accessibility access.
- Relaunch ScreenX after granting the permission.
- Try holding
Shiftwhile dragging a window. You can change the drag modifier keys in Settings. - Try the Placement Canvas with
Control + Option + Space, or holdControl + Shiftbriefly and drag an area with the mouse.
If ScreenX still asks for permission after you already approved it, reset the old local approval and open the installed app again:
tccutil reset Accessibility com.syntaxfear.screenx
open -n /Applications/ScreenX.appThen approve /Applications/ScreenX.app in System Settings > Privacy & Security > Accessibility and relaunch ScreenX.
Shiftwhile dragging: show the live drag placement canvas. These drag modifier keys can be changed in Settings > Placement.Control + Option + Space: open the Placement Canvas.- Hold
Control + Shiftbriefly: open the Placement Canvas directly for mouse selection.
The Placement Canvas shortcut, drag modifier keys, and direct canvas modifier keys can be changed in Settings > Placement.
ScreenX also registers quick shortcuts for preset layouts. The default modifier set is Control + Command, and you can change those modifier keys in Settings > Quick Layout Hotkeys.
- Arrow keys: left, right, top, and bottom halves.
M: maximize to the visible display area.C: center the window.U,I,J,K: corner quarters.1,2,3: left, center, and right thirds.4,5: two-thirds layouts.
ScreenX is designed for multiple screens.
Each display can have a different layout profile. For example:
- Default profile:
2 x 1grid for simple side-by-side work. - Main monitor:
3 x 2grid for deep work. - Side monitor:
1 x 2split for chat and notes. - Ultrawide monitor:
3 x 1split for left, center, and right zones. - Vertical monitor:
1 x 2split for documents or logs.
Open Arrange > Display Layouts to configure each display. ScreenX uses the profile for the screen where the target window or pointer is located.
ScreenX treats spacing as intentional.
- Use
0 pxgap for exact edge-to-edge tiling. - Use a small gap when you want visual separation between windows.
- Outer screen edges stay aligned so layouts do not accidentally leave thin unwanted spaces.
ScreenX keeps workspace behavior local to your Mac.
- Accessibility permission is used to move and resize app windows.
- Window layout data and saved workspaces are stored locally.
- Update checking only runs when a release feed is configured.
- No account is required for the app itself.
Created by Levan Parastashvili.
- GitHub: SyntaxFear/screenX
- LinkedIn: levani-parastashvili
- X: @Parastashvilii
See BRANDING.md for product positioning, landing-page copy, colors, and brand direction.
ScreenX is an open-source macOS app released under the MIT License.
Project repository: github.com/SyntaxFear/screenX
ScreenX is open source so people can understand how the macOS Accessibility
window-placement logic works, inspect the default shortcuts, and suggest safer
or more ergonomic layouts. Please review CONTRIBUTING.md before sending a
change and SECURITY.md before reporting a security-sensitive issue.
ScreenX is a Swift Package Manager macOS app.
./script/build_and_run.shThe script builds the app, creates a local .app bundle, signs it when a signing identity is available, and launches it.
Install a Developer ID Application certificate and configure Apple notarization credentials, then run:
BUNDLE_ID="com.syntaxfear.screenx" \
VERSION="1.0.3" \
BUILD_NUMBER="35" \
NOTARY_PROFILE="ScreenXNotary" \
./script/package_release.shYou can also notarize with Apple ID credentials:
APPLE_ID="developer@example.com" \
APPLE_TEAM_ID="TEAMID1234" \
APPLE_APP_PASSWORD="app-specific-password" \
./script/package_release.shThe release script builds a universal macOS app by default, creates a polished drag-to-Applications DMG, signs the app with hardened runtime, submits the DMG to Apple notarization, staples the ticket, and verifies the result.
For local preview builds only, you can skip notarization:
SKIP_NOTARIZATION=1 ./script/package_release.shDo not upload a skipped-notarization DMG as the public download.
The in-app About page can check for updates when ScreenXBrand.updateCheckURL is configured.
Expected JSON:
{
"version": "1.0.3",
"downloadURL": "https://screenx.scrubmac.app/releases/1.0.3/ScreenX-1.0.3.dmg",
"releaseNotesURL": "https://screenx.scrubmac.app/releases"
}Sources/ScreenX/App App entry point and macOS scene setup
Sources/ScreenX/Models Layouts, shortcuts, display geometry, app metadata
Sources/ScreenX/Services Accessibility, window movement, hotkeys, update checks
Sources/ScreenX/Stores App state, saved layouts, display profiles
Sources/ScreenX/Views SwiftUI interface
Tests/ScreenXTests Geometry, layout, hotkey, and placement tests
script Build, icon generation, and release packaging scripts
packaging macOS signing entitlements
assets Public README and brand assets