Setting up your fish shell for using ISIS3

Michael Aye
Oct 27, 2018 · 2 min read

So, the supported ways for running ISIS3are cshand bashscripts as provided in the $ISISROOT/scriptsfolder ( start_isis.csh and .sh).

But I recently started to switch to fishfrom zsh, because I was sick of the fragile and complicated (complex?) setup that zshrequires. I was using the zpreztoframework 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! ;)

OpenPlanetary

Articles, tips, tutorials, and stories on planetary…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store