個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A declarative UI framework in Swift and a wayland compositor.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A declarative UI framework in Swift, rendering through Vulkan.
The current application-facing API is documented in
docs/api.md. Coding agents: start from
AGENTS.md (architecture, layout, build, conventions).
Views are described the way SwiftUI describes them — a body returning nested
value types — but the whole stack underneath is here: layout via Yoga, text via
HarfBuzz and FreeType, and a single Vulkan pipeline that draws everything.
On a clean Debian or Arch machine the whole stack — packages, wlroots 0.19,
NPRPC, compositor, Swift clients — is:檢視完整 README ↗A declarative UI framework for Swift on Linux, with its own GPU renderer — and a Wayland desktop built on top of it.
struct Counter: View {
@State private var count = 0
var body: some View {
VStack(padding: 8) {
Text("count: \(count)", color: .accent)
Text("[ increment ]", onClick: { count += 1 })
}
}
}
If you have written SwiftUI, this will look familiar: views are small structs
with a body, state lives in @State, and the framework redraws what changed.
Everything underneath — layout, text, rendering — is part of this repository.
The repo has two halves:
LavaUI) — for writing desktop apps in Swift.Linux only for now.
On Debian or Arch:
git clone https://github.com/nikitapn/LavaUI.git && cd LavaUI
./scripts/bootstrap.sh --yes # installs everything, builds everything
swift run HelloWorld # the demo
docs/install.md explains what that does, and how to install only what the framework needs.
Add the package to your Package.swift and open a window:
import LavaUI
@main
struct MyApp {
static func main() {
guard let editor = LavaApp.open(title: "My App") else { return }
LavaApp.run(editor: editor) {
Text("hello from LavaUI", color: .accent)
}
}
}
Getting started walks through it from an empty directory, including the one manifest setting the package needs.
Every one of these is a LavaUI app and runs with swift run <name>:
| App | What it is |
|---|---|
HelloWorld | Demo of the framework's views |
LavaTerm | Terminal emulator |
LavaEditor | Text editor |
LavaExplorer | File manager — tabs, split panes, Trash |
LavaPass | KeePass-compatible password vaults — guide |
LavaView | Image viewer |
LavaPDF | PDF reader |
LavaPlayer | Video player |
LavaSpotify | Spotify player |
LavaWeather | Weather |
TraceLoom | Log viewer with an AI assistant |
LavaShot | Screenshot and annotation tool (needs the Lava desktop) |
The desktop itself — LavaPanel, LavaDock, LavaLauncher, LavaSwitcher,
LavaSettings — is made of LavaUI apps as well.
compositor/scripts/dev-run # try it in a window, inside your current session
compositor/scripts/start-lava-compositor setup # install it as a real session
See compositor/README.md.
| Getting started | From an empty package to a running window |
| API guide | Views, layout, modifiers, theming, animation |
| SwiftUI parity | What carries over from SwiftUI and what differs |
| How it works | The rendering pipeline and the repo layout |
| Installing | Packages, Docker, the test VM |
| Performance | Benchmarks and baselines |
| AGENTS.md | The in-depth guide for contributors and coding agents |
The docs site is at lavaui.nikitapn.com.
The full package lists are in packaging/deps/.
MIT — see LICENSE.