dotfiles/home/tmux/default.nix

58 lines
1.6 KiB
Nix

{ inputs, config, pkgs, ... }:
let
tmux-themepack = pkgs.tmuxPlugins.mkTmuxPlugin {
pluginName = "tmux-themepack";
rtpFilePath = "themepack.tmux";
version = "unstable-2019-12-22";
src = pkgs.fetchFromGitHub {
owner = "jimeh";
repo = "tmux-themepack";
rev = "7c59902f64dcd7ea356e891274b21144d1ea5948";
sha256 = "sha256-c5EGBrKcrqHWTKpCEhxYfxPeERFrbTuDfcQhsUAbic4=";
};
};
in {
programs.tmux = {
shell = "${pkgs.zsh}/bin/zsh";
terminal = "screen-256color";
enable = true;
clock24 = true;
shortcut = "a";
escapeTime = 0;
newSession = true;
mouse = true;
keyMode = "vi";
plugins = [
pkgs.tmuxPlugins.vim-tmux-navigator
pkgs.tmuxPlugins.better-mouse-mode
pkgs.tmuxPlugins.yank
{
plugin = tmux-themepack;
extraConfig = ''
set -g @themepack "powerline/double/blue"
set-window-option -g status-left " #S "
set-window-option -g status-right " #{prefix_highlight} \"#(hostname)\" %H:%M %d-%b-%y "
set-window-option -g window-status-format " #I: #W "
set-window-option -g window-status-current-format " #I: #W "
'';
}
];
extraConfig = ''
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
unbind '"'
unbind %
set-option -g xterm-keys on
'';
};
}