2021-12-20 21:49:21 +00:00
|
|
|
###############################################################################
|
|
|
|
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
|
|
|
## ##
|
|
|
|
## A custom tmux multiplexer config / layout created for Manjaro i3 ##
|
|
|
|
##+ Inspired by vim-powerline: https://github.com/Lokaltog/powerline ##
|
|
|
|
## ##
|
|
|
|
## This config created and tested with Powerline Consolas ##
|
|
|
|
##+ https://github.com/Lokaltog/powerline-fonts ##
|
|
|
|
##+ Some symbols may require Font Awesome 5 Free Solid ##
|
|
|
|
## ##
|
|
|
|
###############################################################################
|
|
|
|
# .tmux.conf
|
|
|
|
#
|
|
|
|
# If symbols or powerline layout fail to appear...
|
|
|
|
#+ Check your terminal emulator font settings include these fonts
|
|
|
|
#+ Check that required fonts are installed
|
|
|
|
#
|
|
|
|
# Note: The use of 256colours in this file allows for portable color definitions between platforms and applications
|
|
|
|
#+ Changing to a different color interpretation may result in some apps displaying colors differently than others
|
|
|
|
#+ Vim plugin 'Colorizer' does not reflect the actual 256colour values
|
|
|
|
#+ See https://jonasjacek.github.io/colors/ for a full list of 256colours
|
|
|
|
|
2022-07-16 14:20:50 +00:00
|
|
|
# Settings for terminal text selection / copy options
|
|
|
|
# + Source: https://www.seanh.cc/2020/12/27/copy-and-paste-in-tmux/
|
|
|
|
# + Depends: https://github.com/tmux-plugins/tmux-yank#linux
|
2021-12-20 21:49:21 +00:00
|
|
|
set -g mouse on
|
2022-07-16 14:20:50 +00:00
|
|
|
# These bindings are for X Windows only. If you're using a different
|
|
|
|
# window system you have to replace the `xsel` commands with something
|
|
|
|
# else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools
|
|
|
|
bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
|
|
|
|
bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
|
|
|
|
bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
|
|
|
|
bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
|
|
|
|
bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
|
|
|
|
bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
|
|
|
|
bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection"
|
|
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
|
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
|
|
|
set -g @yank_action 'copy-pipe-no-clear'
|
|
|
|
bind -T copy-mode C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
|
|
|
|
bind -T copy-mode-vi C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
|
|
|
|
|
|
|
|
set-option -s set-clipboard external
|
|
|
|
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
|
2021-12-20 21:49:21 +00:00
|
|
|
|
|
|
|
# remap shortcut prefix from 'C-b' to 'C-z'
|
|
|
|
unbind C-b
|
|
|
|
set-option -g prefix C-z
|
|
|
|
bind-key C-z send-prefix
|
|
|
|
|
|
|
|
# Reload tmux.conf in this session
|
|
|
|
bind r source-file ~/.tmux.conf
|
|
|
|
|
|
|
|
bind h split-window -h
|
|
|
|
bind v split-window -v
|
|
|
|
|
|
|
|
# switch panes using Alt-arrow without prefix
|
|
|
|
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
|
|
|
|
|
|
|
|
set-option -g status-position top
|
|
|
|
# Can't use theme plugin without risk of repo update overwriting data?
|
|
|
|
#source-file "${HOME}/.tmux-themepack/powerline/double/green.tmuxtheme"
|
|
|
|
|
|
|
|
# Status update interval
|
|
|
|
set -g status-interval 1
|
|
|
|
|
|
|
|
# Basic status bar colors
|
|
|
|
set -g status-style fg=colour240,bg=colour233
|
|
|
|
|
|
|
|
#set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour208]#[fg=colour240,bg=colour208] #{git_remote} #{git_flags} #[fg=colour208,bg=colour233,nobold]"
|
|
|
|
|
|
|
|
# Tmux Git
|
|
|
|
#let -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour208]#[fg=colour240,bg=colour208] #{git_remote} #{git_flags} #[fg=colour208,bg=colour233,nobold]"
|
|
|
|
|
|
|
|
# Left side of status bar
|
|
|
|
set -g status-left-style bg=colour233,fg=colour243
|
|
|
|
set -g status-left-length 40
|
|
|
|
# Note: No bold required, no BG reveal produced by symbol gaps on left side
|
|
|
|
#+ Font: Powerline Consolas
|
|
|
|
set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #(hostname) #[fg=colour235,bg=colour233]#[fg=colour240,bg=colour233]"
|
|
|
|
|
|
|
|
# Right side of status bar
|
|
|
|
set -g status-right-style bg=colour233,fg=colour243
|
|
|
|
set -g status-right-length 150
|
|
|
|
# Hide right bar entirely
|
|
|
|
#set -g status-right ""
|
|
|
|
|
|
|
|
# Note: Powerline font requires alternate of bold on right side
|
|
|
|
# Corrects gap on right of character that reveals BG color
|
|
|
|
#+ Font: Powerline Consolas
|
|
|
|
#set -g status-right "#[fg=colour235,bg=colour233,bold]#[fg=colour240,bg=colour235,nobold] %H:%M:%S #[fg=colour240,bg=colour235,bold]#[fg=colour233,bg=colour240,nobold] %d-%b-%y #[fg=colour100,bg=colour240,bold]#[fg=colour233,bg=colour100,bold] #H "
|
|
|
|
set -g status-right "#[fg=colour235,bg=colour233,bold]#[fg=colour240,bg=colour235,nobold] %H:%M:%S #[fg=colour240,bg=colour235,bold]#[fg=colour233,bg=colour240,nobold] %d-%b-%y #[fg=colour100,bg=colour240,bold]#[fg=colour233,bg=colour100,bold] #(/home/kapper/go/bin/gitux #{pane_current_path}) "
|
|
|
|
|
|
|
|
# Simple Git
|
|
|
|
#set -g status-right "#[fg=colour235,bg=colour233] #{simple_git_status} #[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour100,bg=colour240]#[fg=colour233,bg=colour100,bold] #H "
|
|
|
|
|
|
|
|
# Tmux Git
|
|
|
|
#set -g status-right "#[fg=colour208,bg=colour233]#[fg=colour235,bg=colour208] #{git_upstream} #{git_branch} #[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour100,bg=colour240]#[fg=colour233,bg=colour100,bold] #H "
|
|
|
|
|
|
|
|
# Window status
|
|
|
|
set -g window-status-format '#(/home/kapper/go/bin/gitmux #{pane_current_path})'
|
|
|
|
# set -g window-status-format " #I:#W#F (TMUX OTHER STATUS) #(pwd | sed -e "s|.*/\(.*/.*\)|\1|") "
|
|
|
|
set -g window-status-current-format '#(/home/kapper/go/bin/gitmux #{pane_current_path})'
|
|
|
|
#set -g window-status-current-format "#[fg=colour255,bg=colour233]#[fg=colour100,nobold] #(whoami)@#H #[fg=colour255,bg=colour233,nobold]"
|
|
|
|
# #{pane_current_path}
|
|
|
|
|
|
|
|
# Current window status
|
|
|
|
set -g window-status-current-style bg=colour233,fg=colour100
|
|
|
|
|
|
|
|
# Window with activity status
|
|
|
|
set -g window-status-activity-style bg=colour233,fg=colour245
|
|
|
|
|
|
|
|
# Window separator
|
|
|
|
set -g window-status-separator ""
|
|
|
|
|
|
|
|
# Window status alignment
|
|
|
|
set -g status-justify centre
|
|
|
|
|
|
|
|
# Pane border
|
|
|
|
set -g pane-border-style bg=default,fg=colour238
|
|
|
|
|
|
|
|
# Active pane border
|
|
|
|
set -g pane-active-border-style bg=default,fg=colour100
|
|
|
|
|
|
|
|
# Pane number indicator
|
|
|
|
set -g display-panes-colour colour233
|
|
|
|
set -g display-panes-active-colour colour245
|
|
|
|
|
|
|
|
# Clock mode
|
|
|
|
set -g clock-mode-colour colour100
|
|
|
|
set -g clock-mode-style 24
|
|
|
|
|
|
|
|
# Message
|
|
|
|
set -g message-style bg=colour100,fg=black
|
|
|
|
|
|
|
|
# Command message
|
|
|
|
set -g message-command-style bg=colour233,fg=black
|
|
|
|
|
|
|
|
# Tmux Git status bar settings
|
|
|
|
# (Un)comment source-file to enable / disable
|
|
|
|
# source-file "$HOME/.tmux-gitbar/tmux-gitbar.tmux"
|
|
|
|
set -g default-terminal "screen-256color"
|
|
|
|
|
|
|
|
# Mode
|
|
|
|
set -g mode-style bg=colour100,fg=colour235
|
|
|
|
|
|
|
|
# List of plugins and their settings
|
|
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
|
|
|
|
|
|
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
|
|
|
|
set -g @scroll-speed-num-lines-per-scroll 2
|
|
|
|
|
|
|
|
#set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
|
|
#set -g @plugin 'kristijanhusak/tmux-simple-git-status'
|
|
|
|
|
|
|
|
# Other examples:
|
|
|
|
# set -g @plugin 'github_username/plugin_name'
|
|
|
|
# set -g @plugin 'git@github.com/user/plugin'
|
|
|
|
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
|
|
|
|
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
|
|
run -b '~/.tmux/plugins/tpm/tpm'
|
|
|
|
|