From cd884602d97b6601e2cf1acc7042424b8c21ec6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikodem=20Rabuli=C5=84ski?= Date: Tue, 9 Jan 2024 15:33:18 +0100 Subject: [PATCH] Add fish wrapper and make it my default shell --- modules/system/common/default.nix | 13 +++++++++++++ wrappers/default.nix | 16 +++++++++++++--- wrappers/fish/config.fish | 9 +++++++++ wrappers/fish/default.nix | 15 +++++++++++++++ 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 wrappers/fish/config.fish create mode 100644 wrappers/fish/default.nix diff --git a/modules/system/common/default.nix b/modules/system/common/default.nix index 9938d9c..c44861e 100644 --- a/modules/system/common/default.nix +++ b/modules/system/common/default.nix @@ -3,8 +3,11 @@ configurationName, lib, pkgs, + inputs', + username, ... }: let + inherit (inputs'.settei.packages) fish; sharedConfig = { settei.user.config = { programs.git = { @@ -22,7 +25,17 @@ push.followTags = true; }; }; + + programs.fish.enable = true; }; + + programs.fish.enable = true; + environment.shells = [fish]; + users.users.${username}.shell = 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;})]; }; linuxConfig = lib.optionalAttrs isLinux { diff --git a/wrappers/default.nix b/wrappers/default.nix index b2d1a1c..06051b2 100644 --- a/wrappers/default.nix +++ b/wrappers/default.nix @@ -18,20 +18,30 @@ ./starship ./helix ./rash + ./fish ]; }; all-packages = wrapped.config.build.packages; + + fish-base = pkgs.fish; + fish-wrapped = all-packages.fish; + fish = pkgs.symlinkJoin { + inherit (fish-base) name meta passthru; + paths = [ fish-wrapped fish-base ]; + }; + base-packages = pkgs.symlinkJoin { name = "settei-base"; - paths = with all-packages; [ - helix + paths = [ + all-packages.helix + fish ]; }; in { packages = all-packages // { - inherit base-packages; + inherit base-packages fish; }; }; } diff --git a/wrappers/fish/config.fish b/wrappers/fish/config.fish new file mode 100644 index 0000000..39b6159 --- /dev/null +++ b/wrappers/fish/config.fish @@ -0,0 +1,9 @@ +# Abbreviations +abbr --add --global -- flake-update 'nix flake lock --update-input' +abbr --add --global -- ns 'nix shell' +abbr --add --global -- nss 'nix search' +abbr --add --global -- vim hx + +# Aliases +alias cat bat +alias l 'eza -lah --group-directories-first --icons' diff --git a/wrappers/fish/default.nix b/wrappers/fish/default.nix new file mode 100644 index 0000000..598c331 --- /dev/null +++ b/wrappers/fish/default.nix @@ -0,0 +1,15 @@ +{lib, pkgs, ...}: { + # TODO: Fix once https://github.com/viperML/wrapper-manager/issues/14 is resolved + wrappers.fish = { + basePackage = pkgs.runCommandNoCC "fish-binary" {} '' + install -D -m555 ${lib.getExe pkgs.fish} "$out/bin/fish" + ''; + + prependFlags = [ + "-C" + "source ${./config.fish}" + ]; + + pathAdd = with pkgs; [bat eza]; + }; +}