Arcan, the unique development framework for user interfaces that’s exploring a ton of new and different ideas, has released a new project – Lash#Cat9, a new command line shell.
A guiding principle is the role of the textual shell as a frontend instead of a clunky programming environment. The shell presents a user-facing, interactive interface to make other complex tools more approachable or to glue them together into a more advanced weapon. Cat9 is entirely written in Lua, so scripting in it is a given, but also relatively uninteresting as a feature — there are better languages around for systems programming, and better UI paradigms for automating work flows.
Another is that of delegation – textual shells naturally evolved without assuming a graphical one being present. That is rarely the case today, yet the language for sharing between the two is unrefined, crude and fragile. The graphical shell is infinitely more capable of decorating and managing windows, animating transitions, routing inputs and tuning pixels for specific displays. It should naturally be in charge of such actions.
Another is to make experience self documenting – that the emergent patterns on how your use of command line processing gets extracted and remembered in a form where re-use becomes natural. Primitive forms of this are completions from command history and aliases, but there is much more to be done here.
I’m not a heavy shell user, so I’m not going to make any subjective statements here. It at least seems remarkably interesting, and I’m sure there’s quite a few among us who would love to play with this.
These are interesting times. There also is the warp shell: https://www.warp.dev/
Myself, I stick to bash, with the ok-bash extension: https://github.com/secretGeek/ok-bash
warp looks really cool, pitty it’s only for mac
I use bash as well but never heard of ok-bash. After having a quick look, I’m not sure what the real sell is. Based on the examples, you could just make shell aliases which would be usable across many projects rather than multiple .ok files containing the same stuff. For example, why not just put something like `alias buildit=’./build.sh’` in your .bashrc/.profile and use it anywhere applicable? For things I (manually) build more than a couple times I typically just write a build script. I definitely lean towards automate/simplify as much as possible unless circumstance demands otherwise. While ok-bash doesn’t really do anything for me, I don’t discount it possibly being preferable to someone else and their workflow. I don’t love bash but I’m not really in an active pursuit to do anything about it in the same way I don’t love carrots but don’t pick carrot shards out of salad.
Having people rethink deeply ingrained assumptions is good. But in this case I didn’t feel I want to use it. Midnight Commander and Emacs’ Dired are both more convenient and interesting, IMHO.
I felt the same, and I’m using the fish shell as my daily driver. But they have a really interesting analysis:
https://www.divergent-desktop.org/blog/2020/08/10/principles-overview/
Agreed. I haven’t found a good shell replacement for bash, even though I do not like it. I keep looking, but this isn’t what I want. argv hell is real, but my mind can’t deal with another wrapper around them. It would prefer just to memorize the arv order per command, which will never stop working( well for most commands )
Bill Shooter of Bul,
While I use it all the time, I don’t really like bash much either. I think there ought to be better ways of passing in parameters and controlling invocation. But we’re kind of limited to wrapping up existing applications because nobody’s going to rewrite all that software. So while wrappers are far from ideal, I still think they can potentially improve sysadmin tasks. The thing is I don’t know if I’ll ever get around to it because trying new shells doesn’t rank highly on the priority list
There is setting environmental variables.
Set 25 env vars to run 1 command. XD
ZSH plus Oh My Zsh! is pretty simple to setup and get running. My setup is pretty simple, but the UX is pretty nice.
If we’re talking about scripting, yeah no. Shell scripting (tcsh, sh, bash, zsh) really needs to be rethought.
zsh, and Oh my zsh were nice, but some of the really cool things were too much of a load on the systems I run. I appreciate having the same shell everywhere. So that’s pretty much bash.
Shell scripting, is awful, There are many better ways of doing it, but again nothing has taken enough marketshare to be really portable. I don’t want to build this library of uselful scripts for the systems I have complete control and minimal uptime requirements for, and then another for more restricted systems. I just avoid shell scripting when ever possible and use higher level languages. Nothing is perfect here. I hate it all.
@Bill
I run the defaults on servers, which is bash or tcsh depending. Personal systems, I’m going to spend lots of time with get zsh.
I’ll build libraries of scripts. Whatever makes my life easier.
Perl archives (PAR) are really nice, and one of the reasons I like using perl.
I’ve been pretty happy with ZSH plus Oh My ZSH! as my daily driver shell.
Now for automation beyond commands in a linear order, I just jump of a full programming language. Perl, Python, Ruby, Lua, NewLisp, Guile, etc. There are a bunch of languages which can be used for scripting.
Arcan as a whole is a fascinating and promising project and I’m glad to see they are also working on some nice userland features like this.