/tmux-tea

tmux sessions as easy as tea ☕🪟

Primary LanguageShellGNU General Public License v3.0GPL-3.0

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/t # Add t to $PATH

💻 Usage

There are two ways to open tea

  • <prefix> - t, this can be configured with the @tea-bind option
  • Ctrl+t alternate 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.yml file 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.

zsh integration

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

bindkey -s '^T' ' t^M ^M'

Behind The Code

🌈 Inspiration

tmux-tea was inspired by t-smart-tmux-session-manager and 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

  • dots2k — Dev Environment
  • nvim2k — Personalized Editor
  • sway2k — Desktop Environment
  • qute2k — Personalized Browser

🔍 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