lushell-0.2.1 is not a library.
🌿 lush
[!WARNING] lush is in a very early phase, expect breaking changes or incomplete docs
lightweight, extensible wayland shell and widget framework. build completely custom bars, panels, and desktop widgets using lua.
please use examples as a reference til docs are ready
if you are curious about the motivation and design decisions, i wrote a blog post about it
features
- lua powered: define your entire ui in lua.
- wayland native: built for wayland using
layer-shell, supporting bars, panels, and overlays. - reactive state: shared signal and state bus with widget bindings. update your ui when data changes.
- data providers: realtime monitoring for cpu, memory, network, disk, battery, and a lot more
- notifications: builtin dbus notification daemon that can be styled and displayed via Lua.
- ipc: control the daemon from scripts or shortcuts to toggle, or reload components.
- styling: use css for styling, with hot-reloading support.
quickstart
known requirements:
- gtk4
- gtk4-layer-shell
- libpulse
- libudev
# install via cargo
# start the daemon with default config location
# start with a specific config
# list windows
# toggle a window named 'bar'
# reload the whole config
# hot reload css
minimal example
local lush = require
local ui = lush.
-- enable data providers you need
lush..
lush..
ui.
roadmap
widgets:
- entry
data providers:
- gpu usage
- cpu, gpu temp
notes
if you find a bug feel free to open an issue or even better make a pull request <3
lush is inspired by projects like AGS, Eww and quickshell