Module: awful.widget.layoutlist
Display the available client layouts for a screen.
This is what the layoutlist looks like by default with a vertical layout:
awful.popup { widget = awful.widget.layoutlist { screen = 1, base_layout = wibox.layout.flex.vertical }, maximum_height = #awful.layout.layouts * 24, minimum_height = #awful.layout.layouts * 24, placement = awful.placement.centered, }
In the second example, it is shown how to create a popup in the center of the screen:
local ll = awful.widget.layoutlist { base_layout = wibox.widget { spacing = 5, forced_num_cols = 5, layout = wibox.layout.grid.vertical, }, widget_template = { { { id = 'icon_role', forced_height = 22, forced_width = 22, widget = wibox.widget.imagebox, }, margins = 4, widget = wibox.container.margin, }, id = 'background_role', forced_width = 24, forced_height = 24, shape = gears.shape.rounded_rect, widget = wibox.container.background, }, } local layout_popup = awful.popup { widget = wibox.widget { ll, margins = 4, widget = wibox.container.margin, }, border_color = beautiful.border_color, border_width = beautiful.border_width, placement = awful.placement.centered, ontop = true, visible = false, shape = gears.shape.rounded_rect } -- Make sure you remove the defaultMod4+Space
andMod4+Shift+Space
-- keybindings before adding this. awful.keygrabber { start_callback = function() layout_popup.visible = true end, stop_callback = function() layout_popup.visible = false end, export_keybindings = true, release_event = 'release', stop_key = {'Escape', 'Super_L', 'Super_R'}, keybindings = { {{ modkey } , ' ' , function() awful.layout.set(gears.table.cycle_value(ll.layouts, ll.current_layout, 1)) end}, {{ modkey, 'Shift' } , ' ' , function() awful.layout.set(gears.table.cycle_value(ll.layouts, ll.current_layout, -1), nil) end}, } }
This example extends ‘awful.widget.layoutbox’ to show a layout list popup:
-- Normally you would use your existing bars, but for this example, we add one local lb = awful.widget.layoutbox(screen[1]) local l = wibox.layout.align.horizontal(nil, lb, nil) l.expand = 'outside' awful.wibar { widget = l } local p = awful.popup { widget = wibox.widget { awful.widget.layoutlist { source = awful.widget.layoutlist.source.default_layouts, screen = 1, base_layout = wibox.widget { spacing = 5, forced_num_cols = 3, layout = wibox.layout.grid.vertical, }, widget_template = { { { id = 'icon_role', forced_height = 22, forced_width = 22, widget = wibox.widget.imagebox, }, margins = 4, widget = wibox.container.margin, }, id = 'background_role', forced_width = 24, forced_height = 24, shape = gears.shape.rounded_rect, widget = wibox.container.background, }, }, margins = 4, widget = wibox.container.margin, }, preferred_anchors = 'middle', border_color = beautiful.border_color, border_width = beautiful.border_width, shape = gears.shape.infobubble, } p:bind_to_widget(lb)
This example shows how to add a layout subset to the default wibar:
wb:setup { layout = wibox.layout.align.horizontal, { -- Left widgets mytaglist, awful.widget.layoutlist { screen = 1, style = { disable_name = true, spacing = 3, }, source = function() return { awful.layout.suit.floating, awful.layout.suit.tile, awful.layout.suit.tile.left, awful.layout.suit.tile.bottom, awful.layout.suit.tile.top, } end }, layout = wibox.layout.fixed.horizontal, }, mytasklist, -- Middle widget { -- Right widgets layout = wibox.layout.fixed.horizontal, mykeyboardlayout, mytextclock, mylayoutbox, }, }
Info:
- Copyright: 2010, 2018 Emmanuel Lepage Vallee
- Author: Emmanuel Lepage Vallee <[email protected]>
Constructors
awful.widget.layoutlist {[args]} | Create a layout list. |
Object properties
base_layout | widget | The layoutlist default widget layout. | |
widget_template | table | The delegate widget template. | |
screen | screen | The layoutlist screen. | |
source | function | A function that returns the list of layout to display. | |
filter | function | The layoutlist filter function. | |
buttons | table | The layoutlist buttons. | |
layouts | table | The currenly displayed layouts. | |
current_layout | layout | The currently selected layout. | |
children | table | Get or set the children elements. | Inherited from wibox.widget |
all_children | table | Get all direct and indirect children widgets. | Inherited from wibox.widget |
forced_height | number or nil | Force a widget height. | Inherited from wibox.widget |
forced_width | number or nil | Force a widget width. | Inherited from wibox.widget |
opacity | number | The widget opacity (transparency). | Inherited from wibox.widget |
visible | boolean | The widget visibility. | Inherited from wibox.widget |
buttons | table | The widget buttons. | Inherited from wibox.widget |
Object methods
:setup {[args]} | Set a declarative widget hierarchy description. | Inherited from wibox.widget |
:add_button (button) | Add a new awful.button to this widget. | Inherited from wibox.widget |
:emit_signal_recursive (signal_name, ...) | Emit a signal and ensure all parent widgets in the hierarchies also forward the signal. | Inherited from wibox.widget |
:emit_signal (name, ...) | Emit a signal. | Inherited from gears.object |
:connect_signal (name, func) | Connect to a signal. | Inherited from gears.object |
:weak_connect_signal (name, func) | Connect to a signal weakly. | Inherited from gears.object |
Signals
widget::layout_changed | When the layout (size) change. | Inherited from wibox.widget |
widget::redraw_needed | When the widget content changed. | Inherited from wibox.widget |
button::press | When a mouse button is pressed over the widget. | Inherited from wibox.widget |
button::release | When a mouse button is released over the widget. | Inherited from wibox.widget |
mouse::enter | When the mouse enter a widget. | Inherited from wibox.widget |
mouse::leave | When the mouse leave a widget. | Inherited from wibox.widget |
Theme variables
beautiful.layoutlist_fg_normal | string or pattern | The default foreground (text) color. | |
beautiful.layoutlist_bg_normal | string or pattern | The default background color. | |
beautiful.layoutlist_fg_selected | string or pattern | The selected layout foreground (text) color. | |
beautiful.layoutlist_bg_selected | string or pattern | The selected layout background color. | |
beautiful.layoutlist_disable_icon | boolean | Disable the layout icons (only show the name label). | |
beautiful.layoutlist_disable_name | boolean | Disable the layout name label (only show the icon). | |
beautiful.layoutlist_font | string | The layoutlist font. | |
beautiful.layoutlist_align | string | The selected layout alignment. | |
beautiful.layoutlist_font_selected | string | The selected layout title font. | |
beautiful.layoutlist_spacing | number | The space between the layouts. | |
beautiful.layoutlist_shape | gears.shape | The default layoutlist elements shape. | |
beautiful.layoutlist_shape_border_width | number | The default layoutlist elements border width. | |
beautiful.layoutlist_shape_border_color | string or color | The default layoutlist elements border color. | |
beautiful.layoutlist_shape_selected | gears.shape | The selected layout shape. | |
beautiful.layoutlist_shape_border_width_selected | number | The selected layout border width. | |
beautiful.layoutlist_shape_border_color_selected | string or color | The selected layout border color. |
List source functions
awful.widget.layoutlist.source.for_screen | The layout list for the first selected tag of a screen. | |
awful.widget.layoutlist.source.current_screen | The layouts available for the first selected tag of awful.screen.focused() . |
|
awful.widget.layoutlist.source.default_layouts | The default layout list. |
Constructors
- awful.widget.layoutlist {[args]}
-
Create a layout list.
Parameters:
- args
- layout widget The widget layout (not to be confused with client layout).
- buttons
table
The list of
awful.buttons
. (default nil) - source function A function to generate the list of layouts. (default awful.widget.layoutlist.source.for_screen)
- widget_template table A custom widget to be used for each action. (optional)
- screen screen A screen (default ascreen.focused())
- buttons
table
The list of
awful.buttons
. (default nil) - style table Extra look and feel parameters (default {})
- style.disable_icon boolean
- style.disable_name boolean
- style.fg_normal string or pattern
- style.bg_normal string or pattern
- style.fg_selected string or pattern
- style.bg_selected string or pattern
- style.font string
- style.font_selected string
- style.align string left, right or center
- style.spacing number
- style.shape gears.shape
- style.shape_border_width number
- style.shape_border_color string or pattern
- style.shape_selected gears.shape
- style.shape_border_width_selected string or pattern
- style.shape_border_color_selected string or pattern
Returns:
-
widget
The action widget.
- args
Object properties
- base_layout widget · 1 signal
-
The layoutlist default widget layout.
If no layout is specified, a wibox.layout.fixed.vertical will be created
automatically.
See also:
Click to display more Emit signals:
property::base_layout
When the base_layout value changes.self
awful.widget.layoutlist The object which changed (useful when connecting many object to the same callback).new_value
widget
The new value affected to the property.
- widget_template table · 1 signal
-
The delegate widget template.
Click to display more Emit signals:
property::widget_template
When the widget_template value changes.self
awful.widget.layoutlist The object which changed (useful when connecting many object to the same callback).new_value
table The new value affected to the property.
- screen screen
- The layoutlist screen.
- source function
- A function that returns the list of layout to display.
- filter function
- The layoutlist filter function.
- buttons table
-
The layoutlist buttons.
The default is:
gears.table.join( awful.button({ }, 1, awful.layout.set) )
- layouts table
- The currenly displayed layouts.
- current_layout layout
- The currently selected layout.
- children table · Inherited from wibox.widget
-
Get or set the children elements.
Type constraints:
- children table The children.
- all_children table · Inherited from wibox.widget
-
Get all direct and indirect children widgets.
This will scan all containers recursively to find widgets
Warning: This method it prone to stack overflow id the widget, or any of its
children, contain (directly or indirectly) itself.
Type constraints:
- children table The children.
- forced_height number or nil · Inherited from wibox.widget
-
Force a widget height.
Type constraints:
- height
number or nil
The height (
nil
for automatic)
- height
number or nil
The height (
- forced_width number or nil · Inherited from wibox.widget
-
Force a widget width.
Type constraints:
- width
number or nil
The width (
nil
for automatic)
- width
number or nil
The width (
- opacity number · Inherited from wibox.widget
-
The widget opacity (transparency).
Type constraints:
- opacity number The opacity (between 0 and 1) (default 1)
- visible boolean · Inherited from wibox.widget
- The widget visibility.
- buttons table · Inherited from wibox.widget
-
The widget buttons.
The table contains a list of awful.button objects.
See also:
Object methods
- :setup {[args]} · Inherited from wibox.widget
-
Set a declarative widget hierarchy description.
See The declarative layout system
Parameters:
- args An array containing the widgets disposition
- :add_button (button) · Inherited from wibox.widget
-
Add a new awful.button to this widget.
Parameters:
- button awful.button The button to add.
- :emit_signal_recursive (signal_name, ...) · Inherited from wibox.widget
-
Emit a signal and ensure all parent widgets in the hierarchies also
forward the signal. This is useful to track signals when there is a dynamic
set of containers and layouts wrapping the widget.
Parameters:
- signal_name string
- ... Other arguments
- :emit_signal (name, ...) · Inherited from gears.object
-
Emit a signal.
Parameters:
- name string The name of the signal.
- ... Extra arguments for the callback functions. Each connected function receives the object as first argument and then any extra arguments that are given to emit_signal().
- :connect_signal (name, func) · Inherited from gears.object
-
Connect to a signal.
Parameters:
- name string The name of the signal.
- func function The callback to call when the signal is emitted.
- :weak_connect_signal (name, func) · Inherited from gears.object
-
Connect to a signal weakly.
This allows the callback function to be garbage collected and automatically disconnects the signal when that happens.
Warning: Only use this function if you really, really, really know what you are doing.
Parameters:
- name string The name of the signal.
- func function The callback to call when the signal is emitted.
Signals
- widget::layout_changed · Inherited from wibox.widget
-
When the layout (size) change.
This signal is emitted when the previous results of
:layout()
and:fit()
are no longer valid. Unless this signal is emitted,:layout()
and:fit()
must return the same result when called with the same arguments.See also:
- widget::redraw_needed · Inherited from wibox.widget
-
When the widget content changed.
This signal is emitted when the content of the widget changes. The widget will
be redrawn, it is not re-layouted. Put differently, it is assumed that
:layout()
and:fit()
would still return the same results as before.See also:
- button::press · Inherited from wibox.widget
-
When a mouse button is pressed over the widget.
Arguments:
- self table The current object instance itself.
- lx number The horizontal position relative to the (0,0) position in the widget.
- ly number The vertical position relative to the (0,0) position in the widget.
- button number The button number.
- mods table The modifiers (mod4, mod1 (alt), Control, Shift)
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
- button::release · Inherited from wibox.widget
-
When a mouse button is released over the widget.
Arguments:
- self table The current object instance itself.
- lx number The horizontal position relative to the (0,0) position in the widget.
- ly number The vertical position relative to the (0,0) position in the widget.
- button number The button number.
- mods table The modifiers (mod4, mod1 (alt), Control, Shift)
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
- mouse::enter · Inherited from wibox.widget
-
When the mouse enter a widget.
Arguments:
- self table The current object instance itself.
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
- mouse::leave · Inherited from wibox.widget
-
When the mouse leave a widget.
Arguments:
- self table The current object instance itself.
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
Theme variables
- beautiful.layoutlist_fg_normal string or pattern
-
The default foreground (text) color.
See also:
- beautiful.layoutlist_bg_normal string or pattern
-
The default background color.
See also:
- beautiful.layoutlist_fg_selected string or pattern
-
The selected layout foreground (text) color.
See also:
- beautiful.layoutlist_bg_selected string or pattern
-
The selected layout background color.
See also:
- beautiful.layoutlist_disable_icon boolean
- Disable the layout icons (only show the name label).
- beautiful.layoutlist_disable_name boolean
- Disable the layout name label (only show the icon).
- beautiful.layoutlist_font string
- The layoutlist font.
- beautiful.layoutlist_align string
-
The selected layout alignment.
Type constraints:
- align string left, right or center (default left)
- beautiful.layoutlist_font_selected string
- The selected layout title font.
- beautiful.layoutlist_spacing number
-
The space between the layouts.
Type constraints:
- spacing number The spacing between tasks. (default 0)
- beautiful.layoutlist_shape gears.shape
- The default layoutlist elements shape.
- beautiful.layoutlist_shape_border_width number
- The default layoutlist elements border width.
- beautiful.layoutlist_shape_border_color string or color
-
The default layoutlist elements border color.
See also:
- beautiful.layoutlist_shape_selected gears.shape
- The selected layout shape.
- beautiful.layoutlist_shape_border_width_selected number
- The selected layout border width.
- beautiful.layoutlist_shape_border_color_selected string or color
-
The selected layout border color.
See also:
List source functions
- awful.widget.layoutlist.source.for_screen
-
The layout list for the first selected tag of a screen.
- s screen The screen.
- awful.widget.layoutlist.source.current_screen
-
The layouts available for the first selected tag of
awful.screen.focused()
. - awful.widget.layoutlist.source.default_layouts
-
The default layout list.
See also: