Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/2KAbhishek/tmux-tea

tmux sessions as easy as tea ☕🪟
https://github.com/2KAbhishek/tmux-tea

manager plugin session tmux utility

Last synced: about 1 month ago
JSON representation

tmux sessions as easy as tea ☕🪟

Awesome Lists containing this project

README

        

tmux-tea


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`

```bash
set -g @plugin '2kabhishek/tmux-tea'
```

```bash
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

- ` - t`, this can be configured with the `@tea-bind` option e.g: `set -g @tea-bind "t"`
- 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.

#### default command

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

```tmux
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 `` binding outside tmux as well using this sni[[ed]]

```bash
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:

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

## Behind The Code

### 🌈 Inspiration

tmux-tea was inspired by [t-smart-tmux-session-manager](https://github.com/joshmedeski/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](https://github.com/2kabhishek/dots2k) — Dev Environment
- [nvim2k](https://github.com/2kabhishek/nvim2k) — Personalized Editor
- [sway2k](https://github.com/2kabhishek/sway2k) — Desktop Environment
- [qute2k](https://github.com/2kabhishek/qute2k) — Personalized Browser

### 🔍 More Info

- [tmux-tilit](https://github.com/2kabhishek/tmux-tilit) — Turns tmux into a terminal window manager
- [tmux2k](https://github.com/2kabhishek/tmux2k) — Makes your tmux statusbar pretty!


⭐ hit the star button if you found this useful ⭐

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