nixos-config/modules/home/all/tmux.nix
2024-09-28 18:01:53 -04:00

54 lines
1.5 KiB
Nix

{ pkgs, config, ... }:
{
programs.tmux = {
enable = true;
shortcut = "a";
# aggressiveResize = true; -- Disabled to be iTerm-friendly
baseIndex = 1;
newSession = true;
# Stop tmux+escape craziness.
escapeTime = 0;
# Force tmux to use /tmp for sockets (WSL2 compat)
secureSocket = false;
plugins = with pkgs; [
tmuxPlugins.better-mouse-mode
];
extraConfig = ''
# https://old.reddit.com/r/tmux/comments/mesrci/tmux_2_doesnt_seem_to_use_256_colors/
set -g default-terminal "xterm-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
set-environment -g COLORTERM "truecolor"
# Mouse works as expected
set-option -g mouse on
# easy-to-remember split pane commands
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
'';
};
programs.tmate = {
enable = true;
# FIXME: This causes tmate to hang.
# extraConfig = config.xdg.configFile."tmux/tmux.conf".text;
};
home.packages = [
# Open tmux for current project.
(pkgs.writeShellApplication {
name = "pux";
runtimeInputs = [ pkgs.tmux ];
text = ''
PRJ="''$(zoxide query -i)"
echo "Launching tmux for ''$PRJ"
set -x
cd "''$PRJ" && \
exec tmux -S "''$PRJ".tmux attach
'';
})
];
}