diff --git a/Cargo.lock b/Cargo.lock index 0be2174..44731ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1036,8 +1036,18 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -1054,17 +1064,42 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.71", +] + [[package]] name = "darling_macro" version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "darling_core", + "darling_core 0.14.4", "quote", "syn 1.0.109", ] +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core 0.20.10", + "quote", + "syn 2.0.71", +] + [[package]] name = "deranged" version = "0.3.11" @@ -1074,6 +1109,37 @@ dependencies = [ "powerfmt", ] +[[package]] +name = "derive_builder" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d" +dependencies = [ + "darling 0.20.10", + "proc-macro2", + "quote", + "syn 2.0.71", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" +dependencies = [ + "derive_builder_core", + "syn 2.0.71", +] + [[package]] name = "dircpy" version = "0.3.16" @@ -1368,7 +1434,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55a5e644a80e6d96b2b4910fa7993301d7b7926c045b475b62202b20a36ce69e" dependencies = [ - "darling", + "darling 0.14.4", "proc-macro2", "quote", "syn 1.0.109", @@ -1519,6 +1585,18 @@ dependencies = [ "wasi", ] +[[package]] +name = "getset" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "gimli" version = "0.29.0" @@ -1604,7 +1682,7 @@ dependencies = [ "presser", "thiserror", "winapi", - "windows", + "windows 0.52.0", ] [[package]] @@ -1909,7 +1987,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -3223,7 +3301,7 @@ dependencies = [ "smithay-drm-extras", "snowcap", "snowcap-api", - "sysinfo", + "sysinfo 0.31.2", "temp-env", "tempfile", "test-log", @@ -3236,11 +3314,11 @@ dependencies = [ "tracing", "tracing-appender", "tracing-subscriber", - "vergen", + "vergen-gitcl", "x11rb", "xcursor", "xdg", - "xkbcommon", + "xkbcommon 0.8.0", ] [[package]] @@ -3262,7 +3340,7 @@ dependencies = [ "tower", "tracing", "tracing-subscriber", - "xkbcommon", + "xkbcommon 0.8.0", ] [[package]] @@ -3361,6 +3439,30 @@ dependencies = [ "toml_edit 0.21.1", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -3936,7 +4038,7 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "smithay" version = "0.3.0" -source = "git+https://github.com/Smithay/smithay?rev=5854e03#5854e0382a86c9fcae236928b93200b76df30928" +source = "git+https://github.com/Smithay/smithay?rev=e7f0857#e7f08570bceab6107863267ae168d0afb018e8f5" dependencies = [ "appendlist", "bitflags 2.6.0", @@ -3981,7 +4083,7 @@ dependencies = [ "wayland-sys", "winit 0.30.3", "x11rb", - "xkbcommon", + "xkbcommon 0.8.0", ] [[package]] @@ -4033,7 +4135,7 @@ dependencies = [ "wayland-protocols 0.32.2", "wayland-protocols-wlr 0.3.2", "wayland-scanner", - "xkbcommon", + "xkbcommon 0.7.0", "xkeysym", ] @@ -4051,7 +4153,7 @@ dependencies = [ [[package]] name = "smithay-drm-extras" version = "0.1.0" -source = "git+https://github.com/Smithay/smithay?rev=5854e03#5854e0382a86c9fcae236928b93200b76df30928" +source = "git+https://github.com/Smithay/smithay?rev=e7f0857#e7f08570bceab6107863267ae168d0afb018e8f5" dependencies = [ "drm", "edid-rs", @@ -4088,7 +4190,7 @@ dependencies = [ "tracing", "tracing-subscriber", "xdg", - "xkbcommon", + "xkbcommon 0.7.0", ] [[package]] @@ -4105,7 +4207,7 @@ dependencies = [ "tower", "tracing", "xdg", - "xkbcommon", + "xkbcommon 0.7.0", ] [[package]] @@ -4265,8 +4367,21 @@ dependencies = [ "libc", "ntapi", "once_cell", + "windows 0.52.0", +] + +[[package]] +name = "sysinfo" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4115055da5f572fff541dd0c4e61b0262977f453cc9fe04be83aba25a89bdab" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", "rayon", - "windows", + "windows 0.57.0", ] [[package]] @@ -4881,18 +4996,45 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "vergen" -version = "8.3.2" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +checksum = "c32e7318e93a9ac53693b6caccfb05ff22e04a44c7cf8a279051f24c09da286f" dependencies = [ "anyhow", "cargo_metadata", - "cfg-if", + "derive_builder", + "getset", "regex", "rustc_version", "rustversion", - "sysinfo", + "sysinfo 0.30.13", + "vergen-lib", +] + +[[package]] +name = "vergen-gitcl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bbdc9746577cb4767f218d320ee0b623d415e8130332f8f562b910b61cc2c4e" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e06bee42361e43b60f363bad49d63798d0f42fb1768091812270eca00c784720" +dependencies = [ + "anyhow", + "derive_builder", + "getset", + "rustversion", ] [[package]] @@ -5376,7 +5518,17 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core", + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", "windows-targets 0.52.6", ] @@ -5389,6 +5541,49 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.71", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.71", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -5793,6 +5988,17 @@ dependencies = [ "xkeysym", ] +[[package]] +name = "xkbcommon" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d66ca9352cbd4eecbbc40871d8a11b4ac8107cfc528a6e14d7c19c69d0e1ac9" +dependencies = [ + "libc", + "memmap2 0.9.4", + "xkeysym", +] + [[package]] name = "xkbcommon-dl" version = "0.4.2" diff --git a/Cargo.toml b/Cargo.toml index b289aa7..a21c177 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,10 @@ members = [ "wlcs_pinnacle", "api/lua/build" ] -exclude = ["snowcap", "lcat"] +exclude = [ + "snowcap", # Submodule + "lcat", # The docs building repo is currently cloned into this repo in CI +] [workspace.package] authors = ["Ottatop "] @@ -28,7 +31,7 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter", "registry"] # API definitions pinnacle-api-defs = { path = "./pinnacle-api-defs" } # Misc. -xkbcommon = "0.7.0" +xkbcommon = "0.8.0" xdg = "2.5.2" bitflags = "2.5.0" clap = { version = "4.5.7", features = ["derive"] } @@ -38,7 +41,7 @@ indexmap = "2.2.6" [workspace.dependencies.smithay] git = "https://github.com/Smithay/smithay" -rev = "5854e03" +rev = "e7f0857" # path = "../../git/smithay" default-features = false features = [ @@ -69,6 +72,7 @@ too_many_arguments = "allow" new_without_default = "allow" type_complexity = "allow" let_and_return = "allow" +dbg_macro = "warn" ########################################################################yo😎########### @@ -86,7 +90,7 @@ keywords = ["wayland", "compositor", "smithay", "lua"] [dependencies] # Smithay smithay = { workspace = true } -smithay-drm-extras = { git = "https://github.com/Smithay/smithay", rev = "5854e03" } +smithay-drm-extras = { git = "https://github.com/Smithay/smithay", rev = "e7f0857" } # Tracing tracing = { workspace = true } tracing-subscriber = { workspace = true } @@ -115,7 +119,7 @@ shellexpand = { version = "3.1.0", features = ["path"] } x11rb = { version = "0.13.1", default-features = false, features = ["composite"] } xkbcommon = { workspace = true } xdg = { workspace = true } -sysinfo = "0.30.12" +sysinfo = "0.31.2" pinnacle-api-defs = { workspace = true } dircpy = { workspace = true } chrono = "0.4.38" @@ -130,7 +134,7 @@ snowcap-api = { path = "./snowcap/api/rust", optional = true } assert_matches = "1.5.0" [build-dependencies] -vergen = { version = "8.3.1", features = ["git", "gitcl", "rustc", "cargo", "si"] } +vergen-gitcl = { version = "1.0.0", features = ["rustc", "cargo", "si"] } [dev-dependencies] temp-env = "0.3.6" diff --git a/build.rs b/build.rs index 6b65eb5..97b37ee 100644 --- a/build.rs +++ b/build.rs @@ -1,13 +1,30 @@ +use vergen_gitcl::{CargoBuilder, Emitter, GitclBuilder, RustcBuilder, SysinfoBuilder}; + fn main() { - vergen::EmitBuilder::builder() - .cargo_debug() - .cargo_target_triple() - .git_sha(true) - .git_branch() - .git_commit_message() - .git_dirty(false) - .rustc_semver() - .sysinfo_os_version() + let cargo = CargoBuilder::default() + .debug(true) + .target_triple(true) + .build() + .unwrap(); + let git = GitclBuilder::default() + .sha(true) + .branch(true) + .commit_message(true) + .dirty(false) + .build() + .unwrap(); + let rustc = RustcBuilder::default().semver(true).build().unwrap(); + let sysinfo = SysinfoBuilder::default().os_version(true).build().unwrap(); + + Emitter::default() + .add_instructions(&cargo) + .unwrap() + .add_instructions(&git) + .unwrap() + .add_instructions(&rustc) + .unwrap() + .add_instructions(&sysinfo) + .unwrap() .emit() .unwrap(); } diff --git a/src/api.rs b/src/api.rs index 3c32e74..8405e9b 100644 --- a/src/api.rs +++ b/src/api.rs @@ -43,7 +43,7 @@ use smithay::{ output::Scale, reexports::{calloop, input as libinput}, }; -use sysinfo::ProcessRefreshKind; +use sysinfo::{ProcessRefreshKind, ProcessesToUpdate}; use tokio::{ io::AsyncBufReadExt, sync::mpsc::{unbounded_channel, UnboundedSender}, @@ -655,13 +655,13 @@ impl process_service_server::ProcessService for ProcessService { state .pinnacle .system_processes - .refresh_processes_specifics(ProcessRefreshKind::new()); + .refresh_processes_specifics(ProcessesToUpdate::All, ProcessRefreshKind::new()); let compositor_pid = std::process::id(); let already_running = state .pinnacle .system_processes - .processes_by_exact_name(&arg0) + .processes_by_exact_name(arg0.as_ref()) .any(|proc| { proc.parent() .is_some_and(|parent_pid| parent_pid.as_u32() == compositor_pid) diff --git a/src/config.rs b/src/config.rs index 7b80d5a..4dfcfc2 100644 --- a/src/config.rs +++ b/src/config.rs @@ -34,7 +34,7 @@ use smithay::{ reexports::calloop::{self, channel::Event, LoopHandle, RegistrationToken}, utils::{Logical, Point}, }; -use sysinfo::ProcessRefreshKind; +use sysinfo::{ProcessRefreshKind, ProcessesToUpdate}; use tokio::{ io::{AsyncBufReadExt, BufReader}, task::JoinHandle, @@ -580,7 +580,7 @@ impl Pinnacle { pub fn start_grpc_server(&mut self, socket_dir: &Path) -> anyhow::Result<()> { self.system_processes - .refresh_processes_specifics(ProcessRefreshKind::new()); + .refresh_processes_specifics(ProcessesToUpdate::All, ProcessRefreshKind::new()); std::fs::create_dir_all(socket_dir)?;