惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
月光博客
月光博客
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
U
Unit 42
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
V
Visual Studio Blog
腾讯CDC
IT之家
IT之家

Show HN

Show HN: AI agents for UK GDAD PCF roles and their skills The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code.
GitHub - conxlgtm/WaylandClientKit: Swift-native Wayland ...
Nocerg · 2026-06-18 · via Show HN

WaylandClientKit is a Swift 6 package for building native Wayland clients and GUI framework infrastructure on Linux.

It exposes typed Swift APIs over Wayland client protocols for display lifecycle, windows, input, text input, data transfer, cursors, desktop integration, output facts, presentation feedback, and preview graphics submission.

Toolkit Boundary

WaylandClientKit does not wrap Qt, GTK, Electron, SDL, or another application toolkit.

It uses Linux and Wayland system libraries directly, then keeps raw protocol handles, queues, file descriptors, unsafe lifetimes, and C interop behind Swift APIs.

This package is intentionally below a GUI toolkit. Layout, widgets, styling, accessibility semantics, scene management, application architecture, and renderer selection belong in higher layers.

Status

WaylandClientKit is pre-foundation. It is useful for experiments, GUI framework development, compositor testing, and protocol validation, but source-breaking changes are still possible.

WaylandClient is the main public product. Its public API is baseline/audit tracked under the compatibility policy.

WaylandGraphicsPreview is a source-breaking preview product for graphics submission experiments. It may change while the graphics path is validated across real compositors.

Versioning is documented in Versioning.

What It Supports

Current public coverage includes:

  • display connection and owner-thread lifecycle
  • xdg-shell windows, popups, dialogs, and subsurfaces
  • software frame drawing, damage, regions, scale, and presentation feedback
  • pointer, keyboard, touch, tablet, gestures, pointer capture, and pointer warp
  • xkbcommon-backed key interpretation, compose, and dead-key text
  • regular clipboard, primary selection, drag-and-drop, and drag icons
  • text input through zwp_text_input_v3
  • cursor themes, cursor-shape requests, custom cursors, and cursor animation
  • desktop integration hooks for icons, idle inhibition, activation, system bell, shortcut inhibition, and toplevel drag
  • output topology facts and wlroots output-management preview snapshots
  • preview graphics APIs with software fallback reporting

The full protocol/status table lives in Support Matrix.

What It Does Not Provide

WaylandClientKit does not provide a widget set, declarative view tree, layout engine, styling system, accessibility model, scene model, retained renderer, or public raw Wayland binding layer.

Raw Wayland, GBM, EGL, DRM, dmabuf, syncobj, and graphics file descriptor handles are not public API.

Quick Start

WaylandClientKit requires Swift 6.3.2 or newer.

nix develop
swift run wck tools toolchain-smoke
swift run wck bootstrap check
swift build --disable-index-store
swift run wayland-client-kit-smoke

If you are not using Nix, install the packages in Linux Dependencies, then run the same wck checks.

Tiny Window

import WaylandClient

@main
struct TinyWaylandClient {
    static func main() async throws {
        try await WaylandDisplay.withConnection { display in
            let window = try await display.createTopLevelWindow()

            try await window.show { frame in
                frame.withXRGB8888Rows { _, pixels in
                    for index in 0..<pixels.count {
                        unsafe pixels[unchecked: index] = 0x0020_4060
                    }
                }
            }

            for await event in display.inputEvents.prefix(4) {
                print(event)
            }

            await window.close()
        }
    }
}

For the full walkthrough, see Getting Started.

Products

WaylandClient

The main public product for windowing, input, data transfer, text input, cursors, output facts, presentation feedback, and desktop integration.

WaylandGraphicsPreview

A source-breaking preview product for renderer-facing experiments. Use it when testing managed GPU paths, software fallback behavior, synchronization, pacing, or graphics metadata.

Repository Checks

The wck executable contains project checks and maintainer tooling.

Common commands:

swift run wck ci cheap
swift run wck ci check
swift run wck examples build
swift run wck protocols verify-generated

Checks cover protocol generation, shim verification, public API baselines, DocC, import boundaries, unsafe-token allowlists, examples, unit tests, integration tests, sanitizer runs, and live/headless smoke paths.

See Tooling and Protocol Generation for details.

Documentation

Examples

Useful first examples:

Build every example with:

swift run wck examples build

Compositor Evidence

Wayland behavior varies by compositor and advertised protocol support. WaylandClientKit tracks live compositor evidence separately from unit tests.

See Compositor Matrix for current evidence and collection commands.

Contributing

Read Contributing, Support, and the Code of Conduct.

Keep changes protocol-shaped, small, documented, and verified. Public API changes should update the relevant baseline, audit, docs, tests, and examples.

Security

Do not open public issues for vulnerabilities. Follow SECURITY.md.

License

WaylandClientKit is licensed under the Apache License 2.0.

Vendored protocol XML keeps upstream license and provenance notices intact. Generated protocol artifacts should retain those upstream comments when they are regenerated.