1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# slosh
A terminal multiplexer: panes, tabs, and sessions you can detach from, written
in C on top of [libghostty-vt](https://github.com/ghostty-org/ghostty).
this repository also contains all code used for generating **[slosh.foo](https://slosh.foo)**: the website, with a feature tour, the
rendered docs, and a bootable in-browser demo.
## Install
Prebuilt binaries for every platform are on the
[latest release](https://github.com/sl0p-foo/slosh/releases/latest) page.
### macOS
With [Homebrew](https://brew.sh):
```bash
brew tap sl0p-foo/slosh
brew install slosh
```
### Linux
Building from source needs [zig](https://ziglang.org) 0.16 and nothing else,
and the result is one static binary that runs on any distro:
```bash
make vendor # the vendored terminal core, once
make all # about a second
sudo make install # optional: /usr/local/bin/slosh
# make install PREFIX=$HOME/.local # ...or somewhere you own
```
(The source build works on a mac too; Homebrew is simply the shorter road
there.)
On Arch, a pacman repository serves built, signed packages. Enroll the
signing key (fingerprint `0F67C909938CFFA8A76B59FD8D69B55A0E9056B9`; the
same key is [contrib/arch/slosh.asc](contrib/arch/slosh.asc) in git, so the
two copies can be compared):
```sh
curl -fsSLO https://slosh.foo/arch/slosh.asc
sudo pacman-key --add slosh.asc
sudo pacman-key --lsign-key 0F67C909938CFFA8A76B59FD8D69B55A0E9056B9
```
then, in `/etc/pacman.conf`:
```ini
[slosh]
Server = https://slosh.foo/arch/$arch
```
and `pacman -Sy slosh`. Details, and the PKGBUILD for building it yourself:
[contrib/arch](contrib/arch/README.md).
### Windows
Windows 10/11, x86-64 and ARM64, as one `slosh.exe` with no runtime
dependency beyond the OS. Panes are ConPTYs and sessions are AF_UNIX sockets,
so everything below works there too; see [docs/windows.md](docs/windows.md).
Cross-compiled from a mac or a Linux box, then copied across:
```bash
make -f Makefile.windows ARCH=x86_64 # or ARCH=aarch64
```
The binary lands at `build/win-<arch>/slosh.exe`; the `dist` target zips it
with its licensing paperwork, and `make release` builds both architectures
alongside the Linux and macOS artifacts.
## Run
```bash
slosh # attach to session "main", creating it if needed
slosh -s work # a named session
slosh ls # what is running
```
Sessions survive detaching and your ssh connection dying, and several terminals
can share one at once. The last client to interact controls the layout size;
smaller terminals follow the cursor over a crop and larger ones get blank
filler. Then `C-a \` to split, `C-a ?` for the keys, `C-a p` for every command
by name.
## Docs
For more comprehensive documentation see [docs/](docs/) or [browse it online](https://slosh.foo/docs/).
|