{ config, lib, pkgs, ... }: let nmux = pkgs.writeShellScriptBin "nmux" '' export PATH="${lib.makeBinPath [ pkgs.inotify-tools pkgs.psmisc ]}:$PATH" exec ${pkgs.fish}/bin/fish --no-config ${./nmux.fish} "$@" ''; in { home.packages = [ nmux ]; # `nvim ARGS` typed in an interactive fish shell opens a new nmux session # running nvim with ARGS. Interactive-only (HM wraps this in # `status is-interactive`), so scripts, $EDITOR/$VISUAL consumers, and nmux # itself (fish --no-config above) get the real binary. `command nvim` bypasses. programs.fish.interactiveShellInit = '' function nvim --wraps nvim --description 'nvim in a new nmux session' nmux -- $argv end ''; }