Last active
May 19, 2025 10:56
-
-
Save terrywang/3950393 to your computer and use it in GitHub Desktop.
~/.tmux.conf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /home/terrywang/.tmux.conf | |
# Based on tmux book written by Brian P. Hogan | |
# c-a o to switch to another panel | |
# c-d to close shell | |
# c-a ! to close panel | |
# c-a w to list windows | |
# c-a " split pane horizontally | |
# c-a % split pane vertically | |
# Hierarchy | |
# Server | |
# ㄴ Session | |
# ㄴ Window | |
# ㄴ Pane | |
# Options | |
# - Session options (set-option [-g]) set | |
# - Window options (set-window-option [-g]) setw | |
# Free the original Ctrl-b prefix keybinding | |
unbind c-b | |
# Setting the prefix from c-b to c-a | |
set -g prefix c-a | |
# prefix c | |
bind-key c new-window -c "#{pane_current_path}" | |
# Setting the delay between prefix and command | |
set -s escape-time 1 | |
# Ensure that we can send Ctrl-a to other apps | |
bind c-a send-prefix | |
# readline beginning-of-line behaviour Ctrl-a a | |
bind a send-prefix | |
# history buffer - max number of lines for each window | |
set -g history-limit 102400 | |
# tmux history file loaded on start and written on exit | |
# set -g history-file ~/.tmux_history | |
# Set Terminal Emulator Titles - OFF by default | |
# set -g set-titles on | |
# Set the base index for windows to 1 instead of 0 | |
set -g base-index 1 | |
# Set the base index for panes to 1 instead of 0 | |
setw -g pane-base-index 1 | |
# Renumber windows when a window is closed | |
set -g renumber-windows on | |
# Don't rename windows automatically | |
# use prefix , | |
set -g allow-rename off | |
# Repeat time limit (ms) | |
set -g repeat-time 500 | |
# Switch to last window | |
unbind l | |
bind-key c-a last-window | |
# unbind o | |
# bind-key c-a select-pane | |
# Reload the file with Prefix r | |
bind r source-file ~/.tmux.conf \; display "Reloaded!" | |
# Clear scrollback buffer | |
# bind-key c-l send-keys c-l \; clear-history | |
# Splitting panes replace % and " | |
# bind | split-window -h | |
# bind - split-window -v | |
# prefix | | |
# bind-key | split-window -h -c "#{pane_current_path}" | |
# prefix - | |
# bind-key - split-window -c "#{pane_current_path}" | |
# moving between panes | |
bind h select-pane -L | |
bind j select-pane -D | |
bind k select-pane -U | |
bind l select-pane -R | |
# Quick pane selection | |
bind -r C-h select-window -t :- | |
bind -r C-l select-window -t :+ | |
# Pane resizing | |
bind -r H resize-pane -L 5 | |
bind -r J resize-pane -D 5 | |
bind -r K resize-pane -U 5 | |
bind -r L resize-pane -R 5 | |
# Synchronize panes | |
bind-key * set-window-option synchronize-pane | |
# Mouse support | |
# setw -g mode-mouse on | |
# set -g mouse-select-pane off | |
# set -g mouse-resize-pane off | |
# set -g mouse-select-window off | |
# incompatible since tmux 2.1 | |
set -g mouse on | |
# Set the default terminal mode to 256color mode | |
# set -g default-terminal "screen-256color" | |
# nova-tmux | |
set -g default-terminal "xterm-256color" | |
# Add trucolor support (tmux info | grep Tc) | |
set -ga terminal-overrides ",xterm-256color:Tc" | |
set -g pane-border-style 'bg=black,fg=#1E272C' | |
set -g pane-active-border-style 'bg=black,fg=#1E272C' | |
set -g status-style 'bg=#1E272C,fg=#6A7D89' | |
set -wg mode-style 'bg=cyan,fg=black' | |
set -g message-style 'bg=black,fg=cyan' | |
set -g clock-mode-colour cyan | |
# Enable activity alerts | |
setw -g monitor-activity on | |
set -g visual-activity on | |
# tmux coloring | |
# Set the status line's colors | |
set -g status-style fg=white,bg=black | |
# Set the color of the window list | |
set-window-option -g window-status-style fg=cyan,bg=default,dim | |
# Set colors for the active window | |
set-window-option -g window-status-current-style bg='#1E272C',fg=cyan,fg=white,bg=red,bright | |
# Pane colors | |
set-option -g pane-border-style fg=green,bg=black | |
set-option -g pane-active-border-style fg=white,bg=yellow | |
# Command / message line | |
set-option -g message-style fg=white,bg=black,bright | |
# Status line left side | |
set-option -g status-left-length 40 | |
set-option -g status-left "#[fg=green]Session: #S #[fg=yellow]W#I #[fg=cyan]P#P" | |
# No longer necessary since tmux 2.1 | |
# set-option -g status-utf8 on | |
# Status line right side | |
# 15% | 25 Oct 14:50 | |
# set -g status-right "#[fg=cyan]%d %b %R #[fg=magenta]#H | #[fg=red]CPU:#{cpu_percentage} |#[fg=blue] MEM:#{ram}" | |
# set -g status-right "#S #[fg=green,bg=black]#(tmux-mem-cpu-load --colors --interval 2)#[default]" | |
set -g status-right "#[fg=cyan]%d %b %R #[fg=magenta]#H" | |
# Update the status bar every sixty seconds | |
set -g status-interval 60 | |
# Center the window list | |
set -g status-justify centre | |
# Enable vi keys | |
setw -g mode-keys vi | |
# ------------------------------------------------------------------- | |
# Be dragons! | |
# ------------------------------------------------------------------- | |
# Backslash bind-key | |
if-shell "test $USER = jg" \ | |
"unbind C-a; set-option -g prefix \\ ; bind-key ] send-prefix; bind-key p paste-buffer; bind-key \\ last-window" | |
# Bind-key switch | |
bind-key F9 set-option -g prefix C-a \;\ | |
bind-key a send-prefix \;\ | |
bind-key p previous-window \;\ | |
bind-key C-a last-window | |
bind-key F10 set-option -g prefix "\\" \;\ | |
bind-key ] send-prefix \;\ | |
bind-key p paste-buffer \;\ | |
bind-key "\\" last-window | |
# TPM | |
# List of plugins | |
set -g @plugin 'tmux-plugins/tpm' | |
set -g @plugin 'tmux-plugins/tmux-cpu' | |
set -g @plugin 'pwittchen/tmux-plugin-ram' | |
set -g @plugin 'tmux-plugins/tmux-copycat' | |
set -g @plugin 'tmux-plugins/tmux-sidebr' | |
set -g @plugin 'tmux-plugins/tmux-fpp' | |
# set -g @plugin 'tmux-plugins/tmux-sensible' | |
set -g @plugin 'laktak/extrakto' | |
set -g @plugin 'Morantron/tmux-fingers' | |
set -g @plugin 'christoomey/vim-tmux-navigator' | |
# Other examples: | |
# set -g @plugin 'github_username/plugin_name' | |
# set -g @plugin '[email protected]/user/plugin' | |
# set -g @plugin '[email protected]/user/plugin' | |
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | |
# set -g @plugin 'junegunn/tmux-fzf-url' | |
run '~/.tmux/plugins/tpm/tpm' | |
# oh my tmux | |
# https://github.com/gpakosz/.tmux |
g-i-o-r-g-i-o
commented
May 25, 2020
via email
I've noticed that the conf file is susceptible to hidden characters that
may appear in copy paste and when saving with a certain encoding. That is
the thing that was happening
Il lun 25 mag 2020, 17:52 Christopher Soehnlein <[email protected]>
ha scritto:
… ***@***.**** commented on this gist.
------------------------------
Does this file work? It isn't loaded by TMUX, it gives all sort of errors
:-(
It gives "unknown command".
ubuntu 20.04
I am using Kali 2020 and took snippets from this to build my own and it's
functioning as intended. Start with using your prefix key + : to enable the
console and use -
source-file ~/.tmux.conf
I added each command I wanted one at a time and refreshed.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://gist.github.com/3950393#gistcomment-3317503>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACG2GHHQRUH5C4J735SCQL3RTKH4RANCNFSM4NEF5QLA>
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment