summaryrefslogtreecommitdiff
path: root/.tmux.conf
blob: b53958273c853218d6efead666ee732e7a0f97db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Unbinding
unbind r
unbind Space
unbind C-d
unbind C-l
unbind C-a
set-option -g set-clipboard on

# Setting binds
set -g prefix C-s
bind r source-file ~/.tmux.conf
bind-key Space switch-client -l
bind-key ";" split-window -h -c "#{pane_current_path}"
bind-key "'" split-window -v -c "#{pane_current_path}"
bind-key g new-window -n lazygit -c "#{pane_current_path}" "lazygit"
bind -N "⌘+l last-session (via sesh) " L run-shell "sesh last || tmux display-message -d 1000 'Oops, no last sessions found'"
bind -N "⌘+l last-session (via sesh) " C-z run-shell "sesh last || tmux display-message -d 1000 'Oops, no last sessions found'"
bind-key h swap-window -t -1 \; select-window -t -1
bind-key l swap-window -t +1 \; select-window -t +1

bind-key "K" run-shell "sesh connect \"$(
  sesh list --icons --hide-duplicates | fzf-tmux -p 100%,100% --no-border \
    --ansi \
    --list-border \
    --no-sort --prompt '⚡  ' \
    --color 'list-border:6,input-border:3,preview-border:4,header-bg:-1,header-border:6' \
    --input-border \
    --header-border \
    --bind 'btab:down,tab:up' \
    --bind 'ctrl-b:abort' \
    --bind 'ctrl-a:change-prompt(⚡  )+reload(sesh list --icons)' \
    --bind 'ctrl-t:change-prompt(  )+reload(sesh list -t --icons)' \
    --bind 'ctrl-g:change-prompt(⚙️  )+reload(sesh list -c --icons)' \
    --bind 'ctrl-x:change-prompt(📁  )+reload(sesh list -z --icons)' \
    --bind 'ctrl-f:change-prompt(🔎  )+reload(fd -H -d 2 -t d -E .Trash . ~)' \
    --bind 'ctrl-d:execute(tmux kill-session -t {2..})+change-prompt(⚡  )+reload(sesh list --icons)' \
    --preview-window 'right:70%' \
    --preview 'sesh preview {}' \
)\""
set -g detach-on-destroy off
bind-key -n C-a last-window
set -g mouse on
set -gq allow-passthrough on
set -g visual-activity off

set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
set-option -g status-position top
set -g escape-time 0
set -g status-interval 3

# Plugins
set -g @plugin 'arcticicestudio/nord-tmux'
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'tmux-plugins/tmux-yank'

run '~/.tmux/plugins/tpm/tpm'

set -g status-left "#[fg=black,bold]#S "
set -g status-right ""
set -g window-status-format "  #[fg=grey]#I:#W"
set -g window-status-current-format "  #[fg=red,bold]#I:#W"
set-option -g status-style bg=default
set -g window-status-separator ""
set -g status-justify absolute-centre
set -g message-style bg=default,fg=cyan,bold