fix(kratos): make Android Mosh app work with nushell login shell

The old Android Mosh app discovers mosh-server via POSIX shell idioms
(command -v / type) through the user's login shell. Nushell has no
command/type builtins and which prints a table, so the app reported
'mosh-server Not Found' on kratos (user shell: nu) while working on
hermes (app logs in as bash user).

Fix: use bash as login shell on kratos and exec into nushell for
interactive login sessions via programs.bash.interactiveShellInit.
Non-interactive SSH exec (app bootstrap, Termux mosh) stays in bash
where POSIX semantics work.

Also fixes the stale nh flake path (p/nixos -> p/NIX).
This commit is contained in:
2026-08-23 14:24:43 +02:00
parent 1610a5ac7d
commit 765ae1581f
2 changed files with 21 additions and 1 deletions
+15 -1
View File
@@ -32,6 +32,19 @@
];
};
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];
@@ -46,6 +59,7 @@
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 4d --keep 3";
flake = "/home/m3tam3re/p/nixos/nixos-config";
flake = "/home/m3tam3re/p/NIX/nixos-config";
};
programs.mosh.enable = true;
}