Signed-off-by: Bloxx12 <charlie@charlieroot.dev> Change-Id: I6a6a69641c36f9763e104087a559c148d0449f00
45 lines
1.1 KiB
Nix
45 lines
1.1 KiB
Nix
# This shell setup was originally inspired by sioodmy.
|
|
# Some further cool tricks, like using vendor_conf.d to avoid having
|
|
# to build fish myself, are taken from viperml's setup.
|
|
{ pkgs, ... }:
|
|
let
|
|
inherit (pkgs) lib;
|
|
inherit (lib.strings) concatStringsSep;
|
|
inherit (lib.attrsets) mapAttrsToList;
|
|
|
|
toml = pkgs.formats.toml { };
|
|
starship-config = import ./starship.nix;
|
|
aliases = import ./aliases.nix { inherit pkgs; };
|
|
vendorConf = "share/fish/vendor_conf.d";
|
|
|
|
fishinit = import ./fishinit.nix {
|
|
inherit
|
|
pkgs
|
|
aliasesStr
|
|
vendorConf
|
|
;
|
|
};
|
|
|
|
aliasesStr = mapAttrsToList (k: v: "alias ${k}=\"${v}\"") aliases |> concatStringsSep "\n";
|
|
|
|
packages = import ./packages.nix pkgs;
|
|
in
|
|
(pkgs.symlinkJoin {
|
|
name = "fish";
|
|
paths = [ pkgs.fish ] ++ packages;
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
postBuild = ''
|
|
wrapProgram $out/bin/fish \
|
|
--set STARSHIP_CONFIG "${toml.generate "starship.toml" starship-config}" \
|
|
--prefix XDG_DATA_DIRS : "${
|
|
lib.makeSearchPathOutput "out" "share" [
|
|
fishinit
|
|
]
|
|
}"
|
|
'';
|
|
}).overrideAttrs
|
|
(_: {
|
|
passthru = {
|
|
shellPath = "/bin/fish";
|
|
};
|
|
})
|