xgpui-linux 2.0.0

Linux and FreeBSD windowing and input backend for xgpui
Documentation
[package]
name = "xgpui-linux"
version = "2.0.0"
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/gpui-luma-dev/xgpui"
description = "Linux and FreeBSD windowing and input backend for xgpui"
homepage = "https://xgpui.dev/"
documentation = "https://xgpui.dev/#crate=gpui-linux"
readme = "README.md"
keywords = ["xgpui", "gpui", "gui", "linux", "wayland"]
categories = ["gui"]

[lib]
path = "src/gpui_linux.rs"
doctest = false
name = "gpui_linux"

[features]
default = ["wayland", "x11"]
test-support = ["gpui/test-support"]
wayland = [
    "dep:accesskit_unix",
    "gpui_wgpu",
    "ashpd/wayland",

    "calloop-wayland-source",
    "wayland-backend",
    "wayland-client",
    "wayland-cursor",
    "wayland-protocols",
    "wayland-protocols-plasma",
    "wayland-protocols-wlr",
    "filedescriptor",
    "xkbcommon/wayland",
    "open",
    "gpui/wayland",
    "uuid/v5",
]
x11 = [
    "dep:accesskit_unix",
    "gpui_wgpu",
    "ashpd",

    "as-raw-xcb-connection",
    "x11rb",
    "xkbcommon/x11",
    "xim",
    "filedescriptor",
    "open",
    "scap?/x11",
]
screen-capture = [
    "gpui/screen-capture",
    "scap",
]


[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dependencies]
accesskit = { version = "0.24.0", features = ["enumn"] }
accesskit_unix = { version = "0.22", optional = true }
anyhow = { version = "1.0.86" }
bytemuck = { version = "1" }
collections = { package = "collections-gpui-unofficial", version = "=1.26.2" }
futures = { version = "0.3.34" }
gpui = { package = "xgpui", version = "=2.0.0" }
gpui_util = { package = "gpui-util-gpui-unofficial", version = "=1.26.2" }
gpui_wgpu = { package = "xgpui-wgpu", version = "=2.0.0", features = ["font-kit"], optional = true }
http_client = { package = "http-client-gpui-unofficial", version = "=1.26.2" }
libc = { version = "0.2" }
log = { version = "0.4", default-features = false, features = ["std"] }
parking_lot = { version = "0.12.1" }
smallvec = { version = "1.6", features = ["union", "const_new"] }
smol = { version = "2.0" }
strum = { version = "0.28", features = ["derive"] }
url = { version = "2.2" }
uuid = { version = "1.1", features = ["serde"] }
oo7 = { version = "0.6", default-features = false, features = ["async-std", "native_crypto"] }
calloop = "0.14.3"
notify-rust = { version = "4" }
raw-window-handle = { version = "0.6" }
ashpd = { version = "0.13", default-features = false, features = [
    "async-io",
    "inhibit",
    "open_uri",
    "file_chooser",
    "settings"
], optional = true }
filedescriptor = { version = "0.8.2", optional = true }
open = { version = "5.2.0", optional = true }
xkbcommon = { version = "0.8", default-features = false, optional = true }
scap = { version = "0.0.8-zed", package = "zed-scap", default-features = false, optional = true }

# Wayland
calloop-wayland-source = { version = "0.4.1", optional = true }
wayland-backend = { version = "0.3.15", features = [
    "client_system",
    "dlopen",
    "log",
], optional = true }
wayland-client = { version = "0.31.11", optional = true }
wayland-cursor = { version = "0.31.11", optional = true }
wayland-protocols = { version = "0.32.9", features = [
    "client",
    "staging",
    "unstable",
], optional = true }
wayland-protocols-plasma = { version = "0.3.9", features = [
    "client",
], optional = true }
wayland-protocols-wlr = { version = "0.3.9", features = [
    "client",
], optional = true }

# X11
as-raw-xcb-connection = { version = "1", optional = true }
x11rb = { version = "0.13.1", features = [
    "allow-unsafe-code",
    "xkb",
    "randr",
    "xinput",
    "cursor",
    "resource_manager",
    "sync",
    "dri3",
], optional = true }
# WARNING: If you change this, you must also publish a new version of zed-xim to crates.io
xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8", features = [
    "x11rb-xcb",
    "x11rb-client",
], package = "zed-xim", version = "0.4.0-zed", optional = true }

[target.'cfg(any(target_os = "linux", target_os = "freebsd"))'.dev-dependencies]
gpui = { package = "xgpui", version = "=2.0.0", features = ["test-support"] }

[lints]
rust = { unexpected_cfgs = { level = "warn", check-cfg = ['cfg(feature, values("nightly_coverage"))'] } }

[workspace]

[package.metadata.cargo-shear]
ignored = ["scap"]