add tmux module
This commit is contained in:
parent
ab1ad05d20
commit
be28f74cac
57
modules/shell/tmux.nix
Normal file
57
modules/shell/tmux.nix
Normal file
@ -0,0 +1,57 @@
|
||||
#
|
||||
# Tmux
|
||||
#
|
||||
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs = {
|
||||
tmux = {
|
||||
enable = true;
|
||||
terminal = "xterm-256color";
|
||||
newSession = true;
|
||||
keyMode = "vi";
|
||||
historyLimit = 10000;
|
||||
clock24 = true;
|
||||
shortcut = "h";
|
||||
baseIndex = 1;
|
||||
plugins = [ pkgs.tmuxPlugins.dracula ];
|
||||
extraConfig = ''
|
||||
set -g @dracula-plugins "cpu-usage ram-usage network-bandwidth time"
|
||||
set -g mouse on
|
||||
#set -g @dracula-show-powerline true
|
||||
|
||||
# More friendly split pane
|
||||
bind-key s split-window -h
|
||||
bind-key v split-window -v
|
||||
unbind '"'
|
||||
unbind '%'
|
||||
|
||||
# moving between windows with vim movement keys
|
||||
bind m select-pane -L
|
||||
bind n select-pane -D
|
||||
bind e select-pane -U
|
||||
bind i select-pane -R
|
||||
|
||||
# moving between windows with vim movement keys
|
||||
bind -r C-m select-window -t :-
|
||||
bind -r C-i select-window -t :+
|
||||
|
||||
# Vim style X clipboard integration↲
|
||||
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel "xsel -i -p && xsel -o -p | xsel -i -b"
|
||||
bind-key P run "xsel -o | tmux load-buffer - ; tmux paste-buffer"
|
||||
|
||||
# resize panes with vim movement keys
|
||||
bind -r M resize-pane -L 5
|
||||
bind -r N resize-pane -D 5
|
||||
bind -r E resize-pane -U 5
|
||||
bind -r I resize-pane -R 5
|
||||
|
||||
# bindings for pane joining and breaking
|
||||
bind < split-window -h \; choose-window 'kill-pane ; join-pane -hs %%'
|
||||
bind > break-pane -d
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user