Use fish only as login shell and keep bash as system shell

This commit is contained in:
2025-12-15 14:59:45 +01:00
parent a938cf7abe
commit 8c048ac3c2
2 changed files with 20 additions and 8 deletions
+11 -7
View File
@@ -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"
'';
}
+9 -1
View File
@@ -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;
}