{"id":50970287,"url":"https://github.com/kryptic-sh/wayr","last_synced_at":"2026-06-19T01:32:25.426Z","repository":{"id":359829459,"uuid":"1247645399","full_name":"kryptic-sh/wayr","owner":"kryptic-sh","description":"Wayland-first windowing toolkit for Rust. Used by buffr, pikr, and future kryptic-sh GUI apps.","archived":false,"fork":false,"pushed_at":"2026-05-23T17:32:33.000Z","size":171,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T18:10:53.596Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kryptic-sh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["mxaddict"],"ko_fi":"mxaddict"}},"created_at":"2026-05-23T15:38:43.000Z","updated_at":"2026-05-23T17:32:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kryptic-sh/wayr","commit_stats":null,"previous_names":["kryptic-sh/wayr"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kryptic-sh/wayr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kryptic-sh%2Fwayr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kryptic-sh%2Fwayr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kryptic-sh%2Fwayr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kryptic-sh%2Fwayr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kryptic-sh","download_url":"https://codeload.github.com/kryptic-sh/wayr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kryptic-sh%2Fwayr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34514282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-19T01:32:24.094Z","updated_at":"2026-06-19T01:32:25.395Z","avatar_url":"https://github.com/kryptic-sh.png","language":"Rust","funding_links":["https://github.com/sponsors/mxaddict","https://ko-fi.com/mxaddict"],"categories":[],"sub_categories":[],"readme":"# wayr\n\nWayland-first windowing toolkit for Rust.\n\n`wayr` is a minimal, opinionated alternative to winit aimed at\n[kryptic-sh](https://github.com/kryptic-sh) apps —\n[buffr](https://github.com/kryptic-sh/buffr),\n[pikr](https://github.com/kryptic-sh/pikr), and future GUI work.\n\n## What it is\n\n- **Wayland only.** No X11, macOS, Windows, mobile, or web. No XWayland\n  fallback. By construction.\n- **First-class layer-shell + `wl_subsurface` embedding.** Both are built into\n  the API rather than hidden behind raw FFI, because both are the reason wayr\n  exists.\n- **Fractional scaling + multi-output + text-input-v3 + cursor-shape + high-res\n  scroll.** Wayland-native through and through.\n- **wgpu-friendly.** raw-window-handle 0.6 implementations, no version coupling\n  to any specific GPU crate.\n\n## What it isn't\n\n- A drop-in winit replacement. The API shape mirrors winit's\n  `ApplicationHandler` so consumer code ports mechanically, but wayr has no\n  cross-platform pretensions.\n- A general-purpose Wayland client library. Use\n  [`wayland-client`](https://crates.io/crates/wayland-client) or\n  [`smithay-client-toolkit`](https://crates.io/crates/smithay-client-toolkit) if\n  you need raw protocol access.\n- A clipboard library. Use\n  [`hjkl-clipboard`](https://crates.io/crates/hjkl-clipboard) — it implements\n  `wl_data_device` over a raw Wayland socket (orthogonal to wayr's own\n  connection) and supports text + HTML + RTF + `image/png` MIME types, plus X11\n  / macOS / Windows / OSC52 fallback for free.\n- Production-ready. Pre-alpha. Track [umbrella issue #1] for the v0.1 MVP plan.\n\n[umbrella issue #1]: https://github.com/kryptic-sh/wayr/issues/1\n\n## Not to be confused with\n\nThere is an unrelated `wayrs-*` family of crates on crates.io\n([`wayrs-client`](https://crates.io/crates/wayrs-client),\n[`wayrs-protocols`](https://crates.io/crates/wayrs-protocols), etc.) — an\nalternative low-level Wayland client implementation by a different author. wayr\nis **not** part of that family. The name similarity is coincidence; pin `wayr`\n(no trailing `s-`) in your `Cargo.toml`.\n\n## Status\n\nv0.1 — Wayland-first protocol surface complete (toplevel, layer-shell,\nsubsurface, fractional-scale + multi-output, text-input-v3 IME, cursor-shape,\nhigh-res scroll, touch). Pre-alpha; API is locked in shape but consumers (buffr,\npikr) are still validating in tree. See [umbrella issue #1] for the long-term\nplan and [issues](https://github.com/kryptic-sh/wayr/issues) for the live punch\nlist.\n\n## Why not fork winit?\n\nConsidered and rejected. Winit's cross-platform surface drags in X11, macOS,\nWindows, and mobile code paths kryptic-sh apps will never use. Floem's\n`floem-winit` fork was the leading candidate base, but its restructured\nper-platform subcrate layout and calver versioning make rebases against upstream\npainful. Building a focused Wayland-only toolkit from scratch — ~4-6k LOC of\nglue on top of `wayland-client` + `wayland-protocols` + `xkbcommon` — is\ncomparable scope to a fork maintained over a year, with the bonus of an API\nshaped around the embedder use cases (subsurface, layer-shell) we actually need.\n\n## License\n\nMIT. See [LICENSE](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkryptic-sh%2Fwayr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkryptic-sh%2Fwayr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkryptic-sh%2Fwayr/lists"}