What is XDragMover?
On many Linux desktop environments (KDE, GNOME, etc.), holding a modifier key while pressing the mouse anywhere inside a window lets you drag it around, and holding the same modifier with the right mouse button lets you resize it from the nearest corner. macOS has no built-in equivalent.
XDragMover recreates that familiar, efficient workflow on macOS — a small, fast and reliable utility inspired by the classic KDE-style window resizing and moving tool originally published at corz.org. It runs quietly in the menu bar, with no bloated frameworks and no background daemons. The project was previously named KDEMoverSizerMacOS (and, before that, KDESizeMoverMac) — if you're looking for either of those, you're in the right place.
Installation
- Click Download DMG above.
- Open the downloaded
XDragMover.dmgand drag XDragMover.app into the Applications folder. - Launch XDragMover from Applications or Spotlight. Since it isn't distributed through the App Store, macOS Gatekeeper will block the very first launch with a warning that it's from an unidentified developer — this is expected. Click "Done" on that dialog (not "Move to Trash") — this step is required: without clicking "Done" first, XDragMover won't show up in the next step at all.
- Open System Settings → Privacy & Security, scroll down to the Security section, and click "Open Anyway" next to the mention of XDragMover. Confirm once more in the dialog that appears. (Alternatively: Control-click the app in Finder and choose Open instead of double-clicking.)
- Launch XDragMover again — it now starts normally. It runs quietly as a menu bar item with no Dock icon or window of its own.
- Grant the Accessibility permission when prompted (System Settings → Privacy & Security → Accessibility) — required for XDragMover to move and resize other apps' windows; see Architecture Overview for why.
Features
- Move with a modifier + left click. Hold the configured modifier (default
⌘) and drag anywhere inside a window — it follows the mouse 1:1 until you let go. - Resize with a modifier + right click. The window corner nearest your click becomes the resize handle, exactly as if you'd grabbed it directly.
- Configurable focus-follows-mouse. Optionally give input focus to the window under the cursor once it's been stationary for a short, adjustable dwell time (experimental).
- Exclude specific apps. A regex-based exclusion list — filled via an "Add from Open Windows…" picker or typed by hand — permanently protects chosen apps from move/resize.
- Configurable modifier. Any combination of Command/Option/Control/Shift (Shift alone excluded) — adjust it to fit your workflow.
- Lightweight & native. No kernel extensions, no hacks — just the macOS Accessibility and Quartz Event Services APIs.
How It Works
XDragMover runs as a background menu bar app that installs a global event monitor via the Quartz Event Services API, watching modifier-key and mouse state system-wide. When a qualifying gesture is detected, it resolves the target window through the macOS Accessibility API and drives its position or frame directly. Because it observes input events system-wide and repositions windows belonging to other applications, XDragMover requires the Accessibility permission (System Settings → Privacy & Security → Accessibility), granted once on first launch.
Requirements
- macOS 13 Ventura, macOS 14 Sonoma, macOS 15 Sequoia, macOS 26 Tahoe, or later
- Accessibility permission granted to the app
Project & License
Every tagged release publishes the buildable "Corresponding Source" required by
GPLv3 §6 right alongside its signed .dmg: grab
source.zip from the same
release
as the installer. The primary development repository is private; this repository,
xdragmover-release,
is the public home for signed builds and their corresponding source.
XDragMover is licensed under the GNU General Public License v3.0.