Planned as an update to the original Randy, but due to migration on the GTK-4 i had to rewrite everything.
Conky inspired system info viewer written in Rust / GTK4
- Migrate origin functionality:
- yaml config reading
- css loading and customization
- benches for speed testing
- timings feature
- Configurable modules [#configurable-modules]
- UI settings [#ui-settings]
- GPU sensors support
- lm-sensors support
- toml config reading
- using
gio::Settings
instead ofconfig::Config
Использовать Cell
для общего контекста в приложении, что бы добавить мутабельности в Settings
.
Использовать стандартные конфиг и подгружать дефолтные значения из css, а не в коде.
- xpos: 0 # deprecated
- ypos: 0 # deprecated
- Module list:
- system - system info
- cpus - all cpus usage stats bar
- cpu_consumers - top N pids using cpu and their usage
- mem_consumers - top N pids using mem and their usage
- filesystem - usage of a given mounted filesystem
- net - usage recv/trans for a given network interface
- battery - charging/discharging percentage of /sys/*/power_supply's
- Can order the modules how you wish
- Can enable/disable modules and sub items
- bar_height - the height of the bars (default: 10px)
- base_opacity - the base opacity of the Randy window. affects
window
and all sub-widgets. (default: 1.0) - color_bar - base color of the usage bars
- color_bar_med - color of the usage bars > 50% < 80%
- color_bar_high - color of the usage bars > 80%
- colorborders - color of the GTK _borders (frame borders, bar borders) defaults to same as color_text
- color_label - color of the "labels"
- color_text - color of all other text
- decoration - hide/show window decorations
- font_family - the CSS-style font family string (font names with spaces must be wrapped in escaped quotes, eg
fo_family: "\"Terminus (TTF)\", \"Liberation Mono\", monospace"
) - font_size
- mod_bat -modulo used to skip frames for getting battery data (default: 2)
- mod_fs - modulo used to skip frames for getting filesystem data (default: 2)
- mod_top - modulo used to skip frames for getting top data (default: 2)
- resizable - bool to make the GUI resizable
- skip_taskbar - in case you want to see a Randy item in the taskbar
- timeout - time in seconds to wait between frame updates
- xpos - starting position x
- ypos - starting position y
gtk4 not support move function (btw wayland)
- Origin / github.com
- GTK4 Demo App - simple css widget / github.com
- Rust Gtk4 css styleing / github.com
- Example gtk-rs (gtk4) custom widget / github.com
- About create custom widgets, Subclassing GTK widgets in Rust / www.figuiere.net
- Object subclass with imp (gtk-rs) / github.com