feat: replace zellij with tmux for terminal multiplexing

Switch from zellij to tmux with vi keybindings, mouse support, and custom prefix (Ctrl-a). Updates auto-start logic in zsh to launch tmux instead of zellij.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-03-12 21:34:28 -04:00
parent 9329547aab
commit 02c3366bff
+26 -11
View File
@@ -81,9 +81,9 @@
if [ -n "$NIX_PROJECT_SHELL" ]; then
PROMPT="($NIX_PROJECT_SHELL)$PROMPT"
fi
# Only start Zellij if we're in an interactive terminal
if [ -z "$ZELLIJ" ] && [ "$TERM" != "linux" ]; then
exec zellij
# Only start tmux if we're in an interactive terminal
if [ -z "$TMUX" ] && [ "$TERM" != "linux" ]; then
exec tmux
fi
'';
@@ -102,16 +102,31 @@
};
};
# Enable zellij (terminal multiplexing)
programs.zellij = {
# Enable tmux (terminal multiplexing)
programs.tmux = {
enable = true;
# Optional: write your own config to ~/.config/zellij/config.kdl
settings = {
theme = "default";
pane_frames = true;
default_layout = "compact";
};
# Basic tmux configuration
terminal = "screen-256color";
historyLimit = 10000;
keyMode = "vi";
mouse = true;
extraConfig = ''
# Set prefix to Ctrl-a instead of Ctrl-b
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Reload config file
bind r source-file ~/.config/tmux/tmux.conf
'';
};
# Neovim management