[packages] added tmux
This commit is contained in:
parent
4c4a315440
commit
524ecc7cdd
@ -11,6 +11,7 @@
|
|||||||
./mpv
|
./mpv
|
||||||
./ssh
|
./ssh
|
||||||
./theme
|
./theme
|
||||||
|
./tmux
|
||||||
./virt-manager
|
./virt-manager
|
||||||
./xdg
|
./xdg
|
||||||
./zsh
|
./zsh
|
||||||
|
1
nix/home/tmux/default.nix
Normal file
1
nix/home/tmux/default.nix
Normal file
@ -0,0 +1 @@
|
|||||||
|
{ ... }: { imports = [ ./tmux.nix ]; }
|
81
nix/home/tmux/tmux.nix
Normal file
81
nix/home/tmux/tmux.nix
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
# tmux
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# settings
|
||||||
|
clock24 = true;
|
||||||
|
historyLimit = 20000;
|
||||||
|
keyMode = "vi";
|
||||||
|
mouse = true;
|
||||||
|
|
||||||
|
# extra config
|
||||||
|
extraConfig = ''
|
||||||
|
# override colors
|
||||||
|
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||||
|
|
||||||
|
# start windows and panes at 1, not 0
|
||||||
|
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
|
||||||
|
|
||||||
|
# use alt-arrow keys without prefix key to switch panes
|
||||||
|
bind -n M-Left select-pane -L
|
||||||
|
bind -n M-Right select-pane -R
|
||||||
|
bind -n M-Up select-pane -U
|
||||||
|
bind -n M-Down select-pane -D
|
||||||
|
|
||||||
|
# shift arrow to switch windows
|
||||||
|
bind -n S-Left previous-window
|
||||||
|
bind -n S-Right next-window
|
||||||
|
|
||||||
|
# keybindings
|
||||||
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||||
|
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||||
|
|
||||||
|
# split windows
|
||||||
|
bind '"' split-window -v -c "#{pane_current_path}"
|
||||||
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
# configure plugins
|
||||||
|
plugins = with pkgs; [ {
|
||||||
|
|
||||||
|
# resurrect
|
||||||
|
plugin = tmuxPlugins.resurrect;
|
||||||
|
extraConfig = "set -g @resurrect-strategy-nvim 'session'";
|
||||||
|
|
||||||
|
} {
|
||||||
|
|
||||||
|
# continuum
|
||||||
|
plugin = tmuxPlugins.continuum;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @continuum-save-interval '60'
|
||||||
|
'';
|
||||||
|
|
||||||
|
} {
|
||||||
|
|
||||||
|
# vim-tmux-navigator
|
||||||
|
plugin = tmuxPlugins.vim-tmux-navigator;
|
||||||
|
|
||||||
|
} {
|
||||||
|
|
||||||
|
# catppuccin theme
|
||||||
|
plugin = tmuxPlugins.catppuccin;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @catppuccin_flavour 'mocha'
|
||||||
|
'';
|
||||||
|
} {
|
||||||
|
|
||||||
|
# yank
|
||||||
|
plugin = tmuxPlugins.yank;
|
||||||
|
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
Reference in New Issue
Block a user