Hi,

Here is my thought.

I think we shouldn't fool ourself to believe the good old chsh(1) command works 
as
advertised :-) That was only true for character terminal only sysv-init system. 

User side approach:
~~~~~~~~~~~~~~~~~~~

We need to keep so-called login-shell always as Bash if you don't want to drive
yourself crazy.  Adding workarounds for all possible choices of so-called POSIX 
shell
is just waste of resource.  If we make work around for zsh, then we need to do 
it for
ksh, posh, ....  POSIX is no magic word for shells to be treated as equal since 
there
are subtle differences.

If you want non-bash shell for your interactive shell to be DIFFERENT, set it in
terminal software. This terminal software approach should work for any shell 
without
trouble with gnome-terminal and probably for konsole or ketty.

If you want to use different shell for Linux console or ssh connected terminal
console, I think setting in ~/.bashrc as `exec /usr/bin/zsh -i` should give you 
what
you want, I think (need to be tested but I hope you get my point). I think 
delay of
starting bash has minimal damage.

To conclude, the old ways of setting login-shell via chsh is deprecated. With 
the
above mentioned methods, any shells found on Debian including ones totally 
non-POSIX
can be your login interactive shell.

zsh
fish
fizsh 
rc
csh
tcsh
xonsh
elvish
...
(Maybe any REPL interpreter like python3, lua, tcl, ... may be used as 
interactive
shell, too if you want to be really DIFFERENT)


Distribution side approach:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
As a distribution, maybe we need to fix gdm3, kdm, xdm, ... so they perse their
configuration file always with bash (or dash) irrespective of login shell 
setting.
This needs a lot of energy and social skill to realize. 

Osamu


Reply via email to