What's new in tab v0.4.0
I just released tab v0.4.0 the next major version of tab-rs, a modern terminal multiplexer.
This release contains breaking changes between the tab command client and the daemon. If you've been running tab v0.3.X, tab will launch a new daemon process.
Enhancements
XDG Data Specification
Tab now honors the XDG Directory spec. The tab runtime directory is now:
- Linux:
$XDG_DATA_HOME/tab
or$HOME/.local/share/tab
- MacOS:
$HOME/Library/Application Support/tab
After you've updated to v0.4.0, you can run tab --install all
to move completion scripts, and rm -r ~/.tab
to clean up the old directory.
tab -w foo bar baz
tab -w
now supports variadic arguments! Close those tabs!
Tab will also tell you whether a tab was closed, or whether it was not running
$ tab -w foo bar baz
Closing tab: foo
Closing tab: bar
Tab not running: baz
Workspace Tabs
Tab supports configurable workspaces and repositories, defined in tab.yml
configuration files.
Each workspace now has a tab, which defaults to the workspace directory name. You can also override the name with the tab
property:
tab: workspace
workspace:
- repo: my-repo/
You can use this to quickly reset your working directory:
my-repo/ $ tab workspace/
$
Workspace Links
Tab workspaces can now reference other workspaces with relative or absolute paths. This allows quick navigation between two adjacent workspaces.
~/my-workspace/tab.yml
workspace:
- workspace: ../other-workspace
And in the shell
workspace/ $ tab other-workspace/
other-workspace/ $
Nested Workspaces
Tab now supports nested workspaces! This can be used to write a ~/tab.yml
with links to all your workspaces.
Configurable Shell & Environment Variables
Tab now supports configurable shell and environment variables, in both workspace & repository configurations.
In workspace configurations, the shell and environment variables apply to the workspace tab and any inline tabs. The config can be overriden for inline tabs.
tab: workspace
shell: bash
env:
VAR: value
workspace:
- tab: workspace-tab
shell: fish
The repository tab and subtabs can be configured similarly:
repo: my-project
shell: bash
env:
VAR: value
tabs:
- tab: run
env: VAR: other-value
shell: zsh