Miguru is an automatically tiling window manager for Windows 10 à la Amethyst/xmonad.
There already are a bunch of really nice tiling window managers for Windows – see Other tiling WMs for Windows – so far I did not settle with any, though. So I'll be rolling my own...
The goal is a basic but hopefully stable window manager that should behave somewhere close to Amethyst/xmonad.
-
Uses native virtual desktops as workspaces, which can't be switched on per-monitor basis, integrate however with:
- Task View and programs like VirtualSpace
- Settings like
VirtualDesktopAltTabFilter
andVirtualDesktopTaskbarFilter
inHKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
-
No binary space partitioning, no moving in specific directions, just the basics of xmonad:
- Divide screen into master and secondary pane
- Cycle through windows forwards/backwards
- Layouts: tall, wide, fullscreen (aka monocle) and floating (i.e. no tiling)
-
Tested on Win10 Build 19042-19045, Windows 11 is currently not supported
- Particularly the GUIDs for the virtual desktop COM interfaces are missing/untested
Miguru is more of an AutoHotkey library (which lies in lib/* or is embedded in mwm.exe) and a default hotkey handler mwm.ahk.
- Download the artifact from the latest workflow-run
- Extract the zip and run
mwm.exe
When updating, download the newest artifact and replace mwm.exe, but keep your mwm.ahk if you have modified it.
- Download and install AutoHotkey v2
- Either from their Github Releases-page
- Or through Scoop with
scoop install autohotkey
- Clone this repository with
git clone https://github.com/imawizard/MiguruWM.git
- Run
autohotkey MiguruWM\mwm.ahk
When modifying mwm.ahk to your liking, see the following docs:
The hotkeys I use can be found here.
For help on how to adjust the hotkeys, see the AutoHotkey documentation.
The default hotkeys in mwm.ahk are the same as in Getting started with xmonad, in short:
Hotkey | Description |
---|---|
Alt-j |
Focus next window |
Alt-k |
Focus previous window |
Shift-Alt-c |
Kill window |
Shift-Alt-Return |
Open a new Windows Terminal |
Alt-p |
Open search (Win-s ) |
Alt-q |
Restart script |
Shift-Alt-q |
Exit script |
Hotkey | Description |
---|---|
Alt-m |
Focus master window |
Alt-Return |
Swap window with master window |
Shift-Alt-j |
Swap window with next |
Shift-Alt-k |
Swap window with previous |
Hotkey | Description |
---|---|
Alt-Left click |
Float and move a window |
Alt-Right click |
Float and resize a window |
Alt-t |
Tile floating window |
Hotkey | Description |
---|---|
Alt-1~9 |
Switch to workspace 1~9 |
Shift-Alt-1~9 |
Move window to workspace 1~9 |
Hotkey | Description |
---|---|
Alt-w,e,r |
Focus monitor 1~3 |
Shift-Alt-w,e,r |
Move window to monitor 1~3 |
Hotkey | Description |
---|---|
Alt-Space |
Next layout |
Shift-Alt-Space |
Reset current workspace's layout |
Alt-h |
Shrink master pane |
Alt-l |
Expand master pane |
Alt-, |
More master windows |
Alt-. |
Fewer master windows |
tall layout
tall layout with 2 master windows
wide layout
wide layout with 4 master windows
If you encounter incorrect behaviour, you can try turning on logs to get further information on what's happening by running the script from PowerShell like so:
$env:AHK_LOG = "trace"
autohotkey MiguruWM\mwm.ahk