Created
December 6, 2019 19:40
-
-
Save rhovelz/b81a826db248b552ef71a75d9c6daea9 to your computer and use it in GitHub Desktop.
This file contains 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
############################# | |
########## Bindings | |
############################# | |
# Set the prefix to `ctrl + a` instead of `ctrl + b` | |
unbind C-b | |
set-option -g prefix C-a | |
bind-key C-a send-prefix | |
# Automatically set window title | |
set-window-option -g automatic-rename on | |
set-option -g set-titles on | |
# Use | and - to split a window vertically and horizontally instead of " and % respoectively | |
bind h split-window -h -c "#{pane_current_path}" | |
bind v split-window -v -c "#{pane_current_path}" | |
unbind '"' | |
unbind % | |
# Open ~/.tmux.conf in vim and reload settings on quit | |
unbind e | |
bind e new-window -n '~/.tmux.conf' "sh -c 'nvim ~/.tmux.conf && tmux source ~/.tmux.conf'" | |
# Bind D to resize the window to be 8 lines smaller | |
bind D resize-pane -D 8 | |
# Switch betewen panes using alt + arrow | |
bind -n M-Left select-pane -L | |
bind -n M-Right select-pane -R | |
bind -n M-Up select-pane -U | |
bind -n M-Down select-pane -D | |
# Use shift + arrow key to move between windows in a session | |
bind -n S-Left previous-window | |
bind -n S-Right next-window | |
# Use r to quickly reload tmux settings | |
unbind r | |
bind r \ | |
source-file ~/.tmux.conf \;\ | |
display 'RELOADED' | |
# Mouse mode | |
set -g mouse on | |
# Use a to toggle synchronize panes | |
bind a set-window-option synchronize-panes | |
# prefix + / to search | |
bind-key / copy-mode \; send-key ? | |
# prefix + h to clear screen and history buffer | |
bind y \ | |
send-keys "C-c; clear && tmux clear-history" \;\ | |
send-keys "Enter" \;\ | |
display 'Screen cleared' | |
# Setup 'v' to begin selection, just like Vim | |
bind-key -T copy-mode-vi 'v' send -X begin-selection | |
# Setup 'y' to yank (copy), just like Vim | |
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "pbcopy" | |
bind-key -T copy-mode-vi 'V' send -X select-line | |
bind-key -T copy-mode-vi 'r' send -X rectangle-toggle | |
############################# | |
########## Settings | |
############################# | |
# Refresh status line every 5 seconds - Good for when music is playing / update time etc | |
set -g status-interval 5 | |
# Start window and pane indices at 1. | |
set -g base-index 1 | |
set -g pane-base-index 1 | |
# length of tmux status line | |
set -g status-left-length 30 | |
set -g status-right-length 150 | |
# Make active pane border red | |
set -g pane-active-border-style fg=colour1 | |
#Set the left and right status | |
set -g status-left '#[bg=colour0]#[fg=colour5]#{?client_prefix,#[bg=colour14],} #S #[bg=colour0]#[fg=colour0]#{?client_prefix,#[fg=colour1],}#{?window_zoomed_flag, 🔍 ,}#[fg=colour11]@corshine_ #(~/dotfiles/tmux_scripts/battery.♥sh) ' | |
set -g status-right '#[fg=colour1]#[bg=colour1] #[fg=colour5]#(~/dotfiles/tmux_scripts/uptime.sh) #[fg=colour5]#[fg=colour14]#[bg=colour14]#[fg=colour14] #(~/dotfiles/tmux_scripts/music.sh) #[bg=colour14]#[fg=colour14]#[bg=colour14]#[fg=colour0] %b %d %H:%M ' | |
# Set the background color | |
set -g status-bg colour0 | |
# customize how windows are displayed in the status line | |
set -g window-status-current-format "#[fg=colour]#[bg=colour5]#[fg=colour5]#[bg=colour0] #I* #[fg=colour5] #W #[fg=colour5]#[bg=colour0]" | |
set -g window-status-format "#[fg=colour5]#[bg=colour0]#I-#[fg=colour11] #W" | |
# Set the history limit so we get lots of scrollback. | |
#setw -g history-limit 500000 | |
############################# | |
############# Tmux Vars | |
############################# | |
# $(echo $USER) - shows the current username | |
# %a --> Day of week (Mon) | |
# %A --> Day of week Expanded (Monday) | |
# %b --> Month (Jan) | |
# %d --> Day (31) | |
# %Y --> Year (2017) | |
# %D --> Month/Day/Year (12/31/2017) | |
# %v --> Day-Month-Year (31-Dec-2017) | |
# %r --> Hour:Min:Sec AM/PM (12:30:27 PM) | |
# %T --> 24 Hour:Min:Sec (16:30:27) | |
# %X --> Hour:Min:Sec (12:30:27) | |
# %R --> 24 Hour:Min (16:30) | |
# %H --> 24 Hour (16) | |
# %l --> Hour (12) | |
# %M --> Mins (30) | |
# %S --> Seconds (09) | |
# %p --> AM/PM (AM) | |
# For a more complete list view: https://linux.die.net/man/3/strftime | |
#colour0 (black) | |
#colour1 (red) | |
#colour2 (green) | |
#colour3 (yellow) | |
#colour4 (blue) | |
#colour7 (white) | |
#colour5 colour6 colour7 colour8 colour9 colour10 colour11 colour12 colour13 colour14 colour15 colour16 colour17 | |
#D () | |
#F () | |
#H (hostname) | |
#I (window index) | |
#P () | |
#S (session index) | |
#T (pane title) | |
#W (currnet task like vim if editing a file in vim or zsh if running zsh) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment