Home

Awesome

WezTerm Status

This project provides a configurable status bar for WezTerm, a GPU-accelerated terminal emulator. It includes various features like battery status, current mode, hostname, current working directory, and date/time, all displayed in a customizable status bar.

Features

Installation

local wezterm = require 'wezterm'
local config = wezterm.config_builder()

wezterm.plugin
  .require('https://github.com/yriveiro/wezterm-status')
  .apply_to_config(config)

Setup

Customize the plugin with the apply_to_config method's second argument:

wezterm.plugin
  .require('https://github.com/yriveiro/wezterm-status')
  .apply_to_config(config, {
    cells = {
      battery = { enabled = false },
      date = { format = '%H:%M' }
    }
  })

Available configurations

UI Section

Controls visual elements and separators.

Separators

ui.separators = {
  -- Powerline-style arrows
  arrow_solid_left = '\u{e0b0}',
  arrow_solid_right = '\u{e0b2}',
  arrow_thin_left = '\u{e0b1}',
  arrow_thin_right = '\u{e0b3}',
}

Cells Section

Mode Indicator

cells.mode = {
  -- Enable mode display
  enabled = true,
  -- Map modes to icons
  modes = {
    normal = ' ' .. wezterm.nerdfonts.cod_home,
    copy_mode = ' ' .. wezterm.nerdfonts.cod_copy,
    search_mode = ' ' .. wezterm.nerdfonts.cod_search,
  }
}

Battery Indicator

cells.battery = {
  -- Enable battery status
  enabled = true
}

Shows dynamic icons based on charge level:

Hostname Display

cells.hostname = {
  -- Enable hostname
  enabled = true
}

Current Working Directory

cells.cwd = {
  -- Enable CWD display
  enabled = true,
  -- Replace $HOME with ~
  tilde_prefix = true,
  -- Path aliases for shortening
  path_aliases = {
    -- Replace long development path with an icon
    { pattern = "/home/user/development", replacement = "πŸ› οΈ" },
    -- Use git icon for repositories
    { pattern = "/home/user/repos", replacement = "" },
    -- Docker projects
    { pattern = "/home/user/docker", replacement = "🐳" },
    -- Kubernetes configuration
    { pattern = "/home/user/.kube", replacement = "☸️" }
  }
}

The status bar supports path aliases to create more compact and readable directory paths. This feature is particularly useful for frequently accessed directories or deep nested paths.

With this configuration path will be aliased to

/home/user/development/project β†’ πŸ› οΈ/project
/home/user/repos/my-app β†’ /my-app
/home/user/docker/compose β†’ 🐳/compose

This feature helps maintain a clean status bar while preserving path context through meaningful icons or abbreviations.

Wezterm Workspace

cells.workspace = {
  -- Enable Wezterm Workspace
  enabled = true,
  -- Clock icon
  icon = wezterm.nerdfonts.md_television_guide,
}

### Date/Time Display

```lua
cells.date = {
  -- Enable timestamp
  enabled = true,
  -- Clock icon
  icon = wezterm.nerdfonts.md_clock_time_three_outline,
  -- Time format (strftime)
  format = '%H:%M:%S'
}

Cell Formatting

Available text attributes:

Contributing

Open issues or submit pull requests with improvements.

License

MIT License