{ config, lib, pkgs, ... }: let tide_conf = builtins.readFile ./tide_config.fish; in { programs.zoxide.enableFishIntegration = true; programs.kitty.shellIntegration.enableFishIntegration = true; programs.fzf = { enable = true; enableFishIntegration = false; }; programs.fish = { enable = true; plugins = [ { # https://github.com/lilyball/nix-env.fish name = "nix-env"; src = pkgs.fetchFromGitHub { owner = "lilyball"; repo = "nix-env.fish"; rev = "7b65bd228429e852c8fdfa07601159130a818cfa"; sha256 = "sha256-RG/0rfhgq6aEKNZ0XwIqOaZ6K5S4+/Y5EEMnIdtfPhk="; }; } { # https://github.com/IlanCosman/tide name = "tide"; src = pkgs.fetchFromGitHub { owner = "IlanCosman"; repo = "tide"; rev = "13fa55ef109009e04e6e5fabda0d0e662b4e6315"; sha256 = "sha256-+6LdcFLqDzUcCmBoKO4LDH5+5odqVqUb1NmEVNMEMjs="; }; } { # https://github.com/PatrickF1/fzf.fish name = "fzf"; src = pkgs.fishPlugins.fzf-fish.src; } ]; shellInit = '' set --universal fish_greeting set -g -x EDITOR "vim" set -g -x ALTERNATE_EDITOR "vim" set -g -x TERMINAL "kitty" set -g -x LESS "--ignore-case --QUIET --RAW-CONTROL-CHARS" set -g -x MANPAGER "sh -c 'col -bx | bat -l man -p'" set -g -x MANROFFOPT "-c" set -g -x BAT_THEME "ansi" fish_add_path --path ~/.dotfiles/bin ~/.local/bin ~/bin # If running under kitty, fake the term for ssh to avoid # having to install terminfo on remote machine function ssh --wraps ssh if test $TERM = xterm-kitty set --function --export TERM xterm-256color end command ssh $argv end if test -f $HOME/.cargo/env.fish source "$HOME/.cargo/env.fish" end ${builtins.readFile ./tide_config.fish} ''; shellAliases = { ec = "emacsclient -n --alternate-editor=emacs"; pubip = "curl icanhazip.com"; redesktop = "kquitapp5 plasmashell && kstart5 plasmashell"; pulsefix = "pulseaudio --kill; pulseaudio --start"; }; }; }