Houkime b6cd54a4ec add video link | 2 lat temu | |
---|---|---|
.gitlab | 4 lat temu | |
benches | 4 lat temu | |
ci | 5 lat temu | |
debian | 5 lat temu | |
examples | 4 lat temu | |
fuzz | 6 lat temu | |
manual | 3 lat temu | |
members | 3 lat temu | |
sh-interrupt | 4 lat temu | |
src | 2 lat temu | |
testing | 7 lat temu | |
tests | 3 lat temu | |
.envrc | 4 lat temu | |
.gitignore | 5 lat temu | |
.gitlab-ci.yml | 3 lat temu | |
CONTRIBUTING.md | 4 lat temu | |
Cargo.lock | 2 lat temu | |
Cargo.toml | 2 lat temu | |
LICENSE | 7 lat temu | |
Makefile | 3 lat temu | |
README.md | 2 lat temu | |
build.rs | 5 lat temu | |
clippy.toml | 3 lat temu | |
redox_linker | 5 lat temu | |
rustfmt.toml | 3 lat temu | |
shell.nix | 4 lat temu | |
test.ogg | 2 lat temu |
This is a (likely) never-to-be-upstreamed modification prototype that allows shell to make (futuristic) sounds on various actions (currently on completion). To play with it (no serious use supported):
git clone https://notabug.org/Houkime/ion-sound
cd ion-sound
cargo run --release
At the moment the startup is tied to the directory with the sound (but once started shell can go anywhere). Terrible! Raw! But i am not sure if i want to continue with ion
or use nsh
as a base. Ion moves and jitters too much, and the whole idea of having sounds in a shell is to make it a pleasant chilly experience. Dynamic sound synthesis without any files can prove cool too.
Here is a video demo of the shell at work. Behind the scenes the shell uses Kira game audio library.
Below starts original README
Ion is a modern system shell that features a simple, yet powerful, syntax. It is written entirely in Rust, which greatly increases the overall quality and security of the shell. It also offers a level of performance that exceeds that of Dash, when taking advantage of Ion's features. While it is developed alongside, and primarily for, RedoxOS, it is a fully capable on other *nix platforms.
Ion is still a WIP, and both its syntax and rules are subject to change over time. It is still quite a ways from becoming stabilized, but we are getting very close. Changes to the syntax at this time are likely to be minimal.
Ion has a RFC process for language proposals. Ion's formal specification is located within the rfcs branch. The RFC process is still in the early stages of development, so much of the current and future implementation ideas have yet to be written into the specification.
The Ion manual online is generated automatically on each commit via mdBook and hosted on Redox OS's website.
Building the manual for local reference
Sources for the manual are located in the manual
directory.
You can build the manual using
make manual
mdbook build -d ../public manual
See the examples folder and the Parallelion project
The following PPA supports the 18.04 (bionic) and 19.04 (disco) releases. Bionic builds were made using the Pop_OS PPA's rustc 1.39.0 package.
sudo add-apt-repository ppa:mmstick76/ion-shell
Those who are developing software with Rust should install the Rustup toolchain manager.
After installing rustup, run rustup override set 1.39.0
to set your Rust toolchain to the version that Ion is
targeting at the moment. To build for Redox OS, rustup override set nightly
is required to build the Redox
dependencies.
Please ensure that both cargo and rustc 1.39.0 or higher is installed for your system. Release tarballs have not been made yet due to Ion being incomplete in a few remaining areas.
git clone https://gitlab.redox-os.org/redox-os/ion/
cd ion
RUSTUP=0 make # By default RUSTUP equals 1, which is for developmental purposes
sudo make install prefix=/usr
sudo make update-shells prefix=/usr
To compile in DEBUG mode, pass
DEBUG=1
as an argument tomake
For vim/nvim users there is an officially-supported syntax highlighting plugin.
Plugin 'vmchale/ion-vim'
For emacs users there is a kindly-supported syntax highlighting plugin.
(add-to-list 'load-path (expand-file-name "/path/to/ion-mode"))
(require 'ion-mode)
(autoload 'ion-mode (locate-library "ion-mode") "Ion majore mode" t)
(add-to-list 'auto-mode-alist '("\\.ion\\'" . ion-mode))
(add-to-list 'auto-mode-alist '("/ion/initrc" . ion-mode))