From 9ba8700f9eac36e4dc710d936205407ea5f8dcd1 Mon Sep 17 00:00:00 2001 From: Stefan Imhoff Date: Sat, 11 Dec 2021 15:43:48 +0100 Subject: [PATCH] chore(tmux): add settings for TMUX --- .dotbot.conf.yaml | 1 + setup/init.sh | 4 ++ tmux.conf | 94 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 tmux.conf diff --git a/.dotbot.conf.yaml b/.dotbot.conf.yaml index 3e66188..88fd77f 100644 --- a/.dotbot.conf.yaml +++ b/.dotbot.conf.yaml @@ -19,6 +19,7 @@ ~/.hammerspoon: hammerspoon ~/.pandoc: pandoc ~/.ripgreprc: ripgrep + ~/.tmux.conf: tmux.conf ~/.wget: wget ~/.zshrc: zshrc diff --git a/setup/init.sh b/setup/init.sh index 65e3044..51d016b 100755 --- a/setup/init.sh +++ b/setup/init.sh @@ -3,6 +3,9 @@ # Install Xcode Developer Tools xcode-select --install +# Install TMUX Plugin Manager +git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm + # Install Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" @@ -26,3 +29,4 @@ source ./ruby.sh # Install global Gems source ./gem.sh + diff --git a/tmux.conf b/tmux.conf new file mode 100644 index 0000000..b96189d --- /dev/null +++ b/tmux.conf @@ -0,0 +1,94 @@ +set -g default-terminal "screen-256color" + +# Base index for windows +set -g base-index 1 + +# Base index for panes +set-window-option -g pane-base-index 1 + +# tmux messages are displayed for 4 seconds +set -g display-time 4000 + +# Refresh status +set -g status-interval 5 + +# Set focus events for Vim +set -g focus-events on + +# Force a reload of the config file +bind r source-file ~/.tmux.conf\; display "Reloaded!" + +# History +set-option -g history-limit 50000 + +# Act like vim +setw -g mode-keys vi + +# Renumber windows sequentially after closing any of them +set -g renumber-windows on + +# Status Bar +set-window-option -g status-left-length 300 +set-window-option -g status-left " #S " +set-window-option -g status-left-style fg=black,bg=white + +set-window-option -g status-right " #{battery_icon} #{battery_percentage} %d.%m.%Y %H:%M" +set-window-option -g status-right-style fg=black,bg=white + +set-window-option -g window-status-format " #I: #W" + +set-window-option -g window-status-current-format " #I: #W " +set-window-option -g window-status-current-style fg=green,bg=black + +# Swap Window to Position 1 +bind-key T swap-window -t 1 + +# Change the default delay +set -sg escape-time 0 + +# Mouse integration +set -g mouse on + +# Find a window +bind C-f command-prompt "switch-client -t %%" + +# Tile all windows +bind = select-layout tiled + +# Cycle through panes +bind ^B select-pane -t :.+ + +# Clear screen +bind C-l send-keys 'C-l' + +# Copy/Paste bindings +unbind [ +bind Escape copy-mode + +# Setup 'v' to begin selection as in Vim, 'y' or 'Enter' to yank +bind-key -T copy-mode-vi v send-keys -X begin-selection +bind-key -T copy-mode-vi Enter send-keys -X copy-selection + +bind p run "tmux paste-buffer" + +set -g @shell_mode 'vi' + +# List of plugins (prefix + I to install, prefix + U to update) +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-battery' +set -g @plugin 'tmux-plugins/tmux-continuum' +set -g @plugin 'tmux-plugins/tmux-copycat' +set -g @plugin 'tmux-plugins/tmux-logging' +set -g @plugin 'tmux-plugins/tmux-open' +set -g @plugin 'tmux-plugins/tmux-pain-control' +set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'tmux-plugins/tmux-sessionist' +set -g @plugin 'tmux-plugins/tmux-urlview' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'nhdaly/tmux-scroll-copy-mode' +set -g @plugin 'jbnicolai/tmux-fpp' # f +set -g @plugin 'wfxr/tmux-fzf-url' # u + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm'