pumo-system-info
A Rust-based utility for gathering and presenting system information in JSON format.
Overview
pumo-system-info
is designed to retrieve detailed information about
connected Bluetooth devices and present it in a structured JSON
format. This utility can be integrated with other tools or scripts for
system monitoring and management. In particular, this tool is meant to
be used with my eww configuration.
Prerequisites
- DBus
- BlueZ (for retrieving Bluetooth-related information)
- UPower (for retrieving power information)
- Rust (specified in
rustup-toolchain.toml
) - Nix package manager with flakes (optional, for building and managing dependencies)
Installation
-
Clone the repository
git clone https://labs.phundrak.com/phundrak/pumo-system-info.git cd pumo-system-info
-
Build the project
-
With Nix
nix build ./result/bin/pumo-system-info
-
Without Nix
cargo build --release ./target/release/pumo-system-info
-
Performance
Since this is a utility for bringing information to eww, this project needs to run fast. Fortunately, it does! Here are some benchmarks I ran on the computers I can run it on. The results are obtained through hyperfine.
cargo build --release
hyperfine --warmup 3 -N ./target/release/pumo-system-info
CPU | Mean | Min | Max |
---|---|---|---|
Intel(R) Core(TM) i5-2540M | 6.5ms ± 1.9ms | 4.7ms | 15.2ms |
AMD Ryzen 7 5700G | 3.1ms ± 0.2ms | 2.7ms | 4.4ms |
AMD Ryzen 7 9800X3D | 1.1ms ± 0.1ms | 1.0ms | 1.5ms |
Contributing
Contributions are welcome! Please fork the repository and submit a pull request with your changes. Ensure that your commits follow the recommendations of Conventional Commits.
License
This project is licensed under the GPL-3 license. See the LICENSE file for more details.