Move, resize and restyle any window on Windows with simple global hotkeys — no mouse needed. Comes with a clean, modern dark/light GUI where you can tune everything and see what's happening in real time.
- Move windows with the arrow keys — pixel-precise, configurable step size
- Resize windows with
Shift + Arrow keys - Change opacity of any window with
Ctrl + Up / Down - Always on top toggle with
Ctrl + Left / Right - Send a window to the next monitor with
Ctrl + Shift + M - Modern GUI with dark, light and system themes
- Built-in hotkey reference, activity log and settings — no popups
- Settings persist automatically between sessions
| Hotkey | Action |
|---|---|
↑ ↓ ← → |
Move the focused window |
Shift + ↑ ↓ ← → |
Resize the window (grow that edge) |
Ctrl + ↑ |
Increase opacity |
Ctrl + ↓ |
Decrease opacity |
Ctrl + → |
Set always on top |
Ctrl + ← |
Remove always on top |
Ctrl + Shift + M |
Move window to the next monitor |
Hotkeys always act on the window that currently has focus, and only while the switch in the app is turned on.
- Grab
WindowControlTool.exefrom the latest release. - Run it. Flip the switch. Done — no Python required.
Note: Because the exe registers global hotkeys, some antivirus tools may flag it. The app is fully open source — you can read every line of code in this repository or build the exe yourself (see below).
Requires Python 3.9+ on Windows.
git clone https://github.com/DynamycSound/window_control_tool.git
cd window_control_tool
pip install -r requirements.txt
pip install -e .
python -m window_control_tool(Alternatively, if you do not want to install it locally, you can set the Python path environment variable before running: $env:PYTHONPATH="src"; python -m window_control_tool in PowerShell.)
To build a working executable without import errors, create a temporary file named run.py in the root directory with this content:
from window_control_tool.gui import run
if __name__ == "__main__":
run()Then, compile the executable by pointing PyInstaller to run.py and referencing the src directory:
pip install pyinstaller
pyinstaller --noconfirm --onefile --windowed --name WindowControlTool \
--paths src --collect-all customtkinter run.pyThe working exe will appear in the dist/ folder. You can safely delete run.py after the build is complete.
- Windows 10 / 11 (the win32 APIs the tool uses are Windows-only)
- Python 3.9+ if running from source
Everything is configurable from the Settings page in the app:
- Move / resize step — pixels per key press (default 40)
- Opacity change per press — 10 / 25 / 50
- Appearance — dark, light or follow the system
- Auto-enable hotkeys when the app starts
Settings are stored in %APPDATA%\WindowControlTool\settings.json.
Contributions are welcome! Please read CONTRIBUTING.md for how to set up a dev environment, the code style, and how to submit pull requests. Bug reports and feature ideas go in the issue tracker.
This project is free and open source under the MIT License — you may use, copy, modify and redistribute it, commercially or not.