Ion Shell Development Discussion

Should the Ion shell have an RFC process similar to Rust?

Sure! I think that would be really good!

How (and where) should one ask questions on ion? The manual is incomplete, and there is probably not enough momentum to get answers on stackoverflow yet.
My specific question: in bash (running in xfce-terminal) I can use ctrl+left/right to jump full words, in ion this doesn’t work. How can I do such jumps in ion?
My general question: where does the specific question belong (because surely not in this thread)?

Anywhere is fine. So this is an issue with termion. Ion’s prompt is powered by the liner crate, and binds all the keyboard shortcuts accordingly from inputs that it receives from termion.

If you know your way around vi mode, you can use that instead with set -o vi, then you can press Esc and use vi key bindings[1] to navigate words (like pressing w to move forward to the next word, b to move back to the last word, and a/i to go back to input mode).

[1] https://hea-www.harvard.edu/~fine/Tech/vi.html

I just built ion on my solus box and so far really like it. My question does Ion load a config file, like for example ~/.bashrc or ~/.profile were i can put alias in?

Ion follows the XDG specification, so it’s located at $HOME/.config/ion/initrc. At first launch, this path is printed on the terminal.

1 Like

I’ve been working on some of the more severe issues with the Ion shell in the last week or so: pipeline execution & job control. As a result, there’s currently a pull request that I’m still working on that will fix all the major outlying issues with foreground job control and pipeline execution. I’m also working on background job control, which may be included within the same PR.

I haven’t yet merged the PR though because it keeps failing its pipeline execution tests on Travis, whereas I’m unable to replicate the failures on my development laptop. I’m not yet sure why that is happening, so I’m currently focused on reworking the background job control, and then I’ll get back to poking around the code base to figure out why those tests are failing.

I started using ion shell as my main shell on my home Linux machine and I must say that I really like it, however I was wondering if anyone could help me with the default PWD settings as it seems that whenever I start the shell, it starts in the ‘/’ directory.

You can’t run ion as a command in your terminal. It has to bet set as your login shell. The included makefile can be used to set the shell make && sudo make install prefix=/usr && sudo make update-shells prefix=/usr

Firstly I’m not a dev, however I like the direction of ion.

  1. Is there an equivalent to bash -n “no exec”? Would be very useful for syntax checking.
  2. Given the tokio async/await is very early, " https://boats.gitlab.io/blog/post/await-decision/ " how will that affect parallel processing? Is there something like bash coproc?
  3. Given Wayland is likely to replace X, why use XDG?

Forgive my ignorance on any of the above topics

@experienced ion users with knowledge of bash/zsh/fish
What sets ion apart from bash/zsh/fish except Rust of course?

syntax is way closer to python than to perl

To me it looks closer to Rust. :wink:

Yes, ion -n.

The XDG Base Directory Specification is not X-specific. It’s just a standard to keep things like config files from different programs in consistent places: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

1 Like