NOTICE
yatta
is no longer being actively developed. If you liked yatta
, please
check out komorebi, a new tiling window
manager for Windows 10 that I am working on, which has support for multiple
monitors, virtual workspaces and window stacks!
yatta
BSP Tiling Window Manager for Windows 10
Getting Started
This project is still heavily under development and there are no prebuilt binaries available yet.
If you would like to use yatta
, you will need
a working Rust development environment on Windows 10. If you are using
the x86_64-pc-windows-msvc
toolchain, make sure you have also installed
the Build Tools for Visual Studio 2019.
You can then clone this repo and compile the source code to install the binaries for yatta
and yattac
:
cargo install --path yatta
cargo install --path yattac
By running yattac start
at a Powershell prompt, you should see the following output:
Start-Process yatta -WindowStyle hidden
This means that yatta
is now running in the background, tiling all your windows, and listening for commands sent to it
by yattac
.
You can similarly stop the process by running yattac stop
, and you should see the following output:
Stop-Process -Name yatta
Keybindings
This project does not handle anything related to keybindings and keyboard shortcuts. I am currently
using AutoHotKey
to manage my window management keyboard shortcuts. Here is a sample yatta.ahk
AHK script that you can use as a
starting point for your own:
; Start yatta, this command makes sure no duplicate processes will be created
Run, yattac.exe start, , Hide
; Send the configuration options for yatta here
; Always float IntelliJ popups, matching on class
Run, yattac.exe float-class SunAwtDialog, , Hide
; Always float Control Panel, matching on title
Run, yattac.exe float-title "Control Panel", , Hide
; Always float Task Manager, matching on class
Run, yattac.exe float-class TaskManagerWindow, , Hide
; Always float Wally, matching on executable name
Run, yattac.exe float-exe Wally.exe, , Hide
; Always float Calculator app, matching on window title
Run, yattac.exe float-title Calculator, , Hide
Run, yattac.exe float-exe 1Password.exe, , Hide
; Change the focused window, Alt + Vim direction keys
!h::
; This sends an Alt key which is a hack to steal focus when Windows doesn't feel like respecting SetForegroundWindow
; https://stackoverflow.com/questions/10740346/setforegroundwindow-only-working-while-visual-studio-is-open
Send !
Run, yattac.exe focus left, , Hide
return
!j::
Send !
Run, yattac.exe focus down, , Hide
return
!k::
Send !
Run, yattac.exe focus up, , Hide
return
!l::
Send !
Run, yattac.exe focus right, , Hide
return
; Move the focused window in a given direction, Alt + Shift + Vim direction keys
!+h::
Run, yattac.exe move left, Hide
return
!+j::
Run, yattac.exe move down, Hide
return
!+k::
Run, yattac.exe move up, Hide
return
!+l::
Run, yattac.exe move right, Hide
return
; Increase the size of a given edge in the BSPV and BSPH layouts, Alt + Arrow Key
!Left::
Run, yattac.exe resize left increase, Hide
return
!Right::
Run, yattac.exe resize right increase, Hide
return
!Up::
Run, yattac.exe resize top increase, Hide
return
!Down::
Run, yattac.exe resize bottom increase, Hide
return
; Decrease the size of a given edge in the BSPV and BSPH layouts, Alt + Shift + Arrow Key
!+Left::
Run, yattac.exe resize left decrease, Hide
return
!+Right::
Run, yattac.exe resize right decrease, Hide
return
!+Up::
Run, yattac.exe resize top decrease, Hide
return
!+Down::
Run, yattac.exe resize bottom decrease, Hide
return
; Move the focused window to the previous display, Alt + Shift + Left
!+Left::
Run, yattac.exe move-to-display previous, Hide
return
; Move the focused window to the next display, Alt + Shift + Right
!+Right::
Run, yattac.exe move-to-display next, Hide
return
; Promote the focused window to the top of the tree, Alt + Shift + Enter
!+Enter::
Run, yattac.exe promote, Hide
return
; Switch to an equal-width, max-height column layout, Alt + Shift + C
!+c::
Run, yattac.exe layout columns, Hide
return
; Switch to the default vertical bsp tiling layout, Alt + Shift + T
!+t::
Run, yattac.exe layout bspv, Hide
return
; Toggle the Monocle layout, Alt + Shift + F
!+f::
Run, yattac.exe toggle-monocle, Hide
return
; Force a retile if things get janky, Alt + Shift + R
!+r::
Run, yattac.exe retile, Hide
return
; Float the focused window, Alt + T
!t::
Run, yattac.exe toggle-float, Hide
return
; Pause responding to any window events or yattac commands, Alt + P
!p::
Run, yattac.exe toggle-pause, Hide
return
As more commands are still being added and some commands and arguments may change before the CLI is stabilised, I
recommend running yattac.exe help
to see the full list of commands and operations available to be bound to keyboard
shortcuts.