Pronounced /ษmหnษชks/
Note
๐ง omnix is in active development. It aims to supplement the Nix CLI to improve developer experience.
- Install Nix
- Setup
direnv
- Clone this repo,
cd
to it, and rundirenv allow
.
This will automatically activate the nix develop shell. Open VSCode and install recommended extensions, ensuring that direnv activates in VSCode as well.
Note
If you would like to learn the tools & technology involved in this project, follow along this README noting the places where the emoji ๐ is used.
To run omnix-cli
,
just watch # Or `just w`; you can also pass args, e.g.: `just w show`
To run omnix-gui
,
just watch-gui # Or `just wg`
just watch-gui
runs dx serve
(with hot reload disabled) that will restart the desktop app after compilation.
Inside the nix develop shell (activated by direnv) you can use any of the cargo
or rustc
commands, as well as just
workflows. Nix specific commands can also be used to work with the project:
# Full nix build of CLI & GUI
nix build .#default .#gui
# Build and run the CLI
nix run
# Build and run the GUI
nix run .#gui
Tip
Run just fmt
to autoformat the source tree.
- Run
just ci
to run CI locally. - Add documentation wherever useful.
- Run
just doc run
to preview website docs; edit, and runjust doc check
- To preview Rust API docs, run
just doc cargo
.
- Run
- Changes to library crates must accompany a corresponding
CHANGELOG.md
entry.1
We use Dioxus to build the GUI using web technologies, as well as dioxus-signals for data reactivity.
We use Tailwind for styling; ๐ familiarize yourself with it! Tailwind enables developers not familiar with design to create reasonably good looking sites. You should also ๐ get familiar with CSS flexboxes (see Flexbox Froggy).
See tailwind.config.js
for colour aliases we use throughout the app. Instead of, say, text-pink-500
we use text-primary-500
("primary" is more semantic than "pink").
Crate | Description |
---|---|
./crates/nix_rs | Rust interface to the Nix command line |
./crates/nix_health | Nix health check library and executable |
./crates/nixci | Define and build CI for Nix projects anywhere |
./crates/flakreate | Rich flake templates |
https://github.com/juspay/direnv-rs | Rust bindings for direnv |
Footnotes
-
We don't use any automatic changelog generator for this repo. โฉ