mirror of
https://github.com/Lissy93/dotfiles.git
synced 2024-11-28 18:23:14 +01:00
150 lines
5.8 KiB
Plaintext
150 lines
5.8 KiB
Plaintext
|
|
|
|
######################################################################
|
|
# Tmux Configuration File (~/.tmux.conf) #
|
|
######################################################################
|
|
# Config for Tmux multiplexer (requires version >= v2.4) #
|
|
# Sets preferences, keybindings and configures plugins #
|
|
# Tmux needs to be re-sourced or killed for changes to work #
|
|
# For docs and more info, see: https://github.com/lissy93/dotfiles #
|
|
# #
|
|
# Licensed under MIT (C) Alicia Sykes 2022 <https://aliciasykes.com> #
|
|
######################################################################
|
|
|
|
|
|
######################################################################
|
|
# Basics #
|
|
######################################################################
|
|
|
|
# Set Tmux prefix keys (Ctrl+B or `)
|
|
set-option -g prefix C-b
|
|
set-option -g prefix2 `
|
|
|
|
# Use vim keybindings in copy mode
|
|
setw -g mode-keys vi
|
|
|
|
# Allow mouse support
|
|
set -g mouse on
|
|
|
|
# Use wider color pallete
|
|
set -g default-terminal screen-256color
|
|
|
|
# Set bigger history limit
|
|
set -g history-limit 20000
|
|
|
|
# Set Esc delay after prefix
|
|
set -sg escape-time 20
|
|
|
|
# Keep Tmux alive when the initial command is finished
|
|
set -g remain-on-exit off
|
|
|
|
# Sets parent terminal title, same as current Tmux window
|
|
set -g set-titles on
|
|
set -g set-titles-string "#I:#W"
|
|
|
|
# Update default binding of `Enter` to also use copy-pipe
|
|
unbind -T copy-mode-vi Enter
|
|
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
|
|
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
|
|
|
|
|
|
######################################################################
|
|
# Navigation #
|
|
######################################################################
|
|
|
|
# Allow Alt+Arrow to switch pains
|
|
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
|
|
|
|
# Split window horizontally (h) / veritcally (v)
|
|
bind v split-window -v
|
|
bind h split-window -h
|
|
|
|
# Activity Monitoring (for when something happens in another pain)
|
|
set -g monitor-activity on
|
|
set -g visual-activity on
|
|
|
|
######################################################################
|
|
# Pop-Up Menus #
|
|
######################################################################
|
|
|
|
# Prefix + Ctrl J shows a session list popup selector with fzf
|
|
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"
|
|
|
|
# Show htop on Prefix + Ctrl H
|
|
bind C-h display-popup -E "htop"
|
|
|
|
|
|
|
|
######################################################################
|
|
# Status Bar #
|
|
######################################################################
|
|
|
|
set -g status-bg colour0
|
|
set -g status-fg colour7
|
|
|
|
######################################################################
|
|
# Plugin Imports and Configurations #
|
|
######################################################################
|
|
|
|
# Set install location for plugins
|
|
set-environment -g TMUX_PLUGIN_MANAGER_PATH "${XDG_DATA_HOME}/tmux/plugins"
|
|
|
|
# Install productivity plugins
|
|
set -g @plugin 'tmux-plugins/tmux-sessionist' # Easily manage sessions
|
|
set -g @plugin 'tmux-plugins/tmux-continuum' # Contineous saves environment for next time
|
|
set -g @plugin 'tmux-plugins/tmux-resurrect' # Restart previous environment on launch
|
|
set -g @plugin 'tmux-plugins/tmux-sidebar' # Shows file tree on the left, `tab`
|
|
set -g @plugin 'tmux-plugins/tmux-open' # Opens highlighted addresses / files: `o`
|
|
set -g @plugin 'jaclu/tmux-menus' # Context menus for common tasks: `#`
|
|
set -g @plugin 'laktak/extrakto' # Clipboard copy and output completions
|
|
set -g @plugin 'tmux-plugins/tmux-yank' # Save text to system clipboard
|
|
|
|
# Install status bar plugins
|
|
set -g @plugin 'xamut/tmux-weather'
|
|
set -g @plugin 'tmux-plugins/tmux-cpu'
|
|
set -g @plugin 'tmux-plugins/tmux-battery'
|
|
set -g @plugin 'MunifTanjim/tmux-mode-indicator'
|
|
set -g @plugin 'tmux-plugins/tmux-online-status'
|
|
set -g @plugin 'kristijanhusak/tmux-simple-git-status'
|
|
|
|
# Set status line content
|
|
set -g status-interval 2
|
|
set -g status-right-length 180
|
|
set -g status-right '#{tmux_mode_indicator} Online: #{online_status} | #{weather} | %a %d/%m/%Y %H:%M | #{battery_icon_status} #{battery_percentage}'
|
|
set -g status-left-length 180
|
|
set -g status-left "CPU: #{cpu_fg_color}#{cpu_percentage} #{cpu_temp_icon} #{cpu_temp}#{cpu_temp_format}#[default] | MEM: #{ram_fg_color}#{ram_percentage} #[default]| #{simple_git_status}"
|
|
|
|
# More plugin options
|
|
set -g @menus_trigger '#'
|
|
|
|
set-option -g @tmux-weather-location "London"
|
|
|
|
set -g @cpu_low_bg_color "#[bg=0]"
|
|
set -g @cpu_low_fg_color "#[fg=3]"
|
|
set -g @cpu_medium_bg_color "#[bg=0]"
|
|
set -g @cpu_medium_fg_color "#[fg=3]"
|
|
set -g @cpu_high_bg_color "#[bg=0]"
|
|
set -g @cpu_high_fg_color "#[fg=1]"
|
|
set -g @cpu_temp_format "%0.1f°"
|
|
set -g @cpu_temp_low_icon "❄️"
|
|
set -g @cpu_temp_medium_icon "🌡️"
|
|
set -g @cpu_temp_high_icon "🔥"
|
|
set -g @cpu_temp_low_bg_color "#[bg=0]"
|
|
set -g @cpu_temp_low_fg_color "#[fg=20]"
|
|
set -g @cpu_temp_medium_bg_color "#[bg=0]"
|
|
set -g @cpu_temp_medium_fg_color "#[fg=11]"
|
|
set -g @cpu_temp_high_bg_color "#[bg=0]"
|
|
set -g @cpu_temp_high_fg_color "#[fg=9]"
|
|
set -g @ram_low_bg_color "#[bg=0]"
|
|
set -g @ram_low_fg_color "#[fg=2]"
|
|
set -g @ram_medium_bg_color "#[bg=0]"
|
|
set -g @ram_medium_fg_color "#[fg=3]"
|
|
set -g @ram_high_bg_color "#[bg=0]"
|
|
set -g @ram_high_fg_color "#[fg=2]"
|
|
|
|
# Import TPM
|
|
run "${XDG_DATA_HOME}/tmux/plugins/tpm/tpm"
|