{ pkgs, inputs, ... }: { programs.tmux = { enable = true; keyMode = "vi"; escapeTime = 0; historyLimit = 500000; aggressiveResize = true; terminal = "tmux-256color"; extraConfig = '' # all the colors we can get set-option -g default-terminal "tmux-256color" # emacs keys in status set -g status-keys emacs # set focus events set-option -g focus-events on # curlies set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0 # title set -g set-titles on set -g set-titles-string "#T" # mouse set -g mouse on # theming # modes setw -g clock-mode-colour white # panes set -g pane-border-style 'fg=colour244' set -g pane-active-border-style 'fg=colour03' #bind b break-pane -d # statusbar set -g status-position bottom set -g status-justify left set -g status-style 'bg=default fg=colour15' set -g status-right '[#S][@#H][%H:%M][%Y-%m-%d]' set -g status-left '(^_^)' #set -g status-right-length 50 set -g status-left-length 40 setw -g window-status-current-style 'fg=brightgreen bg=default bold' setw -g window-status-current-format ' #I#[fg=colour15]:#W#[fg=brightgreen]#F ' setw -g window-status-style 'fg=gray bg=default' setw -g window-status-format ' #I#[fg=colour15]:#W#[fg=gray bold]#F ' setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold' # messages set -g message-style 'fg=black bg=white bold' # copy to clipboard support run-shell ${inputs.self.inputs.tmux-yank}/yank.tmux ''; }; programs.zsh.interactiveShellInit = '' # create new tmux session with $1 as a name # if no arguments supplied, use name of current dir function tn { if [ $# -eq 0 ] then tmux new-session -s $(basename $(pwd)) else tmux new-session -s $1 fi } ''; environment.shellAliases = { tl = "tmux list-sessions"; ta = "tmux attach -t"; }; environment.systemPackages = [ pkgs.screen ]; programs.screen.screenrc = '' defscrollback 10000 startup_message off hardstatus on hardstatus alwayslastline hardstatus string "%w" ''; }