refactor(shell): move bash->nushell wrapper to common

Default login shell is now bash for all hosts; interactive bash
sessions exec into nushell via /etc/bashrc. A ~/.bashrc sourcing
/etc/bashrc covers non-login interactive shells (terminal emulators).
Non-interactive SSH exec (mosh app bootstrap, scripts) keeps POSIX
shell semantics. Reverts the kratos-host-specific overlay from
765ae15.
This commit is contained in:
2026-08-23 14:35:18 +02:00
parent 765ae1581f
commit 1ba70151ef
4 changed files with 13 additions and 20 deletions
-6
View File
@@ -70,12 +70,6 @@
# Define a user account. Don't forget to set a password with passwd.
# bash as login shell wrapper: non-interactive SSH clients (e.g. the
# Android Mosh app bootstrap, which runs `command -v mosh-server`)
# need POSIX shell semantics. Interactive login sessions exec into
# nushell automatically — see programs.bash in ./programs.nix.
users.users.m3tam3re.shell = pkgs.bashInteractive;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [neovim git];
-13
View File
@@ -32,19 +32,6 @@
];
};
programs.fish.enable = true;
# Login shell is bash (see configuration.nix), but interactive login
# sessions exec straight into nushell. Non-interactive SSH commands
# (e.g. the Android Mosh app bootstrap `command -v mosh-server`)
# stay in bash where POSIX shell semantics work.
programs.bash = {
enable = true;
interactiveShellInit = ''
if [[ $- == *i* ]] && shopt -q login_shell && [[ -z "''${M3_SHELL_TO_NU:-}" ]]; then
export M3_SHELL_TO_NU=1
exec ${pkgs.nushell}/bin/nu --login
fi
'';
};
programs.thunar = {
enable = true;
plugins = with pkgs; [thunar-archive-plugin thunar-volman];