122 lines
6.0 KiB
Plaintext
122 lines
6.0 KiB
Plaintext
###############################################################################
|
|
## 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
|
|
|
|
# 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
|
|
set -g mouse on
|
|
# 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"
|
|
|
|
# Remap shortcut prefix from 'C-b' to 'C-z'
|
|
#unbind C-b
|
|
#set-option -g prefix C-z
|
|
#bind-key C-z send-prefix
|
|
set-option -g prefix C-b
|
|
bind-key C-b 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
|
|
# Status update interval
|
|
set -g status-interval 1
|
|
# Basic status bar colors
|
|
set -g status-style fg=colour240,bg=colour233
|
|
|
|
# Left side of status bar
|
|
set -g status-left-style bg=colour233,fg=colour243
|
|
set -g status-left-length 40
|
|
|
|
# Note: Powerline font requires alternate of bold on right side
|
|
# + Corrects gap on right of character that reveals BG color
|
|
# Note: No bold required, no BG reveal produced by symbol gaps on left side
|
|
# + Font: Sauce Code Pro (NERD patch)
|
|
|
|
# Right side of status bar
|
|
set -g status-right-style bg=colour233,fg=colour243
|
|
set -g status-right-length 100
|
|
|
|
# Set gitmux to appear in center of tmux status bar
|
|
run 'bash -c "if command -v $HOME/go/bin/gitmux &>/dev/null; then test -f $HOME/.gitmux.conf || $HOME/go/bin/gitmux -printcfg > $HOME/.gitmux.conf; fi"'
|
|
set -g window-status-current-format "#($HOME/go/bin/gitmux -cfg $HOME/.gitmux.conf \"#{pane_current_path}\")"
|
|
# Or if you don't want gitmux
|
|
#set -g window-status-current-format "#[fg=colour255,bg=colour233]#[fg=colour100,nobold] #(whoami)@#H #[fg=colour255,bg=colour233,nobold]"
|
|
|
|
run-shell "bash ~/.tmux/tmux-conf.sh"
|
|
# Check if we are running xorg
|
|
#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]"
|
|
#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] #(cd #{pane_current_path}; basename `git rev-parse --show-toplevel`) "
|
|
|
|
|
|
# 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
|
|
set -g default-terminal "screen-256color"
|
|
# Mode
|
|
set -g mode-style bg=colour100,fg=colour235
|
|
|