• This repository has been archived on 07/Aug/2021
  • Stars
    star
    147
  • Rank 251,347 (Top 5 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A tiling window manager for Windows 10 based on binary space partitioning

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

demo

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.

More Repositories

1

komorebi

A tiling window manager for Windows 🍉
Rust
9,253
star
2

helix-vim

A Vim-like configuration for Helix
933
star
3

whkd

A simple hotkey daemon for Windows
Rust
444
star
4

unsubscan

A tool to help you find unsubscribe links in your emails
Rust
255
star
5

nixos-wsl-starter

A sane, batteries-included starter template for running NixOS on WSL
Nix
204
star
6

komokana

Automatic application-aware keyboard layer switching for Windows
Rust
106
star
7

komorebi-application-specific-configuration

A central place to document all tweaks required for Komorebi to 'just work' with as many applications as possible
58
star
8

satounki

Temporary elevated access management as a self-hosted service
Rust
37
star
9

nixos-hetzner-cloud-starter

A sane, batteries-included starter template for running NixOS on Hetzner Cloud
Nix
28
star
10

elasdx

An ElasticSearch index template updating, reindexing and cleanup tool
Go
22
star
11

JeezyVim

A fast, reliable NeoVim configuration as a Nix Flake for people who want to use NeoVim as an editor and not as an IDE
Nix
20
star
12

microfest

Manifest management for single page applications driven by micro frontend apps
Go
15
star
13

story

Workflow tool for implementing stories across multiple inter-dependent node projects in a meta-repo
Go
15
star
14

nixos-hetzner-robot-starter

A sane, batteries-included starter template for running NixOS on Hetzner Robot
Nix
13
star
15

nixos-multi-machine-starter

A sane, batteries-included starter template for running NixOS on Multiple Machines
Nix
12
star
16

sbmt

Seedbox Mount Tool
Go
10
star
17

Nazm

Declarative configuration management for Windows
Rust
10
star
18

komorebi-custom-layout-generator

An interactive tool to generate komorebi custom layouts in JSON
Svelte
9
star
19

bfm

Brewfile Manager
Go
7
star
20

sgrab

Grab an episode file from a seedbox running Sonarr
Go
5
star
21

nix-home-manager-corp-starter

A sane, batteries-included starter template for using Nix to create reproducible cloud development machines in corporate environments
Nix
5
star
22

xeetshot

longer xeets without premium or threads
HTML
4
star
23

diesel-autoincrement-new-struct

Generate NewStructs for all your tables with autoincrementing IDs
Rust
3
star
24

notado-cli

A CLI for interacting with https://notado.app
Rust
3
star
25

tdee

Calculate your total daily energy expenditure
Go
2
star
26

call-me

A ci-agnostic orchestrator for triggering tests on a shared environment pool across multiple pipelines
Go
1
star
27

triforce

Assemble and link node dependencies across meta and monorepo projects
Go
1
star
28

tashkil

A lightweight Rust library for removing Arabic diacritics
Rust
1
star
29

gainit

Calculate an estimate of daily calorie consumption to meet a weekly weight gain goal
Go
1
star
30

komorebi-bucket

1
star
31

loseit

Calculate an estimate of daily calorie consumption to meet a weekly weight loss goal
Go
1
star
32

komorebic-bucket

1
star
33

nix-crane-matrix-repro

Nix
1
star
34

skaffold-beam

A blast radius-aware Skaffold manifest generator for node meta-repos
Go
1
star
35

LGUG2Z

1
star
36

blastradius

See the potential impact of changes in one project across a meta-repo
Go
1
star
37

win32-display-data

Rust
1
star