{ pkgs, ... }: { programs.tmux = { enable = true; aggressiveResize = true; sensibleOnTop = false; historyLimit = 2000; tmuxinator.enable = true; mouse = false; baseIndex = 1; disableConfirmationPrompt = true; terminal = "tmux-256color"; keyMode = "vi"; plugins = [ pkgs.tmuxPlugins.battery pkgs.tmuxPlugins.cpu # pkgs.tmuxPlugins.vim-tmux-navigator { plugin = pkgs.tmuxPlugins.online-status; extraConfig = '' set -g @online_icon "ok" set -g @offline_icon "offline!" ''; } { plugin = pkgs.tmuxPlugins.dracula; extraConfig = '' set -g @dracula-plugins "cpu-usage network battery time" set -g @dracula-border-contrast true set -g @dracula-refresh-rate 10 set -g @dracula-show-left-icon session set -g @dracula-border-contrast true set -g @dracula-show-powerline true set -g @dracula-synchronize-panes-label "Sync" set -g @dracula-show-flags true set -g @dracula-show-timezone false set -g @dracula-fixed-location "Katy, Texas" set -g @dracula-show-location false ''; } ]; extraConfig = '' # left_sep='' # right_sep='' # right_alt_sep='' # set -g status-right " online: #{online_status}  BAT: #{battery_graph} #{battery_remain}  CPU: #{cpu_icon} #{cpu_percentage}  %Y-%m-%d %l:%M " bind '~' split-window "exec btop" bind - split-window -v -c "#{pane_current_path}" bind | split-window -h -c "#{pane_current_path}" bind -n C-1 select-window -t 11 bind -n C-2 select-window -t 12 bind -n C-3 select-window -t 13 bind -n C-4 select-window -t 14 bind -n C-left swap-window -t -1 bind -n C-right swap-window -t +1 bind -n S-down new-window bind -n S-left prev bind -n S-right next bind 0 select-window -t 10 bind 1 select-window -t 1 bind 2 select-window -t 2 bind 3 select-window -t 3 bind 4 select-window -t 4 bind 5 select-window -t 5 bind 6 select-window -t 6 bind 7 select-window -t 7 bind 8 select-window -t 8 bind 9 select-window -t 9 bind C-0 select-window -t 20 bind C-5 select-window -t 15 bind C-6 select-window -t 16 bind C-7 select-window -t 17 bind C-8 select-window -t 18 bind C-9 select-window -t 19 bind C-c run "tmux show-buffer | wl-copy" bind C-g display-popup -d "#{pane_current_path}" -w 80% -h 80% -E "lazygit" bind C-j display-popup -E "tmux list-sessions | sed -E 's/:.*$//' | fzf --reverse | xargs tmux switch-client -t" bind C-o display-popup -w 90% -h 90% -E "ttmenu" bind C-n display-popup -E 'bash -i -c "read -p "Session name: \" name; tmux new-session -d -s \$name && tmux switch-client -t \$name"' bind C-r display-popup -d "#{pane_current_path}" -w 90% -h 90% -E "lf" bind C-n neww -n net "exec $TEXTWEB" bind C-t neww -n vit "exec vit" bind C-v run "tmux set-buffer -- \"$(wl-paste)\"; tmux paste-buffer" bind F1 select-window -t 11 bind F10 select-window -t 20 bind F2 select-window -t 12 bind F3 select-window -t 13 bind F4 select-window -t 14 bind F5 select-window -t 15 bind F6 select-window -t 16 bind F7 select-window -t 17 bind F8 select-window -t 18 bind F9 select-window -t 19 # bind I neww -n khal "exec ikhal" bind I display-popup -w 90% -h 90% -E "ikhal" bind K split-window -h "exec ikhal" bind S split-window -v -l 5 bind T display-popup -d "#{pane_current_path}" -w 90% -h 90% -E "bash" bind Tab choose-window bind ^b last-window bind e setw synchronize-panes bind g select-layout tiled bind o select-pane -t :.- bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; new-window -n "urlscan" '$SHELL -c "urlscan -c -d < /tmp/tmux-buffer"' set -g bell-action any set -g buffer-limit 9 set -g display-panes-active-colour red set -g display-panes-colour blue set -g display-panes-time 1000 set -g display-time 750 set -g focus-events on set -g lock-after-time 120 set -g lock-command 'tty | grep -q "^/dev/tty" && vlock' set -g renumber-windows off set -g set-titles on set -g set-titles-string "#S:#I:#W - "#T"" set -g status on set -g status-interval 0 set -g status-interval 15 set -g status-justify left set -g status-position top set -g visual-activity off set -g visual-bell off set -sa terminal-features ',tmux-256color:RGB' # set -sa terminal-overrides ",tmux-256color:RGB" set -sa terminal-overrides ",xterm*:Tc" set -sg escape-time 0 ''; }; xdg.configFile."tmuxinator" = { recursive = true; source = ./files/tmuxinator; target = "tmuxinator"; }; }