diff --git a/tmux/.stow-local-ignore b/tmux/.stow-local-ignore new file mode 100644 index 0000000..c82b032 --- /dev/null +++ b/tmux/.stow-local-ignore @@ -0,0 +1 @@ +gruvbox.conf diff --git a/tmux/dot-tmux.conf b/tmux/dot-tmux.conf index c09a52d..8a20327 100644 --- a/tmux/dot-tmux.conf +++ b/tmux/dot-tmux.conf @@ -1,24 +1,24 @@ +# Settings set -g default-terminal "xterm-256color" set -ag terminal-overrides ",xterm-256color:RGB" -#set -g set-titles-string '#T' -#set-option -g set-titles on setw -g monitor-activity on setw -g aggressive-resize on setw -g automatic-rename on set -s escape-time 0 set-window-option -g xterm-keys on -#set -g mouse on - +# Change leader unbind C-b set -g prefix C-a +# Improve navigation between tmux and nvim is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' bind -n M-h if-shell "$is_vim" "send-keys M-h" "select-pane -L" bind -n M-j if-shell "$is_vim" "send-keys M-j" "select-pane -D" bind -n M-k if-shell "$is_vim" "send-keys M-k" "select-pane -U" bind -n M-l if-shell "$is_vim" "send-keys M-l" "select-pane -R" +# Custom keybinds bind '"' split-window -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}" bind -n C-j new-window -c "#{pane_current_path}" @@ -26,22 +26,9 @@ bind -n C-h prev bind -n C-l next bind -n C-M-l swap-window -t +1 \; next bind -n C-M-h swap-window -t -1 \; prev -bind X kill-window -set -g status-style "bg=colour237" -set -g message-command-style "fg=colour246" -set -g status-justify "left" -set -g status-left-length "100" -set -g status "on" -set -g pane-active-border-style "fg=colour246" -set -g status-right-length "100" -set -g message-style "fg=colour246,bg=colour239" -set -g message-command-style "bg=colour239" -set -g pane-border-style "fg=colour239" -setw -g window-status-style "fg=colour246,bg=colour237" -setw -g window-status-activity-style "fg=colour246,bg=colour237" -setw -g window-status-separator "" -set -g status-left "#[fg=colour235,bg=colour246] #S #[fg=colour246,bg=colour237,nobold,nounderscore,noitalics]" -set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %Y-%m-%d  %H:%M #[fg=colour246,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour235,bg=colour246] #h " -setw -g window-status-format "#[fg=colour246,bg=colour237] #I #[fg=colour246,bg=colour237] #W " -setw -g window-status-current-format "#[fg=colour237,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] #I #[fg=colour246,bg=colour239] #W #[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]" +# Keybind for reloading config +bind r source-file $DOTFILES/tmux/dot-tmux.conf \; display-message "Config reloaded..." + +# Load theme +source-file "$DOTFILES/tmux/gruvbox.conf" diff --git a/tmux/gruvbox.conf b/tmux/gruvbox.conf new file mode 100644 index 0000000..42609f6 --- /dev/null +++ b/tmux/gruvbox.conf @@ -0,0 +1,57 @@ +## COLORSCHEME: gruvbox dark (medium) +set-option -g status "on" + +# default statusbar color +set-option -g status-style bg=#3c3836,fg=#a89984 + +# default window title colors +set-window-option -g window-status-style bg=#3c3836,fg=#a89984 + +# default window with an activity alert +set-window-option -g window-status-activity-style bg=#fabd2f,fg=#a89984 + +# active window title colors +set-window-option -g window-status-current-style bg=#504945,fg=#ebdbb2 + +# pane border +set-option -g pane-active-border-style fg=#bdae93 +set-option -g pane-border-style fg=#665c54 + +# message infos +set-option -g message-style bg=#504945,fg=#ebdbb2 + +# writing commands inactive +set-option -g message-command-style bg=#504945,fg=#ebdbb2 + +# pane number display +set-option -g display-panes-active-colour "#bdae93" +set-option -g display-panes-colour "#665c54" + +# clock +set-window-option -g clock-mode-colour "#cc241d" + +# # bell +set-window-option -g window-status-bell-style bg=#fabd2f,fg=#a89984 + +## Theme settings mixed with colors (unfortunately, but there is no cleaner way) +set-option -g status-justify "left" +set-option -g status-left-style none +set-option -g status-left-length "80" +set-option -g status-right-style none +set-option -g status-right-length "80" +set-window-option -g window-status-separator "" + +set-option -g status-left "#[bg=#a89984,fg=#282828,bold] #S " +set-option -g status-right "#[bg=#3c3836,fg=#504945]#[bg=#504945,fg=#ebdbb2] %Y-%m-%d #[fg=#a89984]#[fg=#ebdbb2] %H:%M #[bg=#504945,fg=#a89984]#[bg=#a89984,fg=#282828,bold] #h " +set-window-option -g window-status-current-format "\ + #[bg=#458588]#{?window_start_flag,#[fg=#a89984],#[fg=#3c3836]}\ + #[fg=#282828] #I  #W#{?window_zoomed_flag, [Z],} \ + #[fg=#458588]#[bg=#3c3836]" + +set-window-option -g window-status-format "\ + #{?#{||:#{window_bell_flag},#{window_activity_flag}},#[bg=#fabd2f],#[bg=#504945]}#{?window_start_flag,#[fg=#a89984],#[fg=#3c3836]}\ + #{?#{||:#{window_bell_flag},#{window_activity_flag}},#[fg=#504945]#[bg=#fabd2f],#[fg=#a89984]}\ + #I  #W \ + #[bg=#3c3836]#{?#{||:#{window_bell_flag},#{window_activity_flag}},#[fg=#fabd2f],#[fg=#504945]}" + +# vim: set ft=tmux tw=0 nowrap: