diff --git a/modules/system/common/default.nix b/modules/system/common/default.nix index 5b07975..881966c 100644 --- a/modules/system/common/default.nix +++ b/modules/system/common/default.nix @@ -7,7 +7,6 @@ username, ... }: let - inherit (inputs'.settei.packages) fish; sharedConfig = { settei.user.config = { programs.git = { @@ -30,12 +29,11 @@ }; programs.fish.enable = true; - environment.shells = [fish]; - users.users.${username}.shell = fish; + users.users.${username}.shell = pkgs.fish; # NixOS' fish module doesn't allow setting what package to use for fish, # so I need to override the fish package. - nixpkgs.overlays = [(_: _: {inherit fish;})]; + nixpkgs.overlays = [(_: _: {inherit (inputs'.settei.packages) fish;})]; }; linuxConfig = lib.optionalAttrs isLinux { diff --git a/wrappers/fish/config.fish b/wrappers/fish/config.fish index 39b6159..1227703 100644 --- a/wrappers/fish/config.fish +++ b/wrappers/fish/config.fish @@ -1,3 +1,7 @@ +# Set up path +fish_add_path --path --prepend '@bat@/bin' +fish_add_path --path --prepend '@eza@/bin' + # Abbreviations abbr --add --global -- flake-update 'nix flake lock --update-input' abbr --add --global -- ns 'nix shell' diff --git a/wrappers/fish/default.nix b/wrappers/fish/default.nix index 3df83c5..5ddb147 100644 --- a/wrappers/fish/default.nix +++ b/wrappers/fish/default.nix @@ -4,16 +4,22 @@ ... }: { # TODO: Fix once https://github.com/viperML/wrapper-manager/issues/14 is resolved - wrappers.fish = { - basePackage = pkgs.runCommandNoCC "fish-binary" {} '' + wrappers.fish = let + inherit (pkgs) runCommandNoCC; + in { + basePackage = runCommandNoCC "fish-binary" {} '' install -D -m555 ${lib.getExe pkgs.fish} "$out/bin/fish" ''; + extraWrapperFlags = "--inherit-argv0"; - prependFlags = [ + prependFlags = let + # Can't use pathAdd because fish used as login shell will ignore the variables the wrapper sets up + config-fish = runCommandNoCC "config.fish" { inherit (pkgs) bat eza; } '' + substituteAll ${./config.fish} "$out" + ''; + in [ "-C" - "source ${./config.fish}" + "source ${config-fish}" ]; - - pathAdd = with pkgs; [bat eza]; }; }