OmniShell is a Python-based shell made with moddablity, configurability, and extensibility in mind.
A quick warning: this is my first big code project and OmniShell is nowhere near complete and I still have many planned features, so please keep this in mind before using it.
But now that that's out of the way, it's time to talk features!
- Ability to add Python files as shell commands, e.g. instead of
python ~/OmniShell/scripts/themetool.py
you can simply runthemetool
- A nice theme engine
- Easily configurable
- Cross-platform
- Windows
- Linux
- MacOS (currently untested -- I don't have a Mac)
- Extensible
- Uses your current shell as a base and extends apon it
- Python 3
- Rich
- Python Prompt Toolkit
The basic installation on Windows is basically the same as on any other operating system, simply download the latest release zip and extract it, then run boot.py
. However if you don't want to have to run the Python file every time you want to use Omnishell there are many workarounds depending on your terminal.
If you use Windows Terminal the process is quite simple:
- Open Windows Terminal and open the settings tab using the menu or by pressing
CTRL+,
- Next scroll down to the bottom of the sidebar and press the
+
icon and click+ New empty profile
- Now click
Starting directory
and select the path to your OmniShell directory (the one that containsboot.py
) - After that click
Command line
and select yourpython.exe
. If you don't know where this is, there is a great guide on how to locate it here - Now add
boot.py
on the end of the command line field so it ends up looking similar to this:[path to python.exe]\python.exe boot.py
- Finally, add any finishing touches to your OmniShell profile and, if you want, set it as the default profile
If you use Fluent Terminal the process is incredibly similar to the setup on Windows Terminal:
- Open Fluent Terminal and open the settings window using the menu or by pressing
CTRL+SHIFT+,
- Next click the
Profiles
button on the sidebar and click the+ Create new
button - Now in the
Working directory
field select the path to your OmniShell directory (the one that containsboot.py
) - After that in the
Shell executable location
field select yourpython.exe
. If you don't know where this is there is a great guide on how to locate it here - Now in the arguments field put
boot.py
- Finally add any finishing touches to your OmniShell profile and, if you want, set it as the default profile
If you use Cmder the process is slightly different to the other terminals, but is still very easy to set up:
- Open Cmder and open the settings window using the menu or by pressing
WIN+ALT+p
- Next expand the
Startup
section on the side bar by pressing the+
icon, and then clickTasks
- Then click the
+
icon, and after that clickFile path...
and selectboot.py
- Now click the
Startup dir...
button select the path to your OmniShell directory (the one that containsboot.py
) - Finally add any finishing touches to your OmniShell task and, if you want, set it as the default task, and remember to click
Save settings
The basic installation on Linux is basically the same as on any other operating system: simply download the latest release zip, and extract it, then run boot.py
. Sadly I don't really know how to make it work on Linux quite as well as it works on Windows, e.g. start automatically on a new terminal instance, so if you have an idea of how I could implement this or even actually have it set up and working, please tell me in the issues how you did it, so I can put it here.
The basic installation on MacOS is basically the same as on any other operating system: simply download the latest release zip, and extract it, then run boot.py
. Please keep in mind that this won't make OmniShell start when a new terminal instance is opened. Sadly I don't know how to set this up on MacOS, and neither can I test or find a solution, as I don't have a Mac. However if you do have a way to do this, then please tell me in the issues, so I can add it here.