iphands / randy

System info viewer written in Rust / GTK3. Inspired by Conky.
GNU General Public License v3.0
109 stars 9 forks source link
battery conky cpu filesystem gtk gtk-rs gtk3 mem opacity randy rust rust-lang screenshot

Randy

Conky inspired system info viewer written in Rust / GTK3

Cheezeburgerz!

Conky was named after the puppet... so this thing is Randy

A man’s gotta eat, Julian.

Goals

Learn a ton

I'm new to Rust (you can tell in the code!), having fun and learning a lot.

I'd like to come up with a more standard "module" interface once I've developed more of the modules and refactor based on what I have learned.

Feature parity with my old Conky config

Done! My old Conky setup looked more or less like the Randy screenshot.

Took 200+ commits to get there, but its there and working!

Frick Ricky, stay off the CPU

Strive to do things in as little cycles as possible. Not do things as fast as possible (hence to parallel scans of /proc/*).

ps -eo etimes,times,command | grep randy

Speed tests

Linux only

At the moment Randy only really runs on Linux. Running on other operating systems is not a goal.

Note: someone shared a screenshot of Randy running on Windows with WSfL though :D.

Features

Configurable modules

UI settings

Building

Optional deps / features

Example:

cargo run --features sensors,nvidia

Required build packages

I have only barely looked into packaging but jhjaggars put some helpful hints for Raspbian and Fedora in here:

Example

cargo run --release --no-default-features  # build with lm-sensors and nvml disabled

Running

Randy needs to be pointed at a config Yaml. It will look for the default.yml in $PWD/config. Should work ootb if you launch from the root of the Git repo.

If you are launching Randy from elsewhere... point it at the config Yaml file of your choosing. Example:

randy /tmp/configs/my_cool_config.yml

Screenshots

screenshot screenshot_green

FAQ