From 02c3366bffc5651e4ba148a85aaf12d2f7e15a25 Mon Sep 17 00:00:00 2001 From: 0xWheatyz Date: Thu, 12 Mar 2026 21:34:28 -0400 Subject: [PATCH] feat: replace zellij with tmux for terminal multiplexing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- home.nix | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/home.nix b/home.nix index d9f16ff..15631d2 100644 --- a/home.nix +++ b/home.nix @@ -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