add tmux module

This commit is contained in:
Kabbone 2022-10-08 20:21:27 +02:00
parent ab1ad05d20
commit be28f74cac

57
modules/shell/tmux.nix Normal file
View 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
'';
};
};
}