diff --git a/docs/changelog.md b/docs/changelog.md index 4ac1c75e5..adc0146cd 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -47,6 +47,7 @@ brief notes about them may accumulate here. * X11: improved DPI detection for high-DPI displays. [#515](https://github.com/wez/wezterm/issues/515) * X11: we now load the XCursor themes when possible, which means that the mouse cursor is now generally a bit larger and clearer as well as conforming more with the prevailing style of the desktop environment. [#524](https://github.com/wez/wezterm/issues/524) * New: [window:set_right_status](config/lua/window/set_right_status.md) allows setting additional status information in the tab bar. [#500](https://github.com/wez/wezterm/issues/500) +* New: [tab_bar_style](config/lua/config/tab_bar_style.md) allows customizing the appearance of the rest of tha tab bar. * Changed the default [font_size](config/lua/config/font_size.md) to 12 points. [#517](https://github.com/wez/wezterm/discussions/517) * Window: fixed "Open WezTerm Here" context menu in explorer when used on the root of a drive (eg: `C:\`). Thanks to [@flyxyz123](https://github.com/flyxyz123)! [#526](https://github.com/wez/wezterm/issues/526) [#451](https://github.com/wez/wezterm/issues/451) * New: animated gif and png images displayed via the `wezterm imgcat` (the iTerm2 image protocol), or attached to the window background via [window_background_image](config/appearance.html#window-background-image) will now animate while the window has focus. diff --git a/docs/config/lua/config/tab_bar_style.md b/docs/config/lua/config/tab_bar_style.md new file mode 100644 index 000000000..d982ce049 --- /dev/null +++ b/docs/config/lua/config/tab_bar_style.md @@ -0,0 +1,63 @@ +# `tab_bar_style` + +*Since: nightly builds only* + +This config option allows styling the elements that appear in the tab bar. +This configuration supplements the [tab bar color](../../../config/appearance.html#tab-bar-appearance--colors) +options. + +Styling in this context refers to how the edges of the tabs and the new tab button are rendered. +The default is simply a space character but you can use any sequence of formatted text produced +by the [wezterm.format](../wezterm/format.md) function. + +The defaults for each of these styles is simply a space. For each element, the foreground +and background colors are set as per the tab bar colors you've configured. + +The available elements are: + +* `active_tab_left`, `active_tab_right` - the left and right sides of the active tab +* `inactive_tab_left`, `inactive_tab_right` - the left and right sides of inactive tabs +* `inactive_tab_hover_left`, `inactive_tab_hover_right` - the left and right sides of inactive tabs in the hover state +* `new_tab_left`, `new_tab_right` - the left and right sides of the new tab `+` button +* `new_tab_hover_left`, `new_tab_hover_right` - the left and right sides of the new tab `+` button in the hover state. + +This example changes the tab edges to the PowerLine arrow symbols: + +Demonstrating setting the styling of the left and right tab edges + +```lua +local wezterm = require 'wezterm'; + +-- The filled in variant of the < symbol +local SOLID_LEFT_ARROW = utf8.char(0xe0b2) + +-- The filled in variant of the > symbol +local SOLID_RIGHT_ARROW = utf8.char(0xe0b0) + +return { + tab_bar_style = { + active_tab_left = wezterm.format({ + {Background={Color="#0b0022"}}, + {Foreground={Color="#2b2042"}}, + {Text=SOLID_LEFT_ARROW}, + }), + active_tab_right = wezterm.format({ + {Background={Color="#0b0022"}}, + {Foreground={Color="#2b2042"}}, + {Text=SOLID_RIGHT_ARROW}, + }), + inactive_tab_left = wezterm.format({ + {Background={Color="#0b0022"}}, + {Foreground={Color="#1b1032"}}, + {Text=SOLID_LEFT_ARROW}, + }), + inactive_tab_right = wezterm.format({ + {Background={Color="#0b0022"}}, + {Foreground={Color="#1b1032"}}, + {Text=SOLID_RIGHT_ARROW}, + }), + } +} +``` + diff --git a/docs/screenshots/wezterm-tab-edge-styled.png b/docs/screenshots/wezterm-tab-edge-styled.png new file mode 100644 index 0000000000000000000000000000000000000000..cb58729fe7a0d3d8b440e62a8eb01bb22123cbbd GIT binary patch literal 8468 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 literal 0 HcmV?d00001