2016-12-13 12:05:40 -05:00
|
|
|
# Basic Organization
|
2016-12-09 13:49:49 -05:00
|
|
|
|
|
|
|
Each widget has:
|
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
## Class
|
|
|
|
|
|
|
|
Class: Type of widget.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
|
|
|
Example: textbox, scrollbar, separator
|
|
|
|
|
|
|
|
Class are prefixed with a `@`
|
|
|
|
|
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
List of classes in **rofi**:
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
* @textbox
|
|
|
|
* @scrollbar
|
|
|
|
* @window
|
|
|
|
* @separator
|
|
|
|
* @listview
|
|
|
|
* @box
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
## Name
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Name: Internal name of the widget.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Sub-widgets are {Parent}.{Child}.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Example: listview, listview.element, listview.scrollbar
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Names are prefixed with a `#`
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
List of names in **rofi**:
|
|
|
|
|
|
|
|
* #window
|
|
|
|
* #mainbox
|
|
|
|
* #mainbox.box: The main vertical @box
|
|
|
|
* #inputbar
|
|
|
|
* #inputbar.box: The horizontal @box packing the widgets.
|
|
|
|
* #inputbar.separator: The separator under/above the inputbar.
|
|
|
|
* #inputbar.case-indicator: The case/sort indicator @textbox
|
|
|
|
* #inputbar.prompt: The prompt @textbox
|
|
|
|
* #inputbar.entry: The main entry @textbox
|
|
|
|
* #listview
|
|
|
|
* #listview.scrollbar: The listview scrollbar
|
|
|
|
* #listview.element: The entries in the listview
|
|
|
|
* #sidebar
|
|
|
|
* #sidebar.box: The main horizontal @box packing the buttons.
|
|
|
|
* #sidebar.button: The buttons @textbox for each mode.
|
|
|
|
* #sidebar.separator: The separator under/above the sidebar.
|
|
|
|
* #message
|
|
|
|
* #message.textbox: The message textbox.
|
|
|
|
* #message.separator: The separator under/above the sidebar.
|
|
|
|
|
|
|
|
## State
|
|
|
|
|
|
|
|
State: State of widget
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Optional flag(s) indicating state.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
These are appended after the name or class of the widget.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
`@textbox selected.normal`
|
|
|
|
`#listview.element selected.urgent`
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Currently only the @entrybox has states:
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
`{visible modifier}.{state}`
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Where `visible modifier` can be:
|
|
|
|
* normal: No modification.
|
|
|
|
* selected: The entry is selected/highlighted by user.
|
|
|
|
* alternate: The entry is at an alternating row. (uneven row)
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Where `state` is:
|
|
|
|
* normal: No modification.
|
|
|
|
* urgent: This entry is marked urgent.
|
|
|
|
* activE: This entry is marked active.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
These can be mixed.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Example:
|
|
|
|
`
|
|
|
|
@textbox selected.active {
|
|
|
|
background: #003642;
|
|
|
|
foreground: #008ed4;
|
|
|
|
}
|
|
|
|
`
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
Sets all selected textboxes marked active to the given foreground and background color.
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
# File structure
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
The file is structured as follow
|
|
|
|
`
|
|
|
|
/* Global properties, that apply as default to all widgets. */
|
|
|
|
{list of properties}
|
2016-12-09 13:49:49 -05:00
|
|
|
|
2016-12-13 12:05:40 -05:00
|
|
|
@{class} {optional state} {
|
|
|
|
{list of properties}
|
|
|
|
}
|
|
|
|
@{name}.{name} {optional state} {
|
|
|
|
{list of properties}
|
2016-12-09 13:49:49 -05:00
|
|
|
}
|
2016-12-13 12:05:40 -05:00
|
|
|
`
|
|
|
|
|
|
|
|
The global properties has to be at the top of the file, the rest can freeĺy be mixed.
|