Adds a new Menu module which allows users to create XDG or custom menus that open after clicking on a button.
Resolves#534
Co-authored-by: Jake Stanger <mail@jstanger.dev>
This completely reworks the sysinfo module to add support for aggregate functions, better support for working with individual devices, the ability to specify units, and some string formatting support.
Several new tokens have also been added, and performance should be marginally improved.
BREAKING CHANGE: Use of the `sys_info` module in your config will need to be updated to use the new token format. See the wiki page for more info.
This PR includes the necessary code changes, CI changes and documentation to generate and deploy a full JSON schema for each release and the master branch, which can be used within config files for autocomplete and type checking.
BREAKING CHANGE: To allow for the `name` property, any widgets that were previously targeted by name should be targeted by class instead. This affects **all modules and all popups**, as well as several widgets inside modules. **This will break a lot of rules in your stylesheet**. To attempt to mitigate the damage, a migration script can be found [here](https://raw.githubusercontent.com/JakeStanger/ironbar/master/scripts/migrate-styles.sh) that should get you most of the way.
Resolves#75.
* feat: more positioning options
Can now display the bar on the left/right, and avoid anchoring to edges to centre the bar.
BREAKING CHANGE: The `left` and `right` config options have been renamed to `start` and `end`