55 lines
1.6 KiB
Nix
55 lines
1.6 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
programs.tmux = {
|
|
enable = true;
|
|
escapeTime = 0;
|
|
mouse = true;
|
|
newSession = true;
|
|
shell = "${pkgs.fish}/bin/fish";
|
|
extraConfig = ''
|
|
# Key bindings
|
|
bind C-l next-window
|
|
bind C-h previous-window
|
|
bind C-b last-window
|
|
bind n new-window
|
|
bind C-n new-window -c '#{pane_current_path}'
|
|
bind v split-window -h
|
|
bind C-v split-window -hc '#{pane_current_path}'
|
|
bind s split-window -v
|
|
bind C-s split-window -vc '#{pane_current_path}'
|
|
bind h select-pane -L
|
|
bind j select-pane -D
|
|
bind k select-pane -U
|
|
bind l select-pane -R
|
|
bind c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
|
bind C-c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
|
|
|
|
# Layouts
|
|
bind f source-file ~/.config/tmux/vifm.conf
|
|
bind R source-file ~/.config/tmux/rloft.conf
|
|
bind J source-file ~/.config/tmux/jekyll.conf
|
|
|
|
# Unbind
|
|
unbind p
|
|
unbind '"'
|
|
unbind %
|
|
|
|
# Eye candy
|
|
# set-option -g status-position top
|
|
set-option -g status-right ""
|
|
set-option -g status-left ""
|
|
set-option -g status-justify "centre"
|
|
set-option -g status-style fg=brightmagenta
|
|
set-option -g pane-border-style fg=brightwhite
|
|
set-option -g pane-active-border-style fg=magenta
|
|
set-option -g window-status-current-style fg=magenta
|
|
|
|
# Some more specifics
|
|
set-option -g focus-events on
|
|
'';
|
|
};
|
|
xdg.configFile."tmux/vifm.conf".source = ./vifm.conf;
|
|
xdg.configFile."tmux/rloft.conf".source = ./rloft.conf;
|
|
xdg.configFile."tmux/jekyll.conf".source = ./jekyll.conf;
|
|
}
|