114 lines
2.9 KiB
Nix
114 lines
2.9 KiB
Nix
|
{
|
||
|
environment.etc."tmux.conf".text = ''
|
||
|
# make tmux display things in 256 colors
|
||
|
set -g default-terminal "screen-256color"
|
||
|
|
||
|
# set scrollback history to 10000 (10k)
|
||
|
set -g history-limit 10000
|
||
|
|
||
|
# use send-prefix to pass C-a through to application
|
||
|
bind C-a send-prefix
|
||
|
|
||
|
# shorten command delay
|
||
|
set -sg escape-time 1
|
||
|
|
||
|
# set window and pane index to 1 (0 by default)
|
||
|
set-option -g base-index 1
|
||
|
setw -g pane-base-index 1
|
||
|
|
||
|
# reload ~/.tmux.conf using PREFIX r
|
||
|
bind r source-file /etc/tmux.conf \; display "Reloaded!"
|
||
|
|
||
|
# use PREFIX | to split window horizontally and PREFIX - to split vertically
|
||
|
bind | split-window -h
|
||
|
bind - split-window -v
|
||
|
|
||
|
# Make the current window the first window
|
||
|
bind T swap-window -t 1
|
||
|
|
||
|
# map Vi movement keys as pane movement keys
|
||
|
bind h select-pane -L
|
||
|
bind j select-pane -D
|
||
|
bind k select-pane -U
|
||
|
bind l select-pane -R
|
||
|
|
||
|
# and use C-h and C-l to cycle thru panes
|
||
|
bind -r C-h select-window -t :-
|
||
|
bind -r C-l select-window -t :+
|
||
|
|
||
|
# resize panes using PREFIX H, J, K, L
|
||
|
bind H resize-pane -L 5
|
||
|
bind J resize-pane -D 5
|
||
|
bind K resize-pane -U 5
|
||
|
bind L resize-pane -R 5
|
||
|
|
||
|
set -g mouse on
|
||
|
|
||
|
######################
|
||
|
### DESIGN CHANGES ###
|
||
|
######################
|
||
|
|
||
|
# panes
|
||
|
set -g pane-border-style fg=black
|
||
|
set -g pane-active-border-style fg=brightred
|
||
|
|
||
|
## Status bar design
|
||
|
# status line
|
||
|
##set -g status-utf8 on
|
||
|
set -g status-justify left
|
||
|
set -g status-style bg=default,fg=colour12
|
||
|
set -g status-interval 2
|
||
|
|
||
|
# messaging
|
||
|
set -g message-style fg=black,bg=yellow
|
||
|
set -g message-command-style fg=blue,bg=black
|
||
|
|
||
|
#window mode
|
||
|
setw -g mode-style bg=colour6,fg=colour0
|
||
|
|
||
|
# window status
|
||
|
setw -g window-status-separator ""
|
||
|
setw -g window-status-style bg=colour234,fg=colour7
|
||
|
setw -g window-status-format "#[fg=colour234]#[fg=white,bold]#I#[nobold] #W #[reverse,fg=colour234]"
|
||
|
setw -g window-status-current-style bg=colour240
|
||
|
setw -g window-status-current-format "#[fg=colour234]#[fg=white,bold]#I#[nobold] #W #[reverse,fg=colour234]"
|
||
|
|
||
|
setw -g window-status-bell-style fg=black,bg=colour1,bold
|
||
|
|
||
|
|
||
|
# loud or quiet?
|
||
|
set-option -g visual-activity off
|
||
|
set-option -g visual-bell off
|
||
|
set-option -g visual-silence off
|
||
|
set-window-option -g monitor-activity off
|
||
|
set-option -g bell-action none
|
||
|
|
||
|
# The modes {
|
||
|
setw -g clock-mode-colour colour135
|
||
|
setw -g mode-style fg=colour196,bg=colour238,bold
|
||
|
|
||
|
# }
|
||
|
# The panes {
|
||
|
|
||
|
set -g pane-border-style bg=colour235,fg=colour238
|
||
|
set -g pane-active-border-style bg=colour236,fg=colour51
|
||
|
|
||
|
# }
|
||
|
# The statusbar {
|
||
|
|
||
|
set -g status-position top
|
||
|
set -g status-style bg=colour16,fg=colour137
|
||
|
set -g status-left "#[bg=colour202,fg=colour15,bold]#h #[reverse,fg=colour12,nobold]#[reverse,bg=colour15] #S(#{session_attached}) #I-#P #[bg=colour232,noreverse,nobold]"
|
||
|
set -g status-right "#[fg=colour14,nobold]#[reverse,bg=colour15] #{client_prefix} #[reverse,bg=colour13]#[noreverse,fg=colour15] %H:%M:%S"
|
||
|
set -g status-right-length 30
|
||
|
set -g status-left-length 26
|
||
|
|
||
|
# }
|
||
|
# The messages {
|
||
|
|
||
|
set -g message-style fg=colour16,bg=colour202,bold
|
||
|
|
||
|
# }
|
||
|
'';
|
||
|
}
|