tmux-tilit brings tiling window manager features and intuitive keybindings to your tmux workflows, boosting your productivity like never before.
- Intuitive Tiling Management: Split and arrange panes, layouts, workspaces with intuitive keybindings similar to tiling window managers
- Vim/Neovim Integration: Seamless navigation between vim/neovim splits and tmux panes with Navigator support
- External Tools: Integration with utilities like lazygit, extrakto for text grabbing and tdo for notes management
- Session Management: Integration with tea for session management
- Prefix Mode: Optional prefix mode for compatibility with window managers that use Alt as default modifier
- International Keyboard Support: Configurable shift+number mappings for different keyboard layouts
Before you begin, ensure you have met the following requirements:
- You have installed the latest version of
tmux (>= 3.0)
andtpm
.
To get tmux-tilit, add the following to your tmux.conf
:
set -g @plugin '2kabhishek/tmux-tilit'
Keybinding | Action |
---|---|
Alt + ` | Last active window |
Alt + , | Rename current window |
Alt + / | Horizontal Split |
Alt + </kbd> | Vertical Split |
Alt + [ or ] | Focus prev/next window |
Alt + - / = | Increase / Decrease width |
Alt + β/β/β/β | Resize pane in direction |
Alt + 0-9 | Switch to window 0-9 |
Alt + Enter | Create a new pane |
Alt + Shift + 0-9 | Move pane to window 0-9 |
Alt + Shift + C | Customize mode |
Alt + Shift + D | Detach |
Alt + Shift + E | Layout: Even Horizontal |
Alt + Shift + H/J/K/L | Move pane in direction |
Alt + Shift + I | Open tilit keybindings |
Alt + Shift + M | Layout: Main Horizontal |
Alt + Shift + R | Rotate window |
Alt + Shift + T | Layout: Tiled |
Alt + Shift + X | Close window |
Alt + a | Command mode |
Alt + b | Toggle status bar |
Alt + c | Edit config |
Alt + d | Run launcher, dexe |
Alt + e | Layout: Even Vertical |
Alt + f | Text grab, extrakto |
Alt + g | Open lazygit |
Alt + h/j/k/l | Focus pane in direction |
Alt + i | Synchronize pane inputs |
Alt + m | Layout: Main Vertical |
Alt + n | Show daily todos tdo |
Alt + N | Search all notes tdo |
Alt + o | Open floating terminal |
Alt + p | Last active pane |
Alt + q | Close session |
Alt + r | Reload config |
Alt + s | Switch between all panse |
Alt + t | Session manager tea |
Alt + T | Show all pending tdo |
Alt + w | Move pane to new window |
Alt + x | Close pane |
Alt + y | Copy mode |
Alt + z | Layout: Zoom |
Shift + β/β | Focus prev/next window |
tmux-tilit sets up keybindings that work with the tmux prefix
key:
Keybinding | Action |
---|---|
H/J/K/L | Resize pane in direction |
r | Reload config |
Default
prefix
key is Ctrl + b, I recommend Ctrl + a
You can remap the prefix
key by adding this to your tmux.conf
:
# Change prefix
set -g prefix C-a
bind C-a send-prefix
Enable copy mode by pressing Alt + y:
This mode supports vi navigation keys by default
Keybinding | Action |
---|---|
y | Copy |
Ctrl + v | Toggle block/rectangle mode |
v | Start selection |
V | Line selection |
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 |
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
To setup navigation with neovim install Navigator.nvim and for vim use vim-tmux-navigator
Then, in your ~/.tmux.conf
add:
set -g @tilit-navigator 'on'
This will let you seamlessly navigate between vim/neovim splits and tmux panes with Ctrl + hjkl.
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:
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.
You can set the @tilit-shiftnum
option to match your keyboard layout:
# US Keyboard
set -g @tilit-shiftnum '!@#$%^&*()'
# UK Keyboard
set -g @tilit-shiftnum '!"Β£$%^&*()'
Major credits to tmux-tilish for the inspiration I wanted to add some new commands and integrations, make the keybindings match better with tmux defaults.
Making sure the keybindings work across different command line programs and environments was challenging.
- Learned more about the tmux api.
You tell me!
Hit the β button if you found this useful.