fancy tmux configs
This commit is contained in:
parent
d848bb0440
commit
759f4eaadb
105
home/.tmux.conf
105
home/.tmux.conf
|
@ -1,2 +1,107 @@
|
||||||
|
# thanks to this awesome guide: https://thevaluable.dev/tmux-config-mouseless/ (visited 2023-02-04
|
||||||
|
|
||||||
|
# make ctrl-space the prefix. Keep ctrl-b as an alternative.
|
||||||
|
#unbind C-b
|
||||||
|
set -g prefix2 C-Space
|
||||||
|
|
||||||
|
# enable using the mouse
|
||||||
set -g mouse on
|
set -g mouse on
|
||||||
|
|
||||||
|
# prefix-r to reload the config file
|
||||||
|
|
||||||
|
# prefix-r to reload the config file
|
||||||
|
unbind r
|
||||||
|
bind r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf"
|
||||||
|
|
||||||
|
# change split hotkeys
|
||||||
|
# v and h are not bound by default, but we never know in the next versions...
|
||||||
|
unbind v
|
||||||
|
unbind h
|
||||||
|
|
||||||
|
unbind % # Split vertically
|
||||||
|
unbind '"' # Split horizontally
|
||||||
|
|
||||||
|
# split horizontal with prefix-h or prefix-"
|
||||||
|
bind v split-window -h -c "#{pane_current_path}"
|
||||||
|
bind '"' split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# split vertical with prefix-v or prefix-%
|
||||||
|
bind h split-window -v -c "#{pane_current_path}"
|
||||||
|
bind % split-window -v -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# navigate panels with vim keys
|
||||||
|
bind -n C-h select-pane -L
|
||||||
|
bind -n C-j select-pane -D
|
||||||
|
bind -n C-k select-pane -U
|
||||||
|
bind -n C-l select-pane -R
|
||||||
|
|
||||||
|
# rename window with prefix-n
|
||||||
|
unbind n #DEFAULT KEY: Move to next split-window
|
||||||
|
bind n command-prompt "rename-window '%%'"
|
||||||
|
|
||||||
|
# set the first window id to 1, I know computer scientists always start from 0, but 0 is so far away from my left hand.
|
||||||
|
# remember: prefix-{digit} brings you to the window with the id {digit}
|
||||||
|
set -g base-index 1
|
||||||
|
set-window-option -g pane-base-index 1
|
||||||
|
|
||||||
|
# next window with alt-k, last with alt-j, no prefix needed.
|
||||||
|
bind -n M-j previous-window
|
||||||
|
bind -n M-k next-window
|
||||||
|
|
||||||
|
# tmux modes stuff. we have default mode and copy mode.
|
||||||
|
# obviously use vim keys for copymode (think normal mode in vim)
|
||||||
|
# with these options we can yank the tmux copy stuff into the system clipboard.
|
||||||
|
set-window-option -g mode-keys vi
|
||||||
|
|
||||||
|
unbind -T copy-mode-vi Space; #Default for begin-selection
|
||||||
|
unbind -T copy-mode-vi Enter; #Default for copy-selection
|
||||||
|
|
||||||
|
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||||
|
# copy to XORG clipboard, but this apperantly works with wayland aswell (on my system). TODO: test this for headless servers.
|
||||||
|
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel --clipboard"
|
||||||
|
#bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-keyboard"
|
||||||
|
|
||||||
|
# magic tweaks for better use with vim or neovim
|
||||||
|
set -g -a terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'
|
||||||
|
# Smart pane switching with awareness of Vim splits.
|
||||||
|
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||||
|
|
||||||
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||||
|
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||||
|
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
|
||||||
|
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
|
||||||
|
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
|
||||||
|
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||||
|
bind -n C-\\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
||||||
|
|
||||||
|
# theming, See https://github.com/seebi/tmux-colors-solarized/blob/master/tmuxcolors-dark.conf
|
||||||
|
|
||||||
|
#### COLOUR (Solarized dark)
|
||||||
|
|
||||||
|
# default statusbar colors
|
||||||
|
set-option -g status-style fg=yellow,bg=black #yellow and base02
|
||||||
|
|
||||||
|
# default window title colors
|
||||||
|
set-window-option -g window-status-style fg=brightblue,bg=default #base0 and default
|
||||||
|
#set-window-option -g window-status-style dim
|
||||||
|
|
||||||
|
# active window title colors
|
||||||
|
set-window-option -g window-status-current-style fg=brightred,bg=default #orange and default
|
||||||
|
#set-window-option -g window-status-current-style bright
|
||||||
|
|
||||||
|
# pane border
|
||||||
|
set-option -g pane-border-style fg=black #base02
|
||||||
|
set-option -g pane-active-border-style fg=brightgreen #base01
|
||||||
|
|
||||||
|
# message text
|
||||||
|
set-option -g message-style fg=brightred,bg=black #orange and base01
|
||||||
|
|
||||||
|
# pane number display
|
||||||
|
set-option -g display-panes-active-colour brightred #orange
|
||||||
|
set-option -g display-panes-colour blue #blue
|
||||||
|
|
||||||
|
# clock
|
||||||
|
set-window-option -g clock-mode-colour green #green
|
||||||
|
|
||||||
|
# bell
|
||||||
|
set-window-option -g window-status-bell-style fg=black,bg=red #base02, red
|
||||||
|
|
Loading…
Reference in New Issue