I've been playing around with the fish shell for a few days and I like it. In order to start fish in a terminal via a quicklauncher or menu, I'm using a script like this:1
#!/bin/sh export SHELL=/bin/fish exec konsole # <- KDE's terminal emulator
If I run this script from the command-line, it does what's expected: starts a
konsole whose shell is
But run from a KDE launcher,
$SHELL has been reset and I get
/bin/bash. What's more, if I replace
Terminal (from XFCE), it doesn't work even from the command-line; the terminal starts up with
$SHELL reset. So it appears that:
$SHELLno matter what.
konsolewill not reset
$SHELLwhen started from the command-line.
- KDE will reset
$SHELLwhen an application is started via a launcher.
If I change the default shell in
/etc/passwd, every works. That's fine, except there are a few users (I use more than one) I would prefer not to do this with, but I still want to quicklaunch a terminal to use fish.
Note that there are no profile, etc. files anywhere on the system that set
SHELL. There's just the default in
/etc/passwd. Also, this is not just an issue under KDE (it also happens via
fvwm). I've grepped through the KDE and XFCE conf directories too.
I realize this is probably just life, but I'm wondering if there isn't something I've missed here, or if anyone knows more specifically why this would happen.
1. In fact that's an SSCCE -- the reason this is irritating is I like to start a terminal with two tabs open running
mc, meaning the work-around is more than just typing
fish. This is also why I can't use a
-e type switch to the terminal command; that's what's starting
mc, which uses a subshell based on