So, the supported ways for running ISIS3
are csh
and bash
scripts as provided in the $ISISROOT/scripts
folder ( start_isis.csh and .sh
).
But I recently started to switch to fish
from zsh
, because I was sick of the fragile and complicated (complex?) setup that zsh
requires. I was using the zprezto
framework and everytime I got an update on that, which is git-based, I got some conflicts between their config scripts and mine. I guess I still was doing it wrong, but I thought, that it really shouldn’t be too hard, so I looked for alternatives.
I actually even played with the totally new Python-based xonsh shell for a while, but it requires an extra plugin to work with conda
, so I thought “here we go again, everything needs something extra to be configured”, so after finding some other problems with other good-sounding plugins, I decided to be not quite that radical for my everyday shell, and went with fish.
To be fair, the reason for this post is of course that it required something extra to run ISIS3 with the fish shell, but that’s just the mere lack of the simple startup script that is provide for csh and bash but not for fish.
So, without further ado, here’s how to set it up.
I first simply added the main ENV
variables required to my config.fish
file:
# ISIS3
set -x ISISROOT /isis3/isis
set -x ISIS3DATA $ISISROOT/../data
set -x PATH $PATH $ISISROOT/bin
The last ENV
variable that is required is QT_PLUGIN_PATH,
but because setting this ALWAYS can create havoc, specifically on Linux systems where its OS is written in Qt
.
So, I put the setting of it into a new function called, of course, start_isis
:
function start_isis
set -gx QT_PLUGIN_PATH $ISISROOT/3rdParty/plugins
end
Note the -g
option (i.e. “global”) that enables the survival of the variable after executing the function code.
In case you need it, you unset a variable by doing set -e QT_PLUGIN_PATH
which is **HIGHLY** confusing to me, because all time I want to **SET* a variable using the option -e
, NATURALLY! ;) But no, -e
stands for “erase” while -x
stands for “export”. Harr…
Hope that helps someone out there, who wants to have more fish
in their life! ;)