2020-02-23 23:29:32 +01:00
|
|
|
{ pkgs, ... }:
|
2020-01-06 15:54:26 +01:00
|
|
|
|
|
|
|
# TODO: Is it appropriate to put programming language dependencies here? Should
|
|
|
|
# I have a bin dependency for every fish `abbr` and `alias` that I use? What
|
|
|
|
# makes the most sense?
|
|
|
|
|
|
|
|
# TODO: Some of the abbreviations / aliases depend on binaries and some depend
|
|
|
|
# on files (e.g. ~/.config/nvim/init.vim). How should I handle the file
|
|
|
|
# dependencies?
|
|
|
|
|
|
|
|
# TODO: Support symlinking config.fish to ~/.config/fish/config.fish using Nix.
|
|
|
|
|
|
|
|
let
|
|
|
|
fishBinPath = pkgs.lib.strings.makeBinPath (with pkgs; [
|
|
|
|
# TODO: Support fasd instead of autojump.
|
|
|
|
# fasd
|
|
|
|
direnv
|
|
|
|
autojump
|
|
|
|
fzf
|
|
|
|
fd
|
|
|
|
xclip
|
|
|
|
bat
|
|
|
|
neovim
|
|
|
|
ripgrep
|
|
|
|
sdcv
|
|
|
|
exa
|
|
|
|
pass
|
|
|
|
networkmanager
|
|
|
|
google-chrome
|
|
|
|
docker
|
|
|
|
elixir
|
|
|
|
clojure
|
|
|
|
gnupg
|
|
|
|
git
|
|
|
|
tmux
|
|
|
|
# This is not that same as `hub`.
|
|
|
|
# git-hub
|
|
|
|
mercurial
|
|
|
|
stack
|
|
|
|
kubernetes
|
|
|
|
circleci-cli
|
|
|
|
nix # Really?
|
|
|
|
apt # Really?
|
|
|
|
pacman # Really?
|
|
|
|
]);
|
|
|
|
# TODO: It's difficult to test if the `--init-command` is working since fish
|
|
|
|
# persists functions, abbreviations, aliases between sessions so it's easy to
|
|
|
|
# get tricked by false-positives.
|
|
|
|
in pkgs.writeShellScriptBin "wpcarros-fish" ''
|
|
|
|
export PATH="${fishBinPath}:$PATH"
|
|
|
|
exec ${pkgs.fish}/bin/fish --init-command 'source ${ ./functions.fish }'
|
|
|
|
''
|