8000 GitHub - juspay/omnix at init-test2
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

juspay/omnix

 
 

Repository files navigation

project chat

omnix

Pronounced /ɒmˈnɪks/

Note

🚧 omnix is in active development. It aims to supplement the Nix CLI to facilitate ease & adoption.

Status & Usage

To install omnix,

nix --accept-flake-config profile install github:juspay/omnix
# Then, run `om` command
  • om show
    • Basic om show
    • Advanced om show
  • om health (nix-health ng)
  • om init (Initialize flake templates)
  • ...

Developping

  1. Install Nix
  2. Setup direnv
  3. Clone this repo, cd to it, and run direnv 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.

Running locally

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.

Nix workflows

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

Contributing

Tip

Run just fmt to autoformat the source tree.

  • Run nix run github:srid/nixci to run CI locally.
  • Add documentation wherever useful. To preview Rust API docs, run just doc.
  • Changes to library crates must accompany a corresponding CHANGELOG.md entry.1

Tech

GUI app (omnix-gui)

We use Dioxus to build the GUI using web technologies, as well as dioxus-signals for data reactivity.

Styling

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).

Color palette

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").

Crates

Crate Description
./crates/nix_rs Rust interface to the Nix command line
./crates/nix_health Nix health check library and executable
./crates/flakreate Rich flake templates
https://github.com/juspay/direnv-rs Rust bindings for direnv

Footnotes

  1. We don't use any automatic changelog generator for this repo.

0