{ config, options, lib, pkgs, ... }: let tmuxConf = config.modules.desktop.apps.tmux; in { options.modules.desktop.apps.tmux = { enable = lib.mkOption { type = lib.types.bool; default = true; }; }; config = lib.mkIf (tmuxConf.enable) { home.manager.programs.tmux = { enable = true; terminal = "tmux-256color"; historyLimit = 10000; plugins = with pkgs.tmuxPlugins; [ catppuccin vim-tmux-navigator sensible yank ]; shell = "${pkgs.zsh}/bin/zsh"; extraConfig = '' set-option -sa terminal-overrides ",xterm*:Tc" set -g mouse on 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 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 -h -c ''${pane_current_path}" ''; }; }; }