This is a plugin for waybar that displays system information as vertical bars. Inspired by xfce-systemload plugin
This plugin can display following information:
- cpu load, including average load, most loaded core and all cores
- used memory and swap
- network activity
- temperature - max of chosen sensors or all
With reasonable settings
With unreasonable settings
For now only manual installation
cargo build --release
cp target/release/libwaybar_sysinfo.so ~/.local/lib/
This is the default config
#sysinfo .sysinfo-bar {
padding-left: 5px;
padding-top: 5px;
padding-bottom: 5px;
}
/* progress bar */
#sysinfo trough {
min-height: 3px;
min-width: 7px;
border: none;
}
/* colored part of progress bar */
#sysinfo progress {
border: none;
min-width: 7px;
}
#sysinfo .cpu progress {
background-color: #d20f39;
}
#sysinfo .mem progress {
background-color: #40a02b;
}
#sysinfo .net progress {
background-color: #1e66f5;
}
#sysinfo .temp progress {
background-color: #df8e1d;
}Other useful information and examples for styling:
/**
* The whole module is selectable with `#sysinfo`
*/
#sysinfo {
background-color: green;
}
/**
* The separate widgets are selectable with `.sysinfo-module`
*/
#sysinfo .sysinfo-module + .sysinfo-module {
margin-left: 10px;
}
/**
* The separate widgets also have a class for their type
*/
#sysinfo .sysinfo-module.cpu progress {
background-color: blue;
}
/**
* The separate widgets also have a class for their custom label
*/
#sysinfo .sysinfo-module.my-label progress { ... }
/**
* Bars are given classes `gte-10`...`gte-90` for how full they are,
* allowing colors or other styling to change accordingly
*/
#sysinfo .sysinfo-bar.gte-70 progress { background-color: yellow; }
#sysinfo .sysinfo-bar.gte-80 progress { background-color: orange; }
#sysinfo .sysinfo-bar.gte-90 progress { background-color: red; }
/**
* Bars might be rounded by default; radius can be adjusted,
* separately for `trough` and `progress`
*/
#sysinfo trough, #sysinfo progress {
border-radius: 0px; /* for no rounding */
border-radius: 2px; /* for a fixed radius */
border-radius: 1000px; /* or some other high number for as close to circular as possible */
/* Or you can control the different corners separately */
border-top-radius: 1000px 1000px 0px 0px; /* for curved tops and flat bottoms */
}
