diff --git a/modules/home-manager/fish.nix b/modules/home-manager/fish.nix index 0506c6a..1f50e7d 100644 --- a/modules/home-manager/fish.nix +++ b/modules/home-manager/fish.nix @@ -1,9 +1,5 @@ -{ pkgs, ... }: +{ pkgs, lib, ... }: { - home.packages = with pkgs; [ - fishPlugins.tide - ]; - programs.fish = { enable = true; interactiveShellInit = '' @@ -13,11 +9,19 @@ set -g fish_key_bindings fish_vi_key_bindings # accept completion with ctrl-y bind --mode insert \cy forward-char - # initialize prompt - # tide configure --auto --style=Lean --prompt_colors='16 colors' --show_time=No --lean_prompt_height='Two lines' --prompt_connection=Disconnected --prompt_spacing=Compact --icons='Few icons' --transient=Yes ''; shellAbbrs = { la = "ls -lahH"; }; + plugins = with pkgs.fishPlugins; [ + { + name = "tide"; + inherit (tide) src; + } + ]; }; + + home.activation.configure-tide = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + ${pkgs.fish}/bin/fish -c "tide configure --auto --style=Lean --prompt_colors='16 colors' --show_time=No --lean_prompt_height='Two lines' --prompt_connection=Disconnected --prompt_spacing=Compact --icons='Few icons' --transient=Yes" + ''; } diff --git a/modules/nixos/fish.nix b/modules/nixos/fish.nix index 1093472..928d5d0 100644 --- a/modules/nixos/fish.nix +++ b/modules/nixos/fish.nix @@ -1,5 +1,13 @@ { pkgs, ... }: { + programs.bash = { + interactiveShellInit = '' + if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] + then + shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" + exec ${pkgs.fish}/bin/fish $LOGIN_OPTION + fi + ''; + }; programs.fish.enable = true; - users.defaultUserShell = pkgs.fish; }