Cat9 and LASH want to change your Linux command line

It's no secret that to be a truly power user of Linux, you have to deal with the command line. Many people actually prefer to use the command line. However, the shell - the program that provides this command line - is mired in history, which means it has to work with existing stuff, no matter how modern. However, a new set of projects wants to replace most of your UI stack starting with the shell. At the top of that stack is Cat9 which is technically a shell, but not in the way you probably imagine a shell to be.

A traditional shell allows you to run programs one at a time, feed them as input, and watch their output. Of course, you can store the output for later use. You can run programs in the background or in parallel, but this requires special attention. In Cat9 everything is asynchronous and the results stick around until you deliberately delete them. It is trivial to recover data from a previous command or, for example, to switch to a directory that was used by a previous task.

According to the documentation, Cat9 uses Arcan which is a pain to build (their words). It also uses LASH and potentially one of many unusual window managers. If you want to see what it can do, watch the video below.

You will notice that the commands are tracked as tasks. A job number can be absolute (#5) or relative (#-1, the previous job). There are also special identifiers like #csel for the job that has the cursor or #last as a synonym for #-1.

If you just run a command, you essentially create a task and start collecting its output. A work remembers its environment. The only problem is if you want to interact directly with a program like, for example, a text editor. There is a way to force this type of execution, so the normal way an ordinary shell executes a program is an exception for Cat9. You can, however, switch between jobs for input. You can also signal tasks, as you would in a normal shell.

You can force commands to work in a task. For example, to see which directory is using the 4th task:

#4 pwd

Of course, you also need a way to get data from a running task that can be passed as input to other commands. There are more commands to control the view of the output, so you can split screens, scroll through data, etc. Another important concept is that you can create triggers that run when a task succeeds or fails.

Do you want to try cat9? It is difficult to move existing window management and shell infrastructure. Wayland has been trying for 14 years and still has a long way to go. Strange shells come and go. Many language-specific shells that often draw inspiration from other languages ​​have strong niche followings, but rarely spread significantly. Maybe Cat9 can be different. Or maybe some of his ideas will trickle down to mainstream shells.

Some of the ideas are simple. For example, the prompt disappears when you move to a new line. Of course, if you're documenting a test run, it might break your workflow, but for most use cases it makes sense. Why clutter the output with unnecessary data?

If you want a different shell closer to the standard, we've looked at a number of them. Keep in mind that it's not really that Cat9 does everything a conventional shell can't. That probably makes things easier.

Cat9 and LASH want to change your Linux command line

It's no secret that to be a truly power user of Linux, you have to deal with the command line. Many people actually prefer to use the command line. However, the shell - the program that provides this command line - is mired in history, which means it has to work with existing stuff, no matter how modern. However, a new set of projects wants to replace most of your UI stack starting with the shell. At the top of that stack is Cat9 which is technically a shell, but not in the way you probably imagine a shell to be.

A traditional shell allows you to run programs one at a time, feed them as input, and watch their output. Of course, you can store the output for later use. You can run programs in the background or in parallel, but this requires special attention. In Cat9 everything is asynchronous and the results stick around until you deliberately delete them. It is trivial to recover data from a previous command or, for example, to switch to a directory that was used by a previous task.

According to the documentation, Cat9 uses Arcan which is a pain to build (their words). It also uses LASH and potentially one of many unusual window managers. If you want to see what it can do, watch the video below.

You will notice that the commands are tracked as tasks. A job number can be absolute (#5) or relative (#-1, the previous job). There are also special identifiers like #csel for the job that has the cursor or #last as a synonym for #-1.

If you just run a command, you essentially create a task and start collecting its output. A work remembers its environment. The only problem is if you want to interact directly with a program like, for example, a text editor. There is a way to force this type of execution, so the normal way an ordinary shell executes a program is an exception for Cat9. You can, however, switch between jobs for input. You can also signal tasks, as you would in a normal shell.

You can force commands to work in a task. For example, to see which directory is using the 4th task:

#4 pwd

Of course, you also need a way to get data from a running task that can be passed as input to other commands. There are more commands to control the view of the output, so you can split screens, scroll through data, etc. Another important concept is that you can create triggers that run when a task succeeds or fails.

Do you want to try cat9? It is difficult to move existing window management and shell infrastructure. Wayland has been trying for 14 years and still has a long way to go. Strange shells come and go. Many language-specific shells that often draw inspiration from other languages ​​have strong niche followings, but rarely spread significantly. Maybe Cat9 can be different. Or maybe some of his ideas will trickle down to mainstream shells.

Some of the ideas are simple. For example, the prompt disappears when you move to a new line. Of course, if you're documenting a test run, it might break your workflow, but for most use cases it makes sense. Why clutter the output with unnecessary data?

If you want a different shell closer to the standard, we've looked at a number of them. Keep in mind that it's not really that Cat9 does everything a conventional shell can't. That probably makes things easier.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow