-
-
Save CSaratakij/1e84ecc2fc052c3b10eb5fcdf371319d to your computer and use it in GitHub Desktop.
# Config that is very close to a i3 window manager's keybinding. | |
set -s escape-time 0 | |
setw -g aggressive-resize on | |
# First remove *all* keybindings | |
unbind-key -a | |
# List keys | |
bind-key ? list-keys | |
# Copy mode | |
bind-key [ copy-mode | |
# Paste buffer | |
bind-key ] paste-buffer | |
# Refresh client | |
bind-key r refresh-client \; display-message "Refresh already" | |
# Start with index 1 | |
set -g base-index 1 | |
setw -g pane-base-index 1 | |
# Set new prefix | |
# Note : you can press super key by set M. | |
# (tested with tty only) | |
set -g prefix M-Space | |
bind-key Space send-prefix | |
# Clock | |
setw -g clock-mode-style 24 | |
# Config Reloads | |
bind R source-file ~/.tmux.conf \; display-message "Config reloaded" | |
# Mouse on/off | |
set -g mouse off | |
# Split window | |
bind-key h split-window -h | |
bind-key v split-window -v | |
# Rotate Window | |
bind-key -n M-o rotate-window | |
# Swap pane | |
bind-key -r L swap-pane -U | |
bind-key -r K swap-pane -D | |
# Move pane with Control (no prefix) | |
bind-key -n M-j select-pane -L | |
bind-key -n M-k select-pane -D | |
bind-key -n M-l select-pane -U | |
bind-key -n M-\; select-pane -R | |
# Resize pane with Alt (prefix with repeat) | |
bind-key -r j resize-pane -L 5 \; display-message "Resize left" | |
bind-key -r k resize-pane -D 5 \; display-message "Resize down" | |
bind-key -r l resize-pane -U 5 \; display-message "Resize up" | |
bind-key -r \; resize-pane -R 5 \; display-message "Resize right" | |
# Automatically set window title | |
set-window-option -g automatic-rename on | |
set-option -g set-titles on | |
# Choose Window | |
bind-key w choose-window | |
# New Window with number | |
bind-key 1 new-window -t 1 | |
bind-key 2 new-window -t 2 | |
bind-key 3 new-window -t 3 | |
bind-key 4 new-window -t 4 | |
bind-key 5 new-window -t 5 | |
bind-key 6 new-window -t 6 | |
bind-key 7 new-window -t 7 | |
bind-key 8 new-window -t 8 | |
bind-key 9 new-window -t 9 | |
bind-key 0 new-window -t 10 | |
# Switch windows alt+number | |
bind-key -n M-1 select-window -t 1 | |
bind-key -n M-2 select-window -t 2 | |
bind-key -n M-3 select-window -t 3 | |
bind-key -n M-4 select-window -t 4 | |
bind-key -n M-5 select-window -t 5 | |
bind-key -n M-6 select-window -t 6 | |
bind-key -n M-7 select-window -t 7 | |
bind-key -n M-8 select-window -t 8 | |
bind-key -n M-9 select-window -t 9 | |
bind-key -n M-0 select-window -t 10 | |
# Change current pane to next window | |
bind-key ! join-pane -t :1 | |
bind-key @ join-pane -t :2 | |
bind-key '#' join-pane -t :3 | |
bind-key '$' join-pane -t :4 | |
bind-key '%' join-pane -t :5 | |
bind-key '^' join-pane -t :6 | |
bind-key '&' join-pane -t :7 | |
bind-key '*' join-pane -t :8 | |
bind-key '(' join-pane -t :9 | |
bind-key ')' join-pane -t :10 | |
# Kill Selected Pane | |
bind-key Q kill-pane |
@odedlaz Awesome~
Thank you ;)
I have bound prefix key to the windows key.
This is not actually possible in tmux alone, but using kbd package keymap editing, one can send e.g. f12 keycode upon window key press, and then in tmux use f12 for prefix.
I have bound prefix key to the windows key.
This is not actually possible in tmux alone, but using kbd package keymap editing, one can send e.g. f12 keycode upon window key press, and then in tmux use f12 for prefix.
@dkrikun Interesting. However, won't it affect all consoles (ttys) for all users?
It would be nice if you elaborate what you did.
I tried to dumpkeys > backup.kmap
but got Couldn't get a file descriptor referring to the console
and the backp.kmap
was empty.
Thanks to @CSaratakij and @odedlaz for your inputs.
this is very cool! ive been looking for something like this for a while, but never felt like actually making it myself
I have a suggestion: a create if not exist binding. WDYT?