[TMUX] Initial tmux conf
This commit is contained in:
parent
7acf33fbb6
commit
c5d8a8501f
4 changed files with 201 additions and 1 deletions
1
.env
1
.env
|
@ -19,3 +19,4 @@ WITH_LAZYGIT_CONFIG=yes
|
|||
|
||||
WITH_ROFI_CONFIG=yes
|
||||
WITH_ALACRITTY_CONFIG=yes
|
||||
WITH_TMUX_CONFIG=yes
|
||||
|
|
181
configs/tmux/tmux.conf
Normal file
181
configs/tmux/tmux.conf
Normal file
|
@ -0,0 +1,181 @@
|
|||
# set prefix to control-f
|
||||
set -g prefix C-f
|
||||
|
||||
#unbind system defined prefix
|
||||
unbind C-b
|
||||
|
||||
# helps in faster key repetition
|
||||
set -g escape-time 0
|
||||
|
||||
# start session number from 1 rather than 0
|
||||
set -g base-index 1
|
||||
|
||||
# start pane number from 1 similar to windows
|
||||
set -g pane-base-index 1
|
||||
|
||||
# Make the current window the first window
|
||||
bind T swap-window -t 1
|
||||
|
||||
# source .tmux.conf file
|
||||
bind r source-file ~/.tmux.conf \; display "Configuration Reloaded!"
|
||||
|
||||
# dont mess up with other ctrl-a options by pressing ctrl-a twice
|
||||
bind C-a send-prefix
|
||||
|
||||
# vertical split
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
|
||||
# horizontal split
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
|
||||
#new window
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
# pane movement similar to vim
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# resize panes
|
||||
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
|
||||
|
||||
# to cycle through windows
|
||||
bind -r C-h select-window -t :-
|
||||
bind -r C-l select-window -t :+
|
||||
bind b previous-window
|
||||
|
||||
# enable mouse
|
||||
set -g mouse on
|
||||
|
||||
# allow mouse to select windows and panes
|
||||
#set -g mouse-select-pane on
|
||||
#set -g mouse-resize-pane on
|
||||
#set -g mouse-select-window on
|
||||
|
||||
# Toggle mouse on
|
||||
bind m \
|
||||
set -g mode-mouse on \;\
|
||||
set -g mouse-resize-pane on \;\
|
||||
set -g mouse-select-pane on \;\
|
||||
set -g mouse-select-window on \;\
|
||||
display 'Mouse: ON'
|
||||
|
||||
# Toggle mouse off
|
||||
bind M \
|
||||
set -g mode-mouse off \;\
|
||||
set -g mouse-resize-pane off \;\
|
||||
set -g mouse-select-pane off \;\
|
||||
set -g mouse-select-window off \;\
|
||||
display 'Mouse: OFF'
|
||||
#Note: hold shift key to select the text using mouse
|
||||
|
||||
# set 256 color
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# monitor activities in other windows
|
||||
setw -g monitor-activity on
|
||||
set -g visual-activity on
|
||||
|
||||
# enable vi mode
|
||||
setw -g mode-keys vi
|
||||
|
||||
# remap copy paste keys
|
||||
unbind [
|
||||
bind y copy-mode
|
||||
unbind p
|
||||
bind p paste-buffer
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection
|
||||
bind-key -T copy-mode-vi r send-keys -X rectangle-toggl
|
||||
|
||||
# copy to system clipboard
|
||||
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
|
||||
|
||||
# paste from system clipboard
|
||||
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
|
||||
|
||||
# maximizing and restoring panes
|
||||
unbind Up
|
||||
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
|
||||
unbind Down
|
||||
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
|
||||
|
||||
|
||||
# switch between sessions
|
||||
bind -r ( switch-client -p
|
||||
bind -r ) switch-client -n
|
||||
|
||||
# set zsh as default shell
|
||||
set -g default-command /bin/bash
|
||||
set -g default-shell /bin/bash
|
||||
|
||||
# recording program output to a log
|
||||
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
|
||||
|
||||
|
||||
# don't allow tmux to rename the window based on commands running
|
||||
set-window-option -g allow-rename off
|
||||
|
||||
# cool screen saver
|
||||
set -g lock-after-time 3000
|
||||
set -g lock-command "cmatrix -s"
|
||||
|
||||
|
||||
# restore vim session even after shutdown
|
||||
set -g @resurrect-strategy-vim "session"
|
||||
# vim-tmux-focus
|
||||
set -g focus-events on
|
||||
set -g @continuum-save-interval '1'
|
||||
# include status line powerline theme
|
||||
# BEGIN FILE
|
||||
# This tmux statusbar config was created by tmuxline.vim
|
||||
# on Tue, 19 May 2020
|
||||
|
||||
set -g status-justify "centre"
|
||||
set -g status "on"
|
||||
set -g status-left-style "none"
|
||||
set -g message-command-style "fg=colour255,bg=colour238"
|
||||
set -g status-right-style "none"
|
||||
set -g pane-active-border-style "fg=colour190"
|
||||
set -g status-style "none,bg=colour234"
|
||||
set -g message-style "fg=colour255,bg=colour238"
|
||||
set -g pane-border-style "fg=colour238"
|
||||
set -g status-right-length "100"
|
||||
set -g status-left-length "100"
|
||||
setw -g window-status-activity-style "none,fg=colour190,bg=colour234"
|
||||
setw -g window-status-separator ""
|
||||
setw -g window-status-style "none,fg=colour85,bg=colour234"
|
||||
set -g status-left "#[fg=colour232,bg=colour154] #S #[fg=colour154,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #W #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour121,bg=colour235] #(whoami) up: #(uptime | cut -f 4-7 -d ' ' | cut -f 1-2 -d ",") #[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]"
|
||||
set -g status-right "#[fg=colour235,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour121,bg=colour235] %r %a %Y #[fg=colour238,bg=colour235,nobold,nounderscore,noitalics]#[fg=colour222,bg=colour238] #{battery_icon}#{battery_percentage}#[fg=colour154,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour232,bg=colour154] #(rainbarf --battery --remaining --no-rgb)"
|
||||
setw -g window-status-format "#[fg=colour234,bg=colour234,nobold,nounderscore,noitalics]#[default] #I #W #[fg=colour234,bg=colour234,nobold,nounderscore,noitalics]"
|
||||
setw -g window-status-current-format "#[fg=colour234,bg=colour238,nobold,nounderscore,noitalics]#[fg=colour255,bg=colour238] #I #W #F #[fg=colour238,bg=colour234,nobold,nounderscore,noitalics]"
|
||||
# END FILE
|
||||
#set-option -g @batt_charged_icon ""
|
||||
set-option -g @batt_charging_icon "⚡"
|
||||
set-option -g @batt_discharging_icon ""
|
||||
set -g @online_icon "✔"
|
||||
set -g @offline_icon "✗"
|
||||
set-option -g status on
|
||||
set-option -g status-interval 2
|
||||
set-option -g status-justify "centre"
|
||||
set-option -g status-left-length 60
|
||||
set-option -g status-right-length 90
|
||||
|
||||
# Tmux plugins
|
||||
set -g @tpm_plugins " \
|
||||
tmux-plugins/tpm \
|
||||
tmux-plugins/tmux-sensible \
|
||||
tmux-plugins/tmux-resurrect \
|
||||
tmux-plugins/tmux-battery \
|
||||
tmux-plugins/tmux-online-status \
|
||||
tmux-plugins/tmux-yank \
|
||||
tmux-plugins/tmux-copycat \
|
||||
tmux-plugins/tmux-continuum \
|
||||
"
|
||||
|
||||
# initializes TMUX plugin manager
|
||||
run-shell ~/.tmux/plugins/tpm/tpm
|
||||
|
|
@ -28,6 +28,7 @@ find ./scripts -type f -iname "*.sh" -exec chmod +x {} \;
|
|||
./scripts/tools/neovim/install.sh
|
||||
./scripts/tools/rofi/install.sh
|
||||
./scripts/tools/alacritty/install.sh
|
||||
./scripts/tools/tmux/install.sh
|
||||
./scripts/window_manager/awesome/install.sh
|
||||
./scripts/window_manager/i3/install.sh
|
||||
./scripts/tools/fonts/install.sh
|
||||
./scripts/tools/fonts/install.sh
|
||||
|
|
17
scripts/tools/tmux/install.sh
Executable file
17
scripts/tools/tmux/install.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
|
||||
source ./scripts/common.sh
|
||||
|
||||
if [[ "$WITH_TMUX_CONFIG" == 'yes' || "$WITH_TMUX_CONFIG" == 'force' ]]; then
|
||||
if [[ -d "$HOME/.tmux.conf" && "$WITH_TMUX_CONFIG" == 'force' ]]; then
|
||||
rm -rf "$HOME/.tmux.conf"
|
||||
echo '[INFO] Tmux config removed | Forced by environment variable'
|
||||
fi
|
||||
if [[ ! -d "$HOME/.tmux.conf" ]]; then
|
||||
ln -s "$CWD/configs/tmux/tmux.conf" "$HOME/.tmux.conf"
|
||||
echo "[INFO] Tmux config linked with symbolic link : $CWD/configs/tmux/tmux.conf -> $HOME/.tmux.conf"
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
echo '[INFO] Tmux plugin manager cloned'
|
||||
else
|
||||
echo '[INFO] Tmux config already linked'
|
||||
fi
|
||||
fi
|
Loading…
Reference in a new issue