Easy Move+Resize for macOS window dragging
Adds "modifier key + mouse drag" move and resize to OSX
At a glance
- What is it?
- Easy Move+Resize adds configurable modifier-key and mouse-drag controls for moving and resizing macOS windows. It suits users who want X11-style window handling without replacing their window manager, but it depends on Accessibility permission and interferes with global mouse input.
- Who is it for?
- Adopt Easy Move+Resize if you specifically want X11-style drag gestures and can grant it Accessibility permission. Do not adopt it if a window manager that provides equivalent positioning controls would serve your workflow better.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 165 days ago.
- What is it written in?
- Mainly Objective-C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why Easy Move+Resize exists on macOS
Easy Move+Resize solves a narrow window-management problem: moving and resizing a window by pressing a mouse button anywhere inside it rather than targeting a title bar or edge. It is intended for macOS users accustomed to behavior found in X11/Linux window managers. The project does not describe itself as a replacement window manager, tiling system, or window-layout engine. Its scope is mouse-driven movement and resizing.
The documented default gesture is direct. Holding `Cmd + Ctrl + Left Mouse` inside a window and dragging moves that window. Holding `Cmd + Ctrl + Right Mouse` starts resizing. For movement, the initial click point within the window becomes the reference for subsequent positioning. The README does not expose configuration files or describe a layout model, so users should not expect saved workspaces, tiling rules, snapping zones, or scriptable placement from this project.
This distinction matters when comparing it with a full window manager. Easy Move+Resize adds an interaction layer around ordinary macOS windows. It leaves application choice, menu access, native window controls, and the rest of the desktop arrangement outside its stated scope. That narrower design is useful if the main irritation is imprecise mouse positioning, while it is insufficient for users who need keyboard-directed movement or automatic layouts.
How drag-to-move and region-based resize work
Resize behavior is based on the region of the window where the right-click gesture begins. According to the README, a click near the top-left behaves as though the top-left corner had been grabbed. A click near the top-center behaves like a top-edge resize. The remaining regions follow the same principle, allowing an edge operation without placing the pointer precisely on a thin window border.
The project supports a configurable set of modifier keys. Modifier names can be toggled in the application icon menu, and every selected modifier must be held for activation. This is more flexible than binding one fixed chord, although the README does not document conflict detection against shortcuts defined by individual applications. A chosen combination may therefore behave as intended for window movement but remain unavailable when another application has claimed the same keys.
Several menu controls affect operation. `Middle Click resize` changes the middle mouse button into the resize modifier. `Bring Window to Front` determines whether a background window being moved or resized is also raised. `Disabled` turns off the behavior globally. `Disable for ...` can exclude a particular application after that application has been used with Easy Move+Resize, which is the documented escape hatch for conflicts.
The repository identifies Objective-C as its primary language and includes an Xcode project and test directory. Beyond that, the README does not describe event taps, accessibility APIs, coordinate conversion, or the internal drag state machine. Those implementation details should not be inferred merely from the interface. The observable architecture is a macOS `.app` with a menu-driven settings surface and global mouse input behavior.
Installing Easy Move+Resize and performing a first drag
The README offers a Homebrew Cask installation for users who already manage macOS applications with Homebrew:
brew install --cask easy-move-plus-resizeAfter installation, launch Easy Move+Resize from macOS. The README says the utility uses Accessibility permission and links a troubleshooting issue when that permission is not working. The application icon menu is where modifiers, disabling, front-to-back behavior, defaults, and application exclusions are controlled.
For a first real use, open an ordinary movable window and hold `Cmd + Ctrl + Left Mouse` inside its content area. Drag the pointer, then release the button. The window should move under this default gesture. The README documents this input exactly and does not require a command-line configuration file for the operation.
Next, hold `Cmd + Ctrl + Right Mouse`. Click away from the window edge but inside a region such as the top-left or top-center, drag, and release. The region containing the initial click determines the resize direction. If macOS reports that it cannot check the app for malicious software, or Accessibility permission fails, the README directs users to separate troubleshooting links rather than describing a repair command.
For manual installation, the documented route is the Releases page. Download the latest release, unzip it, and run the app. No `curl`, installer flag, or configuration command is provided, so none should be inferred.
Configuration menus and per-application exclusions
Easy Move+Resize does not present a command-line configuration workflow in the README. Configuration occurs through the application icon menu. This suits users who want to alter behavior interactively, but it also means the documented setup does not describe a portable configuration file, team policy mechanism, or repository suitable for version-controlled desktop settings.
Modifier selection is additive in a specific sense: all keys toggled as selected must be held before the mouse action activates. Users can therefore select a different chord from the default `Cmd + Ctrl`, although the project does not enumerate every available modifier or describe reserved combinations. The interface avoids presenting a long configuration file, but it also provides no documented conflict checker.
The `Middle Click resize` option is relevant to mice with a usable middle button. The README does not describe trackpad gesture equivalents, so mouse-button language should not be generalized to every pointer device. Likewise, `Bring Window to Front` changes z-order behavior for operations on background windows, but the project does not document exclusions or delays for focus-stealing prevention.
Per-application disabling deserves particular attention. The process described by the README is to use Easy Move+Resize on an application first, then select `Disable for ...` from the menu. That workflow is appropriate for apps with their own canvas, remote desktop surfaces, game input, or modifier-sensitive mouse behavior. `Reset to Defaults` restores application settings, though the README does not list each stored default or describe whether exclusions are synchronized through any external service.
Trade-offs against macOS controls and X11 window managers
The clearest alternative approach is the native macOS window-control model: drag the title bar to move a window and target a visible border or resize control to change its size. Easy Move+Resize replaces those precise targets with a larger clickable area and a modifier chord. That is a genuine usability improvement for users who find title bars narrow or window edges difficult to hit, but it adds a global input layer and more configuration controls to the interaction.
The other reference point in the README is X11/Linux window-manager behavior. Easy Move+Resize borrows the idea of initiating movement and resizing from inside a window. It does not reproduce a complete Linux window manager, and the documentation offers no equivalent for keyboard movement, tiling, virtual desktops, window rules, or scripted geometry. Treating the app as a portable replacement for an X11 window manager would therefore overstate what it does.
The utility is a poor fit for users who need deterministic keyboard placement, desktop-wide layouts, or a documented configuration API. It can also be the wrong choice where application mouse handling must take priority, although `Disable for ...` limits that conflict to known applications after setup. Its advantages are focused enough that this is usually the right comparison: easy pointer targeting versus native controls, not basic drag support versus a complete window-management system.
Release maintenance, signing, and MIT licensing
The repository is not archived. Its last push was on 2026-05-11, and the documented release history includes version 1.8.1 on 2026-04-23, version 1.8.0 on 2025-09-14, and version 1.7.0 on 2023-07-26. Those dates indicate recent repository activity and a recent signed-binary release, but they do not establish compatibility with every macOS release.
The project uses GitHub Actions for building, signing, notarizing, and publishing releases. Its documented workflow requires Apple credentials and signing configuration, including `APPLE_ID`, `APPLE_TEAM_ID`, `APPLE_APP_PASSWORD`, `DEVELOPER_ID_APPLICATION`, `DEVELOPER_ID_CERT_P12_BASE64`, and `DEVELOPER_ID_CERT_PASSWORD`. The `release` workflow validates the repository, builds the `.app` with `xcodebuild`, signs and notarizes it, staples it, creates a tag, and publishes a signed zip.
The README does not document an in-app upgrade mechanism, automatic update checks, migration of menu settings, or a rollback procedure. Manual users must obtain a newer release and replace the running application, while Homebrew users are not given a project-specific upgrade command beyond the standard installation route documented by the project.
The repository is licensed under MIT. Code reuse and distribution are governed by the terms in `LICENSE.txt`, including its notice and license conditions. This review does not interpret how those terms apply to a particular distribution, and the README does not describe separate terms for downloaded binaries.
Editorial conclusion
Adopt Easy Move+Resize if you specifically want X11-style drag gestures and can grant it Accessibility permission. Do not adopt it if a window manager that provides equivalent positioning controls would serve your workflow better. Verify first that the gesture works in your priority applications, that per-application exclusions are available, and that your preferred modifier combination does not conflict with existing shortcuts. On the documented defaults, the judgement is straightforward: this is a focused macOS utility, not a general-purpose window manager.
Frequently asked questions
How do I move a window with Easy Move+Resize?
Hold `Cmd + Ctrl + Left Mouse` anywhere inside the window and drag. Release the mouse button when the new position is correct.
How do I resize a window from inside it?
Hold `Cmd + Ctrl + Right Mouse` and drag. The window region containing the initial click determines whether the operation acts like a corner or edge resize.
Can I disable Easy Move+Resize for one application?
Yes. First use Easy Move+Resize with that application, then select `Disable for ...` from the application icon menu.
What permissions does Easy Move+Resize require?
The troubleshooting section discusses Accessibility permission and links guidance for cases where that permission does not work. It does not provide a separate permission command.
Does Easy Move+Resize provide window tiling or keyboard positioning?
No such features are documented. The README describes mouse-drag movement and resizing, modifier selection, menu settings, and application exclusions.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/dmarcotte-easy-move-resize)Was this useful?