Update Smithay

This commit is contained in:
Ivan Molodetskikh 2023-09-24 11:04:30 +04:00
parent f58e56d65a
commit c422fdab0f
9 changed files with 275 additions and 167 deletions

353
Cargo.lock generated
View File

@ -136,7 +136,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
dependencies = [
"event-listener",
"event-listener 2.5.3",
"futures-core",
]
@ -147,20 +147,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
dependencies = [
"concurrent-queue",
"event-listener",
"event-listener 2.5.3",
"futures-core",
]
[[package]]
name = "async-executor"
version = "1.5.1"
version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
checksum = "78f2db9467baa66a700abce2a18c5ad793f6f83310aca1284796fc3921d113fd"
dependencies = [
"async-lock",
"async-task",
"concurrent-queue",
"fastrand 1.9.0",
"fastrand 2.0.1",
"futures-lite",
"slab",
]
@ -190,7 +190,7 @@ dependencies = [
"futures-lite",
"log",
"parking",
"polling",
"polling 2.8.0",
"rustix 0.37.23",
"slab",
"socket2",
@ -203,24 +203,23 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
"event-listener",
"event-listener 2.5.3",
]
[[package]]
name = "async-process"
version = "1.7.0"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
checksum = "bf012553ce51eb7aa6dc2143804cc8252bd1cb681a1c5cb7fa94ca88682dee1d"
dependencies = [
"async-io",
"async-lock",
"autocfg",
"async-signal",
"blocking",
"cfg-if",
"event-listener",
"event-listener 3.0.0",
"futures-lite",
"rustix 0.37.23",
"signal-hook",
"rustix 0.38.14",
"windows-sys 0.48.0",
]
@ -236,10 +235,29 @@ dependencies = [
]
[[package]]
name = "async-task"
version = "4.4.0"
name = "async-signal"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
checksum = "4af361a844928cb7d36590d406709473a1b574f443094422ef166daa3b493208"
dependencies = [
"async-io",
"async-lock",
"atomic-waker",
"cfg-if",
"concurrent-queue",
"futures-core",
"futures-io",
"libc",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
]
[[package]]
name = "async-task"
version = "4.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9441c6b2fe128a7c2bf680a44c34d0df31ce09e5b7e401fcca3faa483dbc921"
[[package]]
name = "async-trait"
@ -254,9 +272,9 @@ dependencies = [
[[package]]
name = "atomic-waker"
version = "1.1.1"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "autocfg"
@ -356,17 +374,18 @@ dependencies = [
[[package]]
name = "blocking"
version = "1.3.1"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
checksum = "94c4ef1f913d78636d78d538eec1f18de81e481f44b1be0a81060090530846e1"
dependencies = [
"async-channel",
"async-lock",
"async-task",
"atomic-waker",
"fastrand 1.9.0",
"fastrand 2.0.1",
"futures-io",
"futures-lite",
"log",
"piper",
"tracing",
]
[[package]]
@ -415,6 +434,20 @@ dependencies = [
"vec_map",
]
[[package]]
name = "calloop"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aadd183e815348c0649051b1c43418643208f8ed13c8a84da7215b4e1cf42714"
dependencies = [
"bitflags 2.4.0",
"log",
"polling 3.1.0",
"rustix 0.38.14",
"slab",
"thiserror",
]
[[package]]
name = "cc"
version = "1.0.83"
@ -488,9 +521,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.4.4"
version = "4.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1d7b8d5ec32af0fadc644bf1fd509a688c2103b185644bb1e29d164e0703136"
checksum = "824956d0dca8334758a5b7f7e50518d66ea319330cbceedcf76905c2f6ab30e3"
dependencies = [
"clap_builder",
"clap_derive",
@ -498,9 +531,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.4.4"
version = "4.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5179bb514e4d7c2051749d8fcefa2ed6d06a9f4e6d69faf3805f5d80b8cf8d56"
checksum = "122ec64120a49b4563ccaedcbea7818d069ed8e9aa6d829b82d8a4128936b2ab"
dependencies = [
"anstream",
"anstyle",
@ -540,9 +573,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "concurrent-queue"
version = "2.2.0"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
dependencies = [
"crossbeam-utils",
]
@ -710,25 +743,25 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
[[package]]
name = "drm"
version = "0.9.0"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edf9159ef4bcecd0c5e4cbeb573b8d0037493403d542780dba5d840bbf9df56f"
checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.4.0",
"bytemuck",
"drm-ffi",
"drm-fourcc",
"nix 0.26.4",
"nix 0.27.1",
]
[[package]]
name = "drm-ffi"
version = "0.5.0"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1352481b7b90e27a8a1bf8ef6b33cf18b98dba7c410e75c24bb3eef2f0d8d525"
checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
dependencies = [
"drm-sys",
"nix 0.26.4",
"nix 0.27.1",
]
[[package]]
@ -739,12 +772,9 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
[[package]]
name = "drm-sys"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1369f1679d6b706d234c4c1e0613c415c2c74b598a09ad28080ba2474b72e42d"
dependencies = [
"libc",
]
checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
[[package]]
name = "edid-rs"
@ -806,6 +836,17 @@ version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "event-listener"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29e56284f00d94c1bc7fd3c77027b4623c88c1f53d8d2394c6199f2921dea325"
dependencies = [
"concurrent-queue",
"parking",
"pin-project-lite",
]
[[package]]
name = "fastrand"
version = "1.9.0"
@ -817,9 +858,9 @@ dependencies = [
[[package]]
name = "fastrand"
version = "2.0.0"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
[[package]]
name = "fdeflate"
@ -912,9 +953,9 @@ dependencies = [
[[package]]
name = "gbm"
version = "0.12.0"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2ec389cda876966cf824111bf6e533fb934c711d473498279964a990853b3c6"
checksum = "57c97c1672f2d951da311cd20b148794c4157a8879c7650e65f76c7826e2b1c1"
dependencies = [
"bitflags 1.3.2",
"drm",
@ -1041,16 +1082,6 @@ dependencies = [
"png",
]
[[package]]
name = "indexmap"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown 0.12.3",
]
[[package]]
name = "indexmap"
version = "2.0.0"
@ -1069,9 +1100,9 @@ checksum = "e6e74cd82cedcd66db78742a8337bdc48f188c4d2c12742cbc5cd85113f0b059"
dependencies = [
"bitflags 1.3.2",
"input-sys",
"io-lifetimes",
"io-lifetimes 1.0.11",
"libc",
"udev",
"udev 0.7.0",
]
[[package]]
@ -1106,6 +1137,12 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "io-lifetimes"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bffb4def18c48926ccac55c1223e02865ce1a821751a95920448662696e7472c"
[[package]]
name = "is-terminal"
version = "0.4.9"
@ -1389,6 +1426,15 @@ dependencies = [
"autocfg",
]
[[package]]
name = "memoffset"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
dependencies = [
"autocfg",
]
[[package]]
name = "miette"
version = "5.10.0"
@ -1492,8 +1538,10 @@ dependencies = [
"keyframe",
"knuffel",
"libc",
"log",
"logind-zbus",
"miette",
"nix 0.27.1",
"pipewire",
"portable-atomic",
"profiling",
@ -1547,6 +1595,18 @@ dependencies = [
"pin-utils",
]
[[package]]
name = "nix"
version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
"bitflags 2.4.0",
"cfg-if",
"libc",
"memoffset 0.9.0",
]
[[package]]
name = "nom"
version = "7.1.3"
@ -1729,9 +1789,9 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
[[package]]
name = "parking"
version = "2.1.0"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
[[package]]
name = "peeking_take_while"
@ -1757,6 +1817,17 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "piper"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
dependencies = [
"atomic-waker",
"fastrand 2.0.1",
"futures-io",
]
[[package]]
name = "pipewire"
version = "0.7.2"
@ -1820,6 +1891,20 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "polling"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7571075a670bb8e02350c4d1c27d934aabdce416aa91a95d58dc9e21267dad3c"
dependencies = [
"cfg-if",
"concurrent-queue",
"pin-project-lite",
"rustix 0.38.14",
"tracing",
"windows-sys 0.48.0",
]
[[package]]
name = "portable-atomic"
version = "1.4.3"
@ -1897,9 +1982,9 @@ dependencies = [
[[package]]
name = "quick-xml"
version = "0.28.2"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
dependencies = [
"memchr",
]
@ -2042,7 +2127,7 @@ checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
dependencies = [
"bitflags 1.3.2",
"errno",
"io-lifetimes",
"io-lifetimes 1.0.11",
"libc",
"linux-raw-sys 0.3.8",
"windows-sys 0.48.0",
@ -2151,16 +2236,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
[[package]]
name = "signal-hook"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
dependencies = [
"libc",
"signal-hook-registry",
]
[[package]]
name = "signal-hook-registry"
version = "1.4.1"
@ -2209,11 +2284,11 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
[[package]]
name = "smithay"
version = "0.3.0"
source = "git+https://github.com/Smithay/smithay.git#58d5bdca0d65b5f45408201770da0ce86b1fa057"
source = "git+https://github.com/Smithay/smithay.git#604c352305c209fa7b5c3ba69691cdc66949b0ec"
dependencies = [
"appendlist",
"bitflags 2.4.0",
"calloop",
"calloop 0.12.2",
"cc",
"cgmath",
"downcast-rs",
@ -2222,13 +2297,13 @@ dependencies = [
"drm-fourcc",
"gbm",
"gl_generator",
"indexmap 1.9.3",
"indexmap",
"input",
"lazy_static",
"libc",
"libloading 0.8.0",
"libseat",
"nix 0.26.4",
"nix 0.27.1",
"once_cell",
"pkg-config",
"profiling",
@ -2238,14 +2313,14 @@ dependencies = [
"tempfile",
"thiserror",
"tracing",
"udev",
"udev 0.8.0",
"wayland-backend",
"wayland-egl",
"wayland-protocols 0.30.1",
"wayland-protocols 0.31.0",
"wayland-protocols-misc",
"wayland-protocols-wlr",
"wayland-server",
"wayland-sys 0.30.1",
"wayland-sys 0.31.1",
"winit",
"xkbcommon",
]
@ -2257,7 +2332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9"
dependencies = [
"bitflags 1.3.2",
"calloop",
"calloop 0.10.6",
"dlib",
"lazy_static",
"log",
@ -2272,7 +2347,7 @@ dependencies = [
[[package]]
name = "smithay-drm-extras"
version = "0.1.0"
source = "git+https://github.com/Smithay/smithay.git#58d5bdca0d65b5f45408201770da0ce86b1fa057"
source = "git+https://github.com/Smithay/smithay.git#604c352305c209fa7b5c3ba69691cdc66949b0ec"
dependencies = [
"drm",
"edid-rs",
@ -2376,7 +2451,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
dependencies = [
"cfg-if",
"fastrand 2.0.0",
"fastrand 2.0.1",
"redox_syscall 0.3.5",
"rustix 0.38.14",
"windows-sys 0.48.0",
@ -2435,9 +2510,9 @@ dependencies = [
[[package]]
name = "time"
version = "0.3.28"
version = "0.3.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe"
dependencies = [
"deranged",
"itoa",
@ -2450,15 +2525,15 @@ dependencies = [
[[package]]
name = "time-core"
version = "0.1.1"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.14"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
dependencies = [
"time-core",
]
@ -2490,7 +2565,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
"indexmap 2.0.0",
"indexmap",
"serde",
"serde_spanned",
"toml_datetime",
@ -2561,9 +2636,9 @@ dependencies = [
[[package]]
name = "tracy-client"
version = "0.16.2"
version = "0.16.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "546e6c86bca7bd67b86437eade85e98b327de24cdb8429c701a98af755034572"
checksum = "03684af8fb393cc7903210d868e4cb9f5c1e156737be38f52c4217fb21b86bf6"
dependencies = [
"loom",
"once_cell",
@ -2596,6 +2671,18 @@ dependencies = [
"pkg-config",
]
[[package]]
name = "udev"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50051c6e22be28ee6f217d50014f3bc29e81c20dc66ff7ca0d5c5226e1dcc5a1"
dependencies = [
"io-lifetimes 1.0.11",
"libc",
"libudev-sys",
"pkg-config",
]
[[package]]
name = "uds_windows"
version = "1.0.2"
@ -2662,9 +2749,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "waker-fn"
version = "1.1.0"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
[[package]]
name = "wasi"
@ -2728,17 +2815,16 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wayland-backend"
version = "0.1.2"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8"
checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
dependencies = [
"cc",
"downcast-rs",
"io-lifetimes",
"nix 0.26.4",
"scoped-tls",
"smallvec",
"wayland-sys 0.30.1",
"wayland-sys 0.31.1",
]
[[package]]
@ -2782,12 +2868,12 @@ dependencies = [
[[package]]
name = "wayland-egl"
version = "0.30.0"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1187695fe81c3153c3163f9d2953149f638c5d7dbc6fe988914ca3f4961e28ed"
checksum = "355f652e5a24ae02d2ad536c8fc2d3dcc6c2bd635027cd6103a193e7d75eeda2"
dependencies = [
"wayland-backend",
"wayland-sys 0.30.1",
"wayland-sys 0.31.1",
]
[[package]]
@ -2804,39 +2890,39 @@ dependencies = [
[[package]]
name = "wayland-protocols"
version = "0.30.1"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b28101e5ca94f70461a6c2d610f76d85ad223d042dd76585ab23d3422dd9b4d"
checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.4.0",
"wayland-backend",
"wayland-scanner 0.30.1",
"wayland-scanner 0.31.0",
"wayland-server",
]
[[package]]
name = "wayland-protocols-misc"
version = "0.1.0"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "897d4e99645e1ed9245e9e6b5efa78828d2b23b661016d63d55251243d812f8b"
checksum = "bfa5933740b200188c9b4c38601b8212e8c154d7de0d2cb171944e137a77de1e"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.4.0",
"wayland-backend",
"wayland-protocols 0.30.1",
"wayland-scanner 0.30.1",
"wayland-protocols 0.31.0",
"wayland-scanner 0.31.0",
"wayland-server",
]
[[package]]
name = "wayland-protocols-wlr"
version = "0.1.0"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fce991093320e4a6a525876e6b629ab24da25f9baef0c2e0080ad173ec89588a"
checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.4.0",
"wayland-backend",
"wayland-protocols 0.30.1",
"wayland-scanner 0.30.1",
"wayland-protocols 0.31.0",
"wayland-scanner 0.31.0",
"wayland-server",
]
@ -2853,9 +2939,9 @@ dependencies = [
[[package]]
name = "wayland-scanner"
version = "0.30.1"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e"
checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
dependencies = [
"proc-macro2",
"quick-xml",
@ -2864,16 +2950,16 @@ dependencies = [
[[package]]
name = "wayland-server"
version = "0.30.1"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c43c28096fe1d49fff7d1079404fdd0f669cd1a5b00c615bdfe71bb1884d23a"
checksum = "3f3f0c52a445936ca1184c98f1a69cf4ad9c9130788884531ef04428468cb1ce"
dependencies = [
"bitflags 1.3.2",
"bitflags 2.4.0",
"downcast-rs",
"io-lifetimes",
"io-lifetimes 2.0.2",
"nix 0.26.4",
"wayland-backend",
"wayland-scanner 0.30.1",
"wayland-scanner 0.31.0",
]
[[package]]
@ -2889,14 +2975,14 @@ dependencies = [
[[package]]
name = "wayland-sys"
version = "0.30.1"
version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06"
checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
dependencies = [
"dlib",
"libc",
"log",
"memoffset 0.7.1",
"memoffset 0.9.0",
"pkg-config",
]
@ -3148,19 +3234,26 @@ dependencies = [
[[package]]
name = "xkbcommon"
version = "0.5.1"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52db25b599e92bf6e3904134618728eeb7b49a5a4f38f107f92399bb9c496b88"
checksum = "c286371c44b3572d19b09196c129a8fff47d7704d6494daefb44fec10f0278ab"
dependencies = [
"libc",
"memmap2 0.7.1",
"xkeysym",
]
[[package]]
name = "xml-rs"
version = "0.8.18"
name = "xkeysym"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a"
checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
[[package]]
name = "xml-rs"
version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
[[package]]
name = "zbus"
@ -3181,7 +3274,7 @@ dependencies = [
"byteorder",
"derivative",
"enumflags2",
"event-listener",
"event-listener 2.5.3",
"futures-core",
"futures-sink",
"futures-util",

View File

@ -9,7 +9,7 @@ edition = "2021"
[dependencies]
anyhow = { version = "1.0.75" }
bitflags = "2.4.0"
clap = { version = "4.4.4", features = ["derive"] }
clap = { version = "4.4.5", features = ["derive"] }
directories = "5.0.1"
image = { version = "0.24.7", default-features = false, features = ["png"] }
keyframe = { version = "1.1.1", default-features = false }
@ -21,15 +21,17 @@ portable-atomic = { version = "1.4.3", default-features = false, features = ["fl
profiling = "1.0.11"
sd-notify = "0.4.1"
serde = { version = "1.0.188", features = ["derive"] }
time = { version = "0.3.28", features = ["formatting", "local-offset", "macros"] }
time = { version = "0.3.29", features = ["formatting", "local-offset", "macros"] }
tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] }
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
tracy-client = { version = "0.16.2", default-features = false }
tracy-client = { version = "0.16.3", default-features = false }
xcursor = "0.3.4"
zbus = { version = "3.14.1" }
async-io = "1.13.0"
async-channel = "1.9.0"
libc = "0.2.148"
nix = { version = "0.27.1", default-features = false, features = ["time"] }
log = { version = "0.4.20", features = ["max_level_trace", "release_max_level_debug"] }
[dependencies.smithay]
git = "https://github.com/Smithay/smithay.git"

View File

@ -4,7 +4,8 @@ use std::str::FromStr;
use bitflags::bitflags;
use directories::ProjectDirs;
use miette::{miette, Context, IntoDiagnostic};
use smithay::input::keyboard::xkb::{keysym_from_name, KEY_NoSymbol, KEYSYM_CASE_INSENSITIVE};
use smithay::input::keyboard::keysyms::KEY_NoSymbol;
use smithay::input::keyboard::xkb::{keysym_from_name, KEYSYM_CASE_INSENSITIVE};
use smithay::input::keyboard::Keysym;
#[derive(knuffel::Decode, Debug, PartialEq)]
@ -248,7 +249,7 @@ impl FromStr for Key {
}
let keysym = keysym_from_name(key, KEYSYM_CASE_INSENSITIVE);
if keysym == KEY_NoSymbol {
if keysym.raw() == KEY_NoSymbol {
return Err(miette!("invalid key: {key}"));
}
@ -258,8 +259,6 @@ impl FromStr for Key {
#[cfg(test)]
mod tests {
use smithay::input::keyboard::xkb::keysyms::*;
use super::*;
#[track_caller]
@ -336,42 +335,42 @@ mod tests {
binds: Binds(vec![
Bind {
key: Key {
keysym: KEY_t,
keysym: Keysym::t,
modifiers: Modifiers::COMPOSITOR,
},
actions: vec![Action::Spawn(vec!["alacritty".to_owned()])],
},
Bind {
key: Key {
keysym: KEY_q,
keysym: Keysym::q,
modifiers: Modifiers::COMPOSITOR,
},
actions: vec![Action::CloseWindow],
},
Bind {
key: Key {
keysym: KEY_h,
keysym: Keysym::h,
modifiers: Modifiers::COMPOSITOR | Modifiers::SHIFT,
},
actions: vec![Action::FocusMonitorLeft],
},
Bind {
key: Key {
keysym: KEY_l,
keysym: Keysym::l,
modifiers: Modifiers::COMPOSITOR | Modifiers::SHIFT | Modifiers::CTRL,
},
actions: vec![Action::MoveWindowToMonitorRight],
},
Bind {
key: Key {
keysym: KEY_comma,
keysym: Keysym::comma,
modifiers: Modifiers::COMPOSITOR,
},
actions: vec![Action::ConsumeWindowIntoColumn],
},
Bind {
key: Key {
keysym: KEY_1,
keysym: Keysym::_1,
modifiers: Modifiers::COMPOSITOR,
},
actions: vec![Action::FocusWorkspace(1)],

View File

@ -48,9 +48,10 @@ impl CompositorHandler for State {
.niri
.event_loop
.insert_source(source, move |_, _, data| {
let display_handle = data.state.niri.display_handle.clone();
data.state
.client_compositor_state(&client)
.blocker_cleared(&mut data.state, &data.display.handle());
.blocker_cleared(&mut data.state, &display_handle);
Ok(())
});
if res.is_ok() {

View File

@ -43,7 +43,7 @@ fn action(
// Handle hardcoded binds.
#[allow(non_upper_case_globals)] // wat
match keysym.modified_sym() {
match keysym.modified_sym().raw() {
modified @ KEY_XF86Switch_VT_1..=KEY_XF86Switch_VT_12 => {
let vt = (modified - KEY_XF86Switch_VT_1 + 1) as i32;
return Action::ChangeVt(vt);
@ -383,6 +383,8 @@ impl State {
},
);
pointer.frame(self);
// Redraw to update the cursor position.
// FIXME: redraw only outputs overlapping the cursor.
self.niri.queue_redraw_all();
@ -412,6 +414,8 @@ impl State {
},
);
pointer.frame(self);
// Redraw to update the cursor position.
// FIXME: redraw only outputs overlapping the cursor.
self.niri.queue_redraw_all();
@ -479,7 +483,9 @@ impl State {
}
}
self.niri.seat.get_pointer().unwrap().axis(self, frame);
let pointer = &self.niri.seat.get_pointer().unwrap();
pointer.axis(self, frame);
pointer.frame(self);
}
InputEvent::TabletToolAxis { event, .. } => {
// FIXME: allow mapping tablet to different outputs.
@ -506,6 +512,7 @@ impl State {
time: event.time_msec(),
},
);
pointer.frame(self);
let tablet_seat = self.niri.seat.tablet_seat();
let tablet = tablet_seat.get_tablet(&TabletDescriptor::from(&event.device()));
@ -593,6 +600,7 @@ impl State {
time: event.time_msec(),
},
);
pointer.frame(self);
let tablet_seat = self.niri.seat.tablet_seat();
let tool = tablet_seat.add_tool::<Self>(&self.niri.display_handle, &event.tool());

View File

@ -39,7 +39,6 @@ struct Cli {
}
pub struct LoopData {
display: Display<State>,
state: State,
}
@ -68,14 +67,14 @@ fn main() {
let spawn_at_startup = mem::take(&mut config.spawn_at_startup);
let mut event_loop = EventLoop::try_new().unwrap();
let mut display = Display::new().unwrap();
let display = Display::new().unwrap();
let state = State::new(
config,
event_loop.handle(),
event_loop.get_signal(),
&mut display,
display,
);
let mut data = LoopData { display, state };
let mut data = LoopData { state };
// Spawn commands from cli and auto-start.
if let Some((command, args)) = cli.command.split_first() {
@ -99,7 +98,7 @@ fn main() {
{
let _span = tracy_client::span!("flush_clients");
data.display.flush_clients().unwrap();
data.state.niri.display_handle.flush_clients().unwrap();
}
})
.unwrap();

View File

@ -1,7 +1,6 @@
use std::cell::RefCell;
use std::cmp::max;
use std::collections::HashMap;
use std::os::unix::io::AsRawFd;
use std::path::PathBuf;
use std::process::Command;
use std::rc::Rc;
@ -142,7 +141,7 @@ impl State {
config: Config,
event_loop: LoopHandle<'static, LoopData>,
stop_signal: LoopSignal,
display: &mut Display<State>,
display: Display<State>,
) -> Self {
let config = Rc::new(RefCell::new(config));
@ -163,7 +162,8 @@ impl State {
pub fn move_cursor(&mut self, location: Point<f64, Logical>) {
let under = self.niri.surface_under_and_global_space(location);
self.niri.seat.get_pointer().unwrap().motion(
let pointer = &self.niri.seat.get_pointer().unwrap();
pointer.motion(
self,
under,
&MotionEvent {
@ -172,6 +172,7 @@ impl State {
time: get_monotonic_time().as_millis() as u32,
},
);
pointer.frame(self);
// FIXME: granular
self.niri.queue_redraw_all();
}
@ -202,7 +203,7 @@ impl Niri {
config: Rc<RefCell<Config>>,
event_loop: LoopHandle<'static, LoopData>,
stop_signal: LoopSignal,
display: &mut Display<State>,
display: Display<State>,
backend: &Backend,
) -> Self {
let display_handle = display.handle();
@ -533,14 +534,13 @@ impl Niri {
zbus_conn = Some(conn);
}
let display_source = Generic::new(
display.backend().poll_fd().as_raw_fd(),
Interest::READ,
Mode::Level,
);
let display_source = Generic::new(display, Interest::READ, Mode::Level);
event_loop
.insert_source(display_source, |_, _, data| {
data.display.dispatch_clients(&mut data.state).unwrap();
.insert_source(display_source, |_, display, data| {
// SAFETY: we don't drop the display.
unsafe {
display.get_mut().dispatch_clients(&mut data.state).unwrap();
}
Ok(PostAction::Continue)
})
.unwrap();

View File

@ -2,7 +2,7 @@ use std::cell::{Cell, RefCell};
use std::collections::HashMap;
use std::io::Cursor;
use std::mem;
use std::os::fd::AsRawFd;
use std::os::fd::{AsFd, AsRawFd, BorrowedFd};
use std::rc::Rc;
use std::time::Duration;
@ -63,11 +63,17 @@ impl PipeWire {
.register();
mem::forget(listener);
let generic = Generic::new(main_loop.fd().as_raw_fd(), Interest::READ, Mode::Level);
struct AsFdWrapper(MainLoop);
impl AsFd for AsFdWrapper {
fn as_fd(&self) -> BorrowedFd<'_> {
self.0.fd()
}
}
let generic = Generic::new(AsFdWrapper(main_loop), Interest::READ, Mode::Level);
event_loop
.insert_source(generic, move |_, _, _| {
.insert_source(generic, move |_, wrapper, _| {
let _span = tracy_client::span!("pipewire iteration");
main_loop.iterate(Duration::ZERO);
wrapper.0.iterate(Duration::ZERO);
Ok(PostAction::Continue)
})
.unwrap();

View File

@ -8,10 +8,10 @@ use std::time::Duration;
use anyhow::{anyhow, Context};
use directories::UserDirs;
use nix::time::{clock_gettime, ClockId};
use smithay::backend::allocator::Fourcc;
use smithay::backend::renderer::element::texture::TextureBuffer;
use smithay::backend::renderer::gles::{GlesRenderer, GlesTexture};
use smithay::reexports::nix::time::{clock_gettime, ClockId};
use smithay::utils::{Logical, Physical, Point, Rectangle, Transform};
use time::OffsetDateTime;
use xcursor::parser::parse_xcursor;