Skip to content
jakeb-grantPublic

About

A toolkit for Wayland shells: bars, launchers, lock screens and panels in one small typed language, live on save.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Strand

A toolkit for Wayland shells. Write bars, launchers, lock screens and panels in one small typed language; save the file and the running shell follows.

Documentation · Install · Guide · Playground

bar Top {
  edge: top; height: 32
  split { pad: 0, 12
    start  { text windows.focused?.title ?? "" }
    center { text clock.format("%H:%M") }
    end    { text pct(battery.percent) }
  }
}
The bar that file draws: the focused window's title on the left, the time in the middle, the battery on the right

That file is a bar on every monitor, themed and animated. It wakes only when something it shows changes: the minute, the focused window's title, the battery.

  • Changes move on springs. Change a value and its prop moves there. Spring curves are theme tokens you can retune.
  • Save, and the shell follows. What you changed animates to its new value, and the rest keeps its state: an open popup, or the text typed into a launcher.
  • Checked before it runs. Every name, field and type is known before the shell starts. A save that does not check leaves the last good shell running, and the check says what is wrong and where.
  • Runs where you do. Strand runs on sway, Hyprland, niri and labwc, and every build is tested on all four.

Status

Strand is young: the language may still change before 1.0. Install it for your user, or update it, with the install script (install):

curl -fsSL https://strand.jacobgrant.dev/install.sh | sh

It installs the newest release from GitHub (--edge the newest build of main) on x86_64 Linux with glibc 2.39 or newer. Elsewhere, build it from this repository:

git clone https://github.com/jakeb-grant/strand
cd strand
cargo build --release -p strand -p strand-auth

Contributing

docs/development.md covers the crates, building and the test suite. docs/design.md is the source of truth for how Strand behaves, and docs/decisions.md records why.

License

Strand is licensed under either of the Apache License, Version 2.0 or the MIT license, at your option. Unless you say otherwise, any contribution you submit for inclusion in Strand is licensed the same way, with no additional terms or conditions.

About

A toolkit for Wayland shells: bars, launchers, lock screens and panels in one small typed language, live on save.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages