{ lib, config, ... }: let name = "tmux"; cfg = config.nixowos.defaults.${name}; in { options.nixowos.defaults.${name}.enable = lib.mkEnableOption name; config = lib.mkIf cfg.enable { programs.tmux = lib.mkDefault { # this is a sin committed for ergonomics # since "1" and "0" are quite far apart on most keyboards baseIndex = 1; keyMode = "vi"; # https://unix.stackexchange.com/questions/608142/whats-the-effect-of-escape-time-in-tmux escapeTime = 50; clock24 = true; extraConfig = /* sh */ '' set -g mouse on # open new shells in the same working directory bind '"' split-window -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" ###### STYLING set -g status-style 'fg=pink' setw -g window-status-style 'fg=pink bg=black' setw -g window-status-format ' #I #[fg=white]#W #[fg=pink]#F ' setw -g window-status-current-style 'fg=black bg=pink' setw -g window-status-current-format ' #I #W #F ' set -g message-style 'fg=black bg=pink' set -g mode-style 'fg=black bg=pink' set -g pane-border-style 'fg=grey' set -g pane-active-border-style 'fg=pink' ''; }; }; }