fish trouble
I set my shell to fish.
The PATH was rather minimal (only /bin /usr/bin /usr/X11R6/bin) so I put this line in /etc/fish :
set PATH $PATH /sbin /usr/sbin /usr/local/bin /opt/*/bin /opt/java/jre/bin $HOME/bin
resulting in the path
/bin /usr/bin /usr/X11R6/bin /sbin /usr/sbin /usr/local/bin /opt/acrobat/bin /opt/gnome/bin /opt/java/bin /opt/kde/bin /opt/mozilla/bin /opt/NX/bin /opt/qt/bin /opt/xfce4/bin /opt/java/jre/bin /home/taco/bin /sbin /usr/sbin /usr/local/bin /opt/acrobat/bin /opt/gnome/bin /opt/java/bin /opt/kde/bin /opt/mozilla/bin /opt/NX/bin /opt/qt/bin /opt/xfce4/bin /opt/java/jre/bin /home/taco/bin
for comparison the PATH in bash is:
/home/taco/bin:/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:
/opt/bin:/opt/gnome/bin:/opt/java/bin:/opt/java/jre/bin:/opt/kde/bin:
/opt/mozilla/bin:/opt/NX/bin:/opt/qt/bin:/opt/xfce4/bin
Now when I run startx, I get this error dialog:
The NetworkManager applet could not find some required resources. It cannot continue.
(my .xinitrc starts nm-applet)
I bet some other environment variable is missing or too minimal. But which one?










Noone replied yet??
Hmm, I'm not a fish user nor very knowledgable on environment variables, but doesn't it support wildcards? If yes, then I suppose putting a wild card on some general path ought to include the one which may be missing. I'm not sure.
Did you try reverting to the way it was, the defaults, just to see if it's that which causes the error?
*shrugs* I wish I could help more.
Why don't you just copy and paste your Bash $PATH into your FISH $PATH?
The bash $PATH is a subset of the fish $PATH, so that shouldn't be the problem.
Fish uses a different syntax for $PATH (and any type of array), so I can't just copy paste it. I tried
set PATH (bash -c echo $PATH)
and also
set PATH (bash -c echo $PATH | tr : ' ')
neither did quite what I expected.
Anyway, after running "export" back in bash, I found these:
declare -x GNOME2_PATH="/opt/gnome"
declare -x GNOMEDIR="/opt/gnome"
Those probably are what I'm looking for, I'll check.
It was an environment variable, but I have no idea which one. I simply copied all my environment variables from bash to fish.
Hint 1: you can make fish remember a variable permanently with "set -U" ("set -U -x" if it's an environment variable)
Hint 2: you can get exactly the same environment as before the switch to fish by running "su - (whoami) -s /bin/bash"
I'm going to switch back to bash. Two reasons:
- sometimes fish hangs when using tab completion
- after running (and ending) startx, I can't use su anymore (it will tell me incorrect password even before typing a password)