diff --git a/lyrathorpe/home/shell.nix b/lyrathorpe/home/shell.nix index 0403dc9..f9ce679 100644 --- a/lyrathorpe/home/shell.nix +++ b/lyrathorpe/home/shell.nix @@ -31,9 +31,7 @@ theme = "robbyrussell"; }; syntaxHighlighting.enable = true; - # Prefix the prompt with the hostname over SSH. The graphical autostart - # (exec sway on tty1) lives in ./desktop.nix so it never runs on headless - # hosts. + # Prefix the prompt with the hostname over SSH. initContent = lib.mkOrder 1500 '' if [ "$SSH_CLIENT" ] || [ "$SSH_TTY" ]; then export PS1="%M $PS1" @@ -50,14 +48,33 @@ terminal = "tmux-direct"; newSession = true; keyMode = "vi"; - historyLimit = 50000; + historyLimit = 500000; mouse = true; + # `reverseSplit = true` already binds s -> vertical and v -> horizontal + # split (the dotfiles' vim-style splits). extraConfig = '' + # Run a non-login shell in new panes/windows. + set -g default-command "''${SHELL}" + + # Drop the stock split keys in favour of the s/v binds above. + unbind % + unbind '"' + # Alt+Arrow pane navigation bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D + + # Tell tmux which capabilities the foot terminal supports, so truecolor, + # synchronised output, the system clipboard (OSC 52), window titles and + # cursor styling all pass through. + set -as terminal-features ",foot*:RGB" + set -as terminal-features ",foot*:sync" + set -as terminal-features ",foot*:clipboard" + set -as terminal-features ",foot*:title" + set -as terminal-features ",foot*:ccolour" + set -as terminal-features ",foot*:cstyle" ''; }; }