Skip to content

Readf0x/integral-prompt

Repository files navigation

Integral Prompt

About

This prompt theme was created mostly due to my dissatisfaction with existing ones. My main issues were:

  • overcomplicated configuration
  • feature bloat
  • wrapping issues

Installation

Grab integral.deb for Debian based distros, or integral.tar.gz for others.

Flake install (Home Manager)

Add to your inputs and add integral-prompt.homeManagerModules.default to your home manager imports

# flake.nix
{
  inputs = {
    integral-prompt.url = "github:readf0x/integral-prompt";
  };
}
# home.nix
{ inputs, ... }: {
  imports = [ inputs.integral-prompt.homeManagerModules.default ];

  programs.integral-prompt.enable = true;
}

Manual build

Install golang and run ./build.sh to generate a tarball for generic linux. For Debian based distros, run ./build.sh deb.

Usage

Zsh

Add the following to your .zshrc

source <(integral init zsh)

Bash

Add the following to your .bashrc

eval "$(integral init bash)"

Fish

Add the following to your config.fish

integral init fish | source

Configuration

To configure, add a .integralrc file.

integral config > ~/.integralrc

Note

It can also be placed at:

  • $XDG_CONFIG_HOME/integralrc
  • $XDG_CONFIG_HOME/integralrc.json
  • $XDG_CONFIG_HOME/integral/rc
  • $XDG_CONFIG_HOME/integral/rc.json If $XDG_CONFIG_HOME is undefined, it will fall back to ~/.config

The configuration options aren't yet documented, but if you have a JSON language server simply add

"$schema": "/usr/share/integral/schema.json"

to the top of your configuration, and the LSP can list all available options. I know that's not ideal, but I haven't added jsonschema description fields to the config types. Once that's done, I should be able to generate actual documentation as well.

Home Manager Configuration

programs.integral-prompt = {
  enable = true;
  # enable shell integration here or with 'home.shell.enable<Shell>Integration'
  # for zsh
  enableZshIntegration = true;
  # for bash
  enableBashIntegration = true;
  # for fish
  enableFishIntegration = true;
  config = {
    # JSON config
  };
}

Planned Features

  • Configuration files
  • Transient Prompt
  • Multi-line prompt
  • Rerender on terminal resize
  • Module loader
    • Colors
    • Formatting
    • Icons
    • Positions
    • Order
    • Seperators
    • Dynamic triggers
    • Right prompt
  • Plugin Support
  • Documentation
  • Module timeouts

Planned Modules

  • Background Jobs
  • Battery
  • CPU
  • CWD
  • Clock
  • Direnv
  • Error Codes
  • Git
  • Nix Shell
  • SSH
  • Uptime
  • Vim

About

Math inspired shell prompt

Resources

License

Stars

Watchers

Forks

Packages

No packages published