/cortile

Tiling manager with hot corner support for EWMH Compliant Window Managers

Primary LanguageGoMIT LicenseMIT

Cortile [WIP]

Tiling manager with hot corner support for Xfce and other EWMH Compliant Window Managers.
Simply keep your current window manager and install cortile on top of it. Once enabled, the tiling manager will handle resizing and positioning of existing and new windows.

Features

  • Workspace based tiling.
  • Keyboard and hot corner events.
  • Vertical, horizontal and fullscreen mode.
  • Resize of master / slave area.
  • Drag and drop window swap.
  • Auto detection of panels.
  • Multi monitor support.

Install

You need go >= 1.17 to run cortile.

Requirements

Install go via archive:

cd /tmp && wget https://dl.google.com/go/go1.17.linux-amd64.tar.gz
sudo tar -xvf go1.17.linux-amd64.tar.gz
sudo mv -fi go /usr/local
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.profile
echo "export GOPATH=~/.go" >> ~/.profile
source ~/.profile

Install go via apt:

sudo apt install golang

Install go via pacman:

sudo pacman -S go

Cortile

Check your go version:

go version

Use remote source

Install cortile from GitHub main branch:

go install github.com/leukipp/cortile@main

Use local source

Clone cortile from GitHub main branch:

git clone https://github.com/leukipp/cortile.git -b main
cd cortile

Once you have made local changes run:

go build && go install

Usage

Start in verbose mode:

~/.go/bin/cortile -v

In case of warnings during startup, check if config.toml is properly configured.

Xfce

Useful shortcuts for Xfce environments:

  • Move window: Alt+Left-Click.
  • Resize window: Alt+Right-Click.
  • Maximize window: Alt+Double-Click.

Config

The config file is located at ~/.config/cortile/config.toml.

Corner events Description
Top-Left Cycle through layouts
Top-Right Make the active window master
Bottom-Right Increase number of master windows
Bottom-Left Decrease number of master windows
Key events Description
Ctrl+Shift+t Tile current workspace
Ctrl+Shift+u Untile current workspace
Ctrl+Shift+m Make the active window master
Ctrl+Shift+n Goto next window
Ctrl+Shift+p Goto previous window
Ctrl+Shift+s Cycle through layouts
Ctrl+Shift+i Increase number of master windows
Ctrl+Shift+d Decrease number of master windows
Ctrl+] Increment size of master windows
Ctrl+[ Decrement size of master windows

WIP

  • Configurable hot corners (current: hardcoded corner events).
  • Configurable LTR/RTL support (current: master is on the right side).
  • Proper dual monitor support (current: only biggest monitor is tiled).
  • Resizable windows (current: only master/slave proportion can be changed).

Credits

Based on zentile from Berin Larson.

License

MIT