Skip to content

status.zones

status.zones(
    spec,
) -> {kind: "flat"} | {
    kind: "zones",
    left: {
              [integer]: {
                             text: string,
                             fg: number | string?,
                             bg: number | string?,
                             bold: boolean?,
                             italic: boolean?,
                             underline: boolean?,
                             dim: boolean?,
                             reverse: boolean?,
                             strikethrough: boolean?,
                         },
          }?,
    center: {
                [integer]: {
                               text: string,
                               fg: number | string?,
                               bg: number | string?,
                               bold: boolean?,
                               italic: boolean?,
                               underline: boolean?,
                               dim: boolean?,
                               reverse: boolean?,
                               strikethrough: boolean?,
                           },
            }?,
    right: {
               [integer]: {
                              text: string,
                              fg: number | string?,
                              bg: number | string?,
                              bold: boolean?,
                              italic: boolean?,
                              underline: boolean?,
                              dim: boolean?,
                              reverse: boolean?,
                              strikethrough: boolean?,
                          },
           }?,
}

Build a zoned status line with independently aligned left, center, and right groups.

Accepts { left = {<span>...}, center = {<span>...}, right = {<span>...} }. Each group is a list of spans from status.span (fills do not stretch in zones). Returns a line.

local status = require('status')
return { status.zones {
  left = { status.span { text = 'wallah' } },
  right = { status.span { text = 'main' } },
} }

Parameters

  • spec: {left: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?, center: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?, right: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?}
    • left — Spans anchored to the left edge.
    • center — Spans anchored at the middle of the full width, cropped to the gap.
    • right — Spans anchored to the right edge.

Returns

  • {kind: "flat"} | {kind: "zones", left: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?, center: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?, right: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?}
    • kind
    • left — Spans anchored to the left edge.
    • center — Spans anchored at the middle of the full width, cropped to the gap.
    • right — Spans anchored to the right edge.