README.md

March 31, 2026 ยท View on GitHub

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.

Features

  • 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

Prerequisites

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

  • You have installed the latest version of tmux (>= 3.0) and tpm.

Installing tmux-tilit

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

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

Using tmux-tilit

Keybindings

Alt is the default tilit-mod key, these bindings will change if you are changing it or using tilit-prefix.

KeybindingAction
Alt + `Last active window
Alt + ,Rename current window
Alt + /Horizontal Split
Alt + \Vertical Split
Alt + [ / ]Focus prev/next window
Alt + - / =Increase/Decrease width
Alt + EnterCreate a new pane
Alt + 0-9Switch to window 0-9
Alt + Shift + 0-9Move pane to window 0-9
Alt + Arrow KeysResize pane in direction
Alt + h/j/k/lFocus pane in direction
Alt + H/J/K/LMove pane in direction
Alt + aCommand mode
Alt + AOpencode CLI
Alt + bToggle status bar
Alt + cEdit config
Alt + CCustomize mode
Alt + dRun launcher, dexe
Alt + DDetach
Alt + eLayout: Even Vertical
Alt + ELayout: Even Horizontal
Alt + fText grab extrakto
Alt + FFuzzy edit files
Alt + gOpen lazygit
Alt + iSynchronize pane inputs
Alt + IOpen tilit README
Alt + mLayout: Main Vertical
Alt + MLayout: Main Horizontal
Alt + nPending todos tdo
Alt + NSearch notes tdo
Alt + oOpen floating terminal
Alt + pLast active pane
Alt + qClose session
Alt + rReload config
Alt + RRotate window
Alt + sShow all panes
Alt + tSession manager tea
Alt + TLayout: Tiled
Alt + wMove pane to new window
Alt + xClose pane
Alt + XClose window
Alt + yCopy mode
Alt + zLayout: Zoom
Shift + Left/RightFocus prev/next window

Prefix Bindings

tmux-tilit sets up keybindings that work with the tmux prefix key:

KeybindingAction
H/J/K/LResize pane in direction
rReload config

Default prefix key is Ctrl + b

Copy Mode Bindings

Enable copy mode by pressing Alt + y:

This mode supports vi navigation keys by default

KeybindingAction
yCopy
Ctrl + vToggle block/rectangle mode
vStart selection
VLine selection

Customizing tmux-tilit

config for custom tmux config location

By default, tmux-tilit uses $HOME/.tmux.conf for config-related operations (reload, edit).

If your config is in a different location, you can set:

set -g @tilit-config "$HOME/.config/tmux/tmux.conf"

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:

KeybindingDescription
Alt + โ†/โ†“/โ†‘/โ†’Focus pane in direction
Alt + Shift + โ†/โ†“/โ†‘/โ†’Move pane in direction
Alt + h/j/k/lResize 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

mod for customizing the modifier key

By default, tmux-tilit uses M- (Alt/Meta) as the modifier for direct keybindings.

You can change it to another tmux modifier prefix:

# Default
set -g @tilit-mod 'M-'

# Example: Ctrl-based bindings
set -g @tilit-mod 'C-'

@tilit-mod is used only in non-prefix mode.

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.

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 for tmux-tilit:

set -g @tilit-prefix 'C-space' # or any other key combo
set -g repeat-time 1000

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

Note: This prefix is different from the tmux default prefix. If you do not use C-a as your tmux prefix - I highly recommend using that as the tilit-prefix and set the tmux-prefix back to C-b

shiftnum for working with international keyboards

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

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

How I built this

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.

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 โ€” Dev Environment
  • nvim2k โ€” Personalized Editor
  • sway2k โ€” Desktop Environment
  • qute2k โ€” Personalized Browser

๐Ÿ” More Info

  • tmux-tea โ€” Simple and powerful tmux session manager
  • tmux2k โ€” Makes your tmux statusbar pretty!

Source | Website