Skip to content

2KAbhishek/tmux-tea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

46 Commits

Repository files navigation

License People Stars Forks Watches Last Updated

tmux sessions as easy as tea ☕🪟

tmux-tea in action
tmux-tea in action

tmux-tea is a tmux session manager aimed at simplifying and speeding up how you interact with tmux sessions. It's a one key solution to all your tmux session needs.

✨ Features

  • Integrations with tmuxinator for session specific configs
  • Integrations with fzf for fuzzy search
  • Supports session previews
  • Integrations with zoxide for directory based session creation

Setup

⚡ Requirements

  • tmux, fzf, zoxide (required)
  • tmuxinator (for session layouts)
  • eza (for directory previews)

🚀 Installation

Add the following to your~/.tmux.conf

set-g @plugin'2kabhishek/tmux-tea'
cd~/.tmux/plugins/tmux-tea#replace ~/.tmux/plugins with your plugin installation path
ln -sfnv$PWD/bin/tea.sh~/.local/bin/tea#Add tea to $PATH, make sure ~/.local/bin is in your $PATH

💻 Usage

There are two ways to open tea

  • <prefix> - t,this can be configured with the@tea-bindoption e.g:set -g @tea-bind "t"
  • Ctrl+talternate binding for a smoother experience.

Keybindings

  • Ctrl+f- Directory mode
  • Ctrl+j- Zoxide mode
  • Ctrl+s- Session mode
  • Ctrl+w- Window mode
  • Ctrl+x- Kill mode
  • Ctrl+t- Toggle tea

tmuxinator integration

If you have a.tmuxinator.ymlfile in your directory, tea will use it for setting up your session.

If you have a tmuxinator config file in~/.config/tmuxinator/that has the same name as your tmux session directory then that will be used.

If none of these are present a tmux session is created from scratch.

default command

If there is no tmuxinator config present, you can set a default command to run in the session using:

set-g @tea-default-command"$EDITOR"

This will open every new session after the initial one with your "$EDITOR" command running.

zsh integration

If you use zsh you can add the<C-t>binding outside tmux as well using this sni[[ed]]

bindkey -s'^T''tea^M ^M'

full session names

You can set the session name to be the full path you select instead of the directory using:

set-g @tea-session-name"full-path"

Behind The Code

🌈 Inspiration

tmux-tea was inspired byt-smart-tmux-session-managerand shares a lot of code.

I wanted to add some more features that diverged from the original repo and wanted to keep the configs simpler.

💡 Challenges/Learnings

  • Figuring out the preview script was quite tricky.
  • Bash shenanigans!

🧰 Tooling

🔍 More Info

  • tmux-tilit— Turns tmux into a terminal window manager
  • tmux2k— Makes your tmux statusbar pretty!

⭐ hit the star button if you found this useful ⭐

Source |Blog |Twitter |LinkedIn |More Links |Other Projects

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages