diff --git a/.gitignore b/.gitignore index 312afd5..133a4b7 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,8 @@ mise/* nvim/lazy-lock.json nvim/lazyvim.json +!tmux/ + !yazi/ yazi/flavours/ yazi/plugins/ diff --git a/tmux/tmux.conf b/tmux/tmux.conf new file mode 100644 index 0000000..50ba578 --- /dev/null +++ b/tmux/tmux.conf @@ -0,0 +1,50 @@ +set -g default-terminal "tmux-256color" +set -g terminal-overrides ",*:RGB" + +# Index options +set -g base-index 1 # set base index for windows +set-window-option -g pane-base-index 1 # ser base index for panes +set-option -g renumber-windows on # renumber all windows when any window is closed + +# Base configuration +set -g history-limit 1000000 # increase history size (from 2,000) +set -g mouse on # Enable mouse +set -g set-clipboard on # use system clipboard + +# Vim-like copy/paste +set-window-option -g mode-keys vi # set vi mode for windows +bind-key -T copy-mode-vi v send-keys -X begin-selection +bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle +bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel +unbind -T copy-mode-vi MouseDragEnd1Pane # disable copy with mouse + +# Style +gray_dark="#3B4252" +gray_light="#D8DEE9" +gray_medium="#ABB2BF" +green_soft="#A3BE8C" +cyan_soft="#88C0D0" +blue_muted="#81A1C1" +magenta="#C099FF" +set -g status-position top # macOS / darwin style +set -g status-left-length 100 # more room for session name +set -g status-style "fg=${gray_light},bg=default" +set -g status-left " #{?client_prefix,#[fg=${magenta}],#[fg=${green_soft}]}#[bold] #S#[fg=${gray_light},nobold] | " +set -g status-right "" +set -g window-status-current-format "#[fg=${cyan_soft},bold] #[underscore]#I:#W" +set -g window-status-format "#I:#W" +set -g message-style "fg=${gray_light},bg=default" +set -g mode-style "fg=${gray_dark},bg=${blue_muted}" +set -g pane-border-style "fg=${gray_dark}" +set -g pane-active-border-style "fg=${gray_medium}" + +# Keybins +bind r source-file $HOME/.config/tmux/tmux.conf \; display-message "Configuration relod..." + +# Popups +# new session +bind C-n display-popup -w 50% -h 5% -E 'bash -i -c "read -p \"Session name: \" name; tmux new-session -d -s \$name && tmux switch-client -t \$name"' +# jump to session +bind C-j display-popup -E "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t" +# terminal +bind C-t display-popup -d "#{pane_current_path}" -w 75% -h 75% -E "zsh"