{ pkgs, ... }: { environment.systemPackages = with pkgs; [ lsd fzf fishPlugins.done fishPlugins.fzf-fish fishPlugins.tide ]; programs.fish = { enable = true; interactiveShellInit = '' # disable greeting set fish_greeting # disable command-not-found function fish_command_not_found echo "Command not found" end # tmux stuff function tn set session_name (if test (count $argv) -eq 0 basename (pwd) else echo $argv[1] end) # Check if session exists tmux has-session -t "$session_name" >/dev/null 2>&1 if test $status -eq 0 tmux attach-session -t "$session_name" else tmux new-session -s "$session_name" end end # tmux completion function __tmux_sessions tmux list-sessions -F '#S' 2>/dev/null end # Remove default file argument behavior complete -c tn -f # Add our custom session name completions complete -c tn -a '(__tmux_sessions)' -d 'tmux session' ''; shellAliases = { ls = "lsd --icon=never"; l = "ls -l"; ll = "ls -la"; vim = "nvim"; grep = "grep --color=auto"; }; }; }