feat: tmux theme for Dark Catppuccino and a base tmux conf

dev-doc
Pocco81 3 years ago
parent fb5002b231
commit 5054482864

@ -0,0 +1,115 @@
# these are general settings for Tmux unrelated to Catppuccino
# Dependencies:
# + xclip
# ----------------------------=== Settings ===--------------------------
# --------=== General
# set -g default-terminal "screen-256color" # colors!
# set -g default-terminal "xterm-kitty" # colors!
# set -g default-terminal "xterm-256color" # colors!, DON't USE THIS generates problems with keyboard and other stuff
set -g default-terminal "tmux-256color"
# useful for fixing mismatching nvim colors while on Alacritty and other terminals. Follow: https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
set -ag terminal-overrides ",xterm-256color:RGB"
# set-option -ga terminal-overrides ",tmux-256color:Tc"
setw -g xterm-keys on
set -s focus-events on
# faster command sequences aka no delay when pressing certain keys (e.g. Esc)
set -sg escape-time 0
set -sg repeat-time 400 # increase repeat timeout
# --------=== Other
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
set -g history-limit 50000
set -g mouse on
setw -q -g utf8 on # charset
# --------=== Display
set -g base-index 1 # start windows numbering at 1
setw -g pane-base-index 1 # make pane numbering consistent with windows
set -g renumber-windows on # renumber windows when a window is closed
set -g set-titles on # set terminal title
set -g display-panes-time 800 # slightly longer pane indicators display time
set -g display-time 1000 # slightly longer status messages display time
set -g status-interval 0 # redraw status line every 10 seconds
# --------=== Activity
set -g monitor-activity on
set -g visual-activity off
# set -g bell-action none
# set -g visual-bell off
# set -g visual-silence off
# ----------------------------=== Key Bindings ===--------------------------
# see `man tmux`
# NOTE: -n: no prefix
# NOTE: -r: prefix not required after being pressed for `repeat-time`
set-option -g prefix M-f # change default tmux prefix from Ctrl+b to Alt+f
bind r source-file ~/.tmux.conf # source .tmux.conf at $HOME
bind-key v split-window -h -c "#{pane_current_path}" # horizontally split current window
bind-key s split-window -v -c "#{pane_current_path}" # vertically split current window
bind-key -r b set-option status # toggle statusline
bind-key g display-popup -E "tmux new-session -A -s scratch" # aka floating terminal
# thanks https://unix.stackexchange.com/a/525770
bind -n M-PageDown swap-window -d -t -1 # Move current window to the left and switch to it
bind -n M-PageUp swap-window -d -t +1 # Move current window to the right and switch to it
# bind -n C-S-Left swap-window -d -t -1
# bind -n C-S-Right swap-window -d -t +1
bind-key j choose-tree -swZ # TUI for moving around open windows
bind-key J resize-pane -D 5
bind-key K resize-pane -U 5
bind-key H resize-pane -L 5
bind-key L resize-pane -R 5
bind-key -n -r M-t new-window -c "#{pane_current_path}" # spawn a window in cwd
bind-key -n -r M-w kill-window # kill current window
bind-key -n -r M-c kill-pane # kill current pane
bind-key -n M-1 select-window -t 1
bind-key -n M-2 select-window -t 2
bind-key -n M-3 select-window -t 3
bind-key -n M-4 select-window -t 4
bind-key -n M-5 select-window -t 5
bind-key -n M-6 select-window -t 6
bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9
bind-key -n M-0 select-window -t 0
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' # use system clipboard
# bind-key -n M-S-Left resize-pane -D
# bind-key -n M-S-Right resize-pane -U
# bind-key -n M-S-Up resize-pane -L
# bind-key -n M-S-Down resize-pane -R
# Use Alt-arrow keys without the prefix to switch panes
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
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# ----------------------------=== Modes ===--------------------------
set -g status-keys vi # vi status
setw -g mode-keys vi # vi shortcuts

@ -0,0 +1,70 @@
# ----------------------------=== Colorscheme ===--------------------------
# NOTE: you can use vars with $<var> and ${<var>} as long as the str is double quoted: ""
# WARNING: hex colors can't contain capital letters
# --> Dark Catppuccino
thm_bg="#0e171c"
thm_fg="#abb2bf"
thm_fg_gutter="#3b4261"
thm_black="#393b44"
thm_gray="#2a2e36"
thm_red="#c94f6d"
thm_green="#97c374"
thm_yellow="#dbc074"
thm_blue="#61afef"
thm_magenta="#c678dd"
thm_cyan="#63cdcf"
thm_white="#dfdfe0"
thm_orange="#f4a261"
thm_pink="#d67ad2"
thm_black_br="#7f8c98"
thm_red_br="#e06c75"
thm_green_br="#58cd8b"
thm_yellow_br="#ffe37e"
thm_blue_br="#84cee4"
thm_magenta_br="#b8a1e3"
thm_cyan_br="#59f0ff"
thm_white_br="#fdebc3"
thm_orange_br="#f6a878"
thm_pink_br="#df97db"
# ----------------------------=== Theme ===--------------------------
# status
set -g status-position top
set -g status "on"
set -g status-bg "${thm_bg}"
set -g status-justify "left"
set -g status-left-length "100"
set -g status-right-length "100"
# messages
set -g message-style fg="${thm_white_br}",bg="${thm_gray}",align="centre"
set -g message-command-style fg="${thm_white_br}",bg="${thm_gray}",align="centre"
# panes
set -g pane-border-style fg="${thm_gray}"
set -g pane-active-border-style fg="${thm_blue_br}"
# windows
setw -g window-status-activity-style fg="${thm_fg}",bg="${thm_bg}",none
setw -g window-status-separator ""
setw -g window-status-style fg="${thm_fg}",bg="${thm_bg}",none
# --------=== Statusline
set -g status-left ""
set -g status-right "#[fg=$thm_magenta,bg=$thm_bg,nobold,nounderscore,noitalics]#[fg=$thm_bg,bg=$thm_magenta,nobold,nounderscore,noitalics] #[fg=$thm_fg,bg=$thm_gray] #W #{?client_prefix,#[fg=$thm_red],#[fg=$thm_green_br]}#[bg=$thm_gray]#{?client_prefix,#[bg=$thm_red],#[bg=$thm_green_br]}#[fg=$thm_bg] #[fg=$thm_fg,bg=$thm_gray] #S "
# current_dir
setw -g window-status-format "#[fg=$thm_bg,bg=$thm_blue] #I #[fg=$thm_fg,bg=$thm_gray] #{b:pane_current_path} "
setw -g window-status-current-format "#[fg=$thm_bg,bg=$thm_orange] #I #[fg=$thm_white_br,bg=$thm_bg] #{b:pane_current_path} "
# parent_dir/current_dir
# setw -g window-status-format "#[fg=colour232,bg=colour111] #I #[fg=colour222,bg=colour235] #(echo "#{pane_current_path}" | rev | cut -d'/' -f-2 | rev) "
# setw -g window-status-current-format "#[fg=colour232,bg=colour208] #I #[fg=colour255,bg=colour237] #(echo "#{pane_current_path}" | rev | cut -d'/' -f-2 | rev) "
# --------=== Modes
setw -g clock-mode-colour "${thm_blue}"
setw -g mode-style "fg=${thm_yellow} bg=${thm_bg} bold"
Loading…
Cancel
Save