Progress In Nix - Pacman inspired frontend for Nix

Related tags

Command-line pinix
Overview

Progress In Nix

Crates.io License Crates.io Version

Pinix is a Pacman inspired frontend for Nix. It wraps a regular Nix command and replaces the output with a more modern and informative interface.

asciicast

It should work transparently for most commands, including when an interactive shell is spawned.

Installation

Using Nix

The repository defines a flake, so you can get the pinix package available by adding it to your flake.nix:

inputs = {
  pinix.url = github:remi-dupre/pinix;
};

Using Cargo

You can also install pinix from sources by using cargo:

cargo install pinix

# This will only install the main binary so you might want to add aliases for
# common nix commands.
alias pix="pinix --command nix"
alias pix-shell="pinix --command nix-shell"
alias pixos-rebuild="pinix --command nixos-rebuild"

Usage

The nix package provides you with drop-in replacements for common nix commands:

$ pix-shell -p htop
$ pixos-rebuild switch --flake .

Pinix has its how set of parameters, all prefixed with --pix-, they must be specified before any regular parameter. You can get list supported parameters through the help message:

$ pinix --pix-help
Wrap a Nix command to display rich logs while it is running

Usage: pinix [OPTIONS] [EXT]...

Arguments:
  [EXT]...  Arguments forwared to actual Nix command

Options:
      --pix-help               Display this help message
      --pix-command <COMMAND>  Specify the nix command that must be run
      --pix-debug              Display a debug bar
      --pix-log-downloads      Display a log line when a download is finished
      --pix-record <RECORD>    Save timestamped logs to a file

If you want to run a command for which you don't have an alias available you can call pinix followed by your regular command:

$ pinix nix-shell -p htop

Similar Tools

I'm not the first one who tried to improve nix output. Here are the tools that I know of:

  • nix-output-monitor: Pipe your nix-build output through the nix-output-monitor a.k.a nom to get additional information while building.
  • nvd: Nix/NixOS package version diff tool.
  • #4296: Some old suggestion for a more riche native progress indicator in nix.
You might also like...
Console progress bar for Rust
Console progress bar for Rust

Terminal progress bar for Rust Console progress bar for Rust Inspired from pb, support and tested on MacOS, Linux and Windows Documentation Examples s

An experimental, work-in-progress PAM module for Tailscale

Experimental Tailscale PAM Module This is a very very experimental Tailscale PAM module that allows you to SSH using your Tailscale credentials. This

zman is a CLI year (time) progress that small, fast, and just one single binary.
zman is a CLI year (time) progress that small, fast, and just one single binary.

zman zman is a CLI year (time) progress that small, fast, and just one single binary. Features Show year progress Show month, and week progress Show r

Rust crate that allows you to display status & progress information in a terminal

status-line This crate allows you to display status & progress information in a terminal This crate handles the problem of displaying a small amount o

Work-in-progress Rust application that converts C++ header-only libraries to single self-contained headers.

unosolo Work-in-progress Rust application that converts C++ header-only libraries to single self-contained headers. Disclaimer This is my first Rust p

A toy example showing how to run Rust code in Python for speed and progress.

PoC: Integrating Rust in Python A toy example showing how to run Rust code in Python for speed and progress. Requirements Python 3.6+ Rust 1.44+ Cargo

Rust implementation of Python command line progress bar tool tqdm.
Rust implementation of Python command line progress bar tool tqdm.

tqdm Rust implementation of Python command line progress bar tool tqdm. From original documentation: tqdm derives from the Arabic word taqaddum (تقدّم

Work-in-progress software for managing the Azeron keypad on any operating system.
Work-in-progress software for managing the Azeron keypad on any operating system.

azeron-cli A small, unfinished CLI application intended to manage the Azeron Cyborg. The code is still in a very messy state and doesn't look very rus

Work in progress NCBI's Common Tree alternative in the terminal

Lomanai Usage lomanai --species 'Mus musculus' --species 'Homo sapiens' # Mammalia # ++Rodentia # | \-Mus musculus # \+Primates # \-Homo sapien

Comments
  • Improve use of Divan

    Improve use of Divan

    • usize implements IntoCounter<Counter = ItemsCount>, allowing Vec::len() to be used directly.

    • The loaded example does not change between benchmarks, so there's no need to pass it via Bencher::with_inputs().

    • The parsed values are now black_box-ed to prevent them from being optimized out.

    • Removed comment from copy+pasted docs example.

    opened by nvzqz 1
  • Improve flake.nix, conforming to the output schema

    Improve flake.nix, conforming to the output schema

    Thank you for this wonderful program! This adds a few minor improvements for the flake.nix which makes it work better for myself.

    • Point nixpkgs to the "unstable" channel which enjoys binary caches, and bump flake.lock
    • Do not import nixpkgs; instead, use legacyPackages.${system} for better performance and composability.
    • Abstract pinix into a "package" and invoke with pkgs.callPackage, for future convenience.
    • Rewrite flake outputs such that it works well with the nix build and nix develop commands.

    See: https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix#installables

    opened by bryango 0
Owner
Rémi Dupré
Rémi Dupré
A `nix` and `nix-shell` wrapper for shells other than `bash`

nix-your-shell A nix and nix-shell wrapper for shells other than bash. nix develop and nix-shell use bash as the default shell, so nix-your-shell prin

Mercury 15 Apr 10, 2023
a (soon to be) calculator frontend and a (soon to be optimizing) toy IR backend

Zach-Calc Zach-Calc is a pet project for me to try and better understand pattern matching, optimization, IRs, and the likes. ./libs/* contains librari

Zachary Petti 0 Jan 6, 2022
Macchina - A system information frontend, with an (unhealthy) emphasis on performance.

macchina Fast, minimal and customizable system information frontend. Linux • macOS • Windows • NetBSD • FreeBSD • OpenWrt • Android About macchina let

Macchina CLI 682 Jan 5, 2023
Simple TUI frontend for paru,

parui Simple TUI frontend for paru. Images Keybinds parui adopts vim-like keybinds. Key Mode Action <Escape> Insert Enter Select Mode <Return> Insert

Qther 25 Jan 3, 2023
Yet another command-line chat GPT frontend written in Rust.

gpterm Yet another command-line chat GPT frontend written in Rust. Features Stream output with typing effect Store chat messages/history Context aware

Makis Christou 22 May 4, 2023
Compiler frontend for the PureScript programming language.

purescript-analyzer Goals Provide an independent frontend for providing information for IDE tooling, separate from the compiler. Implement a rich edit

Justin Garcia 16 Jul 25, 2023
A piet frontend for tiny-skia

piet-tiny-skia A piet frontend for the tiny-skia framework. tiny-skia is a very high-quality implementation of software rendering, based on the algori

John Nunley 4 Aug 4, 2023
Experimental integration of `fedimint-client` with the Leptos web frontend framework

CAUTION: highly experimental, the Database implementation is likely horribly broken Fedimint Client built with Leptos This repo contains a proof-of-co

null 3 Aug 27, 2023
💸 An open-source wasteof.money frontend/backend implementation

wasteof.time An open-source wasteof.money frontend/backend implementation Running Backend cargo run -q -p backend Frontend To run the frontend, you ne

Max Walters 3 Feb 18, 2024
A command line progress reporting library for Rust

indicatif Documentation A Rust library for indicating progress in command line applications to users. This currently primarily provides progress bars

Armin Ronacher 3.2k Dec 30, 2022