A fairly basic system menu shell utilizing TK
Find a file
2021-08-25 01:33:20 -04:00
README.md added the condition property for buttons 2021-08-25 01:33:20 -04:00
sysmenu.py added the condition property for buttons 2021-08-25 01:33:20 -04:00

sysmenu

A configurable context menu maker. Uses ini configuration, formatted like Polybar. Similar to Polybar's bar/ sections defining bars (e.g., [bar/top] defines a new bar, top, opened with polybar top), sysmenu has menu: sections that are made up of components (e.g., [menu:system] is sysmenu system).

Configuration

Global

The global section can be used to define general styling. this includes:

background: hex color foreground: hex color highlight: hex color, color on hover padding_x: integer padding_y: integer

Menus

Menu sections must start with menu:. They can have any of the properties that global outlines, and have a few extra properties:

x: integer, the X coordinate to draw the top-left corner at y: integer, the Y coordinate to draw the top-left corner at items: space separated strings, the components to put in the menu.

Components

All components have the following properties:

text: string, the text displayed on the component

eval: bool, whether or not the text string should be evaluated in the shell and its output displayed. font: font name, the font to use for component text

Button

Buttons are defined in a section that starts with button:, and perform an action when clicked. They're also highlighted on hover. They have the following extra properties:

command: the shell command to run on click condition: an evaluated expression that returns "true" if the button should be enabled.

Label

Labels just render text. They are defined by a section that starts with label:.

Fonts

Fonts are defined in font: sections that MUST have the following properties:

family: string, the font family size: integer, the font weight

To use a font, use the section name in the font field of a widget (e.g., [font:x] is used via font = x).