Split your terminal.Keep it running when you leave.
slat tiles one terminal into panes, tabs and workspaces. Your shells live in a small background process, so closing the window — or losing the SSH connection — doesn't end anything. Run slat again and it's all there.
On Arch: yay -S slat. On Debian and Ubuntu: sudo apt install slat after adding the apt repository. On Fedora: an .rpm from the latest release.
The real thing, in 19 seconds
Recorded from an actual slat session: a split, htop next to a test run, scrolling back through the output to find a test, then closing slat and coming back to find it all still running.
Close the window. Nothing stops.
The first slat you run starts a background process that owns every shell. The window you type in is only a view onto it.
Start
Run
slat. Split panes, open tabs, start a build or a server.Leave
Press the prefix, then d — or just close the terminal. Everything keeps running.
Come back
Run
slatfrom any terminal. Every pane is exactly as you left it, output included.
Small, and careful about the details
Every pane has its own screen
slat emulates a terminal per pane, so clear, vim or htop in one pane never touches its neighbours, and nothing is lost when you split, close or switch tabs.
Only what changed is sent
Each frame is compared with the last and only the differing cells reach your terminal. Fast over SSH; half a million lines of output take about a third of a second.
Scroll back and search
Every pane keeps its recent output. Page back through it with vim keys or your mouse wheel, and search it with / while new output keeps arriving underneath.
New panes start where you are
A split opens in the directory of the pane you split from, not back in your home folder.
One setting file, checked
A typo or an unknown key in your config is reported the moment you run slat, instead of being silently ignored.
Keys
Press the prefix — Ctrl S unless you change it — then one key. Everything else goes straight to your shell.
| v h | Split left / right, top / bottom |
| o O | Next / previous pane |
| arrows | Pane in that direction (or k j H L) |
| s | Swap with the next pane |
| + - = | Grow, shrink, equalize |
| z | Zoom the pane to full size |
| x | Close the pane |
| [ | Scroll back through the pane's output, and search it with / |
| d | Detach — slat keeps running |
| q | Quit and end every shell |
| ? | Show all keys |
| c | New tab |
| n p | Next / previous tab |
| 1–9 | Go to tab |
| , | Rename the tab |
| X | Close the tab |
| W | New workspace |
| w P | Next / previous workspace |
| $ | Rename the workspace |
Change any of them in ~/.config/slat/config.toml. Keys you don't set keep their defaults.
prefix = "C-a" shell = "/bin/zsh" [keybinds] split-vertical = "|" split-horizontal = "-" resize-shrink = "_" # "-" was taken above