Bar
The bar at the top of the screen when having display_app_bar enabled can display a lot of useful information.
It is possible to change the following settings
| Key | Value | Description |
|---|---|---|
| font | String | The font of the bar |
| font_size | Number | The font size of the bar |
| color | Number | The color of the bar |
| components | Table | The component layout of the bar |
nog.config.bar.font_size = 20
Components
Components are the building blocks of the bar. The components table has the following properties:
leftcontains a list of components which are aligned to the left side of the barcentercontains a list of components which are aligned to the center of the barrightcontains a list of components which are aligned to the right side of the bar
nog.config.bar.components = {
left = {},
center = { nog.components.workspaces() },
right = {}
}
The above snippet changes the layout so that the left side and right side are empty and the center part gets replaced by the workspaces overview.
Builtin
All of the builtin components can be found under nog.components.
- datetime
- workspaces
- current_window
- padding
- fullscreen_indicator
- split_direction
- active_mode
Custom
A bar component is a table which has to have a name and render field.
The name can be any string of your chosing and is only used for debugging purposes.
render is the important part. It has to be a function which returns a list of components texts.
A component text is a table with a required text field and optional fg, bg and value fields
which take a number and change the colors of the component.
The function also receives the current display id as argument
so you can know which display the component is currently being rendered on.
It is common practice to define a component as a function to make it easy to add customization options later on.
local hello = function(name)
return {
name = "my_component",
render = function()
return {{ text = "Hello " .. name .. "!" }}
end
}
end
nog.config.bar.components = {
left = {},
center = { hello("User") },
right = {}
}
A component can also have an on_click function. If a component has a valid on_click field,
the cursor changes to a pointer when hovered over the rendered component. This function receives three arguments.
The display_id where the component is rendered on, the value and index of the component text which was clicked.
-- The `counter` component tracks the amout of the times the component has been clicked globally.
local counter_value = 0
local counter = function(increment)
return {
name = "counter",
render = function()
return {{ text = counter_value }}
end,
on_click = function()
counter_value = counter_value + increment
end
}
end
nog.config.bar.components = {
left = {},
center = { counter(1) },
right = {}
}