config/modules/shell/tmux.nix

55 lines
1.5 KiB
Nix
Raw Normal View History

{pkgs, ...}: let
dreamsofcode-io-catppuccin-tmux =
pkgs.tmuxPlugins.mkTmuxPlugin
{
pluginName = "catppuccin";
version = "unstable-2023-01-06";
src = pkgs.fetchFromGitHub {
owner = "dreamsofcode-io";
repo = "catppuccin-tmux";
rev = "b4e0715356f820fc72ea8e8baf34f0f60e891718";
sha256 = "sha256-FJHM6LJkiAwxaLd5pnAoF3a7AE1ZqHWoCpUJE0ncCA8=";
};
};
in {
programs.tmux = {
enable = true;
shell = "${pkgs.zsh}/bin/zsh";
historyLimit = 100000;
plugins = with pkgs; [
{
plugin = dreamsofcode-io-catppuccin-tmux;
extraConfig = "";
}
tmuxPlugins.sensible
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.yank
];
extraConfig = ''
set-option -sa terminal-overrides ",xterm*:Tc"
set -g mouse on
set -g @catppuccin-flavor 'macchiato'
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
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
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -v -c "#{pane_current_path}"
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
bind -n M-H previous-window
bind -n M-L next-window
'';
};
}