Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/2kabhishek/tmux-tilit

Better tiling for tmux 🪟🪓
https://github.com/2kabhishek/tmux-tilit

cli linux plugin tiling tmux utility wm

Last synced: about 1 month ago
JSON representation

Better tiling for tmux 🪟🪓

Awesome Lists containing this project

README

        

tmux-tilit


License


People


Stars


Forks


Watches


Last Updated

Better tiling for tmux 🪟🪓

tmux-tilit Demo


tmux-tilit screenshot

## What is this

tmux-tilit brings tiling window manager features and intuitive keybindings to your tmux workflows, boosting your productivity like never before.

## Prerequisites

Before you begin, ensure you have met the following requirements:

- You have installed the latest version of `tmux (>= 3.0)` and [`tpm`](https://github.com/tmux-plugins/tpm).

## Installing tmux-tilit

To get tmux-tilit, add the following to your `tmux.conf`:

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

## Using tmux-tilit

### Keybindings

All the configured keybindings can be found in the [keybinding manual here](./docs/keybindings.md).

### Customizing tmux-tilit

#### `easymode` for arrow key navigation

To navigate using arrow keys, you can enable easy mode with: `set -g @tilit-easymode 'on'`

The revised keybindings for the pane focus and movement then become:

| Keybinding | Description |
| ------------------------------------------------------------------- | ------------------------ |
| Alt + ←/↓/↑/→ | Focus pane in direction |
| Alt + Shift + ←/↓/↑/→ | Move pane in direction |
| Alt + h/j/k/l | Resize pane in direction |

#### `layout` for customizing default layout

You can set the default layout with `set -g @tilit-default 'layout'`, this will be used when creating new windows or panes.

Available layouts are:

- `main-vertical`
- `main-horizontal`
- `tiled`
- `even-vertical`
- `even-horizontal`

#### `navigator` for integrating with vim/neovim

To setup navigation with neovim install [Navigator.nvim][4] and for vim use [vim-tmux-navigator][5]

Then, in your `~/.tmux.conf` add:

```bash
set -g @tilit-navigator 'on'
```

This will let you seamlessly navigate between vim/neovim splits and tmux panes with Ctrl + hjkl.

[4]: https://github.com/numToStr/Navigator.nvim
[5]: https://github.com/christoomey/vim-tmux-navigator

#### `prefix` for integrating with window managers

If your window manager uses Alt as default modifier, it's recommended to switch to Super or Meta for a smoother experience.

If you do not want to do that you can enable prefix mode and faster repeat-time in tmux:

```bash
set -g @tilit-prefix 'M-space'
set -g repeat-time 1000
```

This will let you hit Alt + Space and then a key to perform an action, repeat time lets you run more actions with a single prefix.

#### `shiftnum` for working with international keyboards

You can set the `@tilit-shiftnum` option to match your keyboard layout:

```bash
# US Keyboard
set -g @tilit-shiftnum '!@#$%^&*()'
# UK Keyboard
set -g @tilit-shiftnum '!"£$%^&*()'
```

## How I built this

Major credits to [tmux-tilish](https://github.com/jabirali/tmux-tilish) for the inspiration
I wanted to add some new commands and integrations, make the keybindings match better with tmux defaults.

## Challenges faced

Making sure the keybindings work across different command line programs and environments was challenging.

## What I learned

- Learned more about the tmux api.

## What's next

You tell me!

Hit the ⭐ button if you found this useful.

### 🧰 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-tea](https://github.com/2kabhishek/tmux-tea) — Simple and powerful tmux session manager
- [tmux2k](https://github.com/2kabhishek/tmux2k) — Makes your tmux statusbar pretty!

Source | Website