2.9 KiB
2.9 KiB
PrettyPrompt
A pretty shell prompt, written in rust
Current Features
- User indicator - Symbol with different colors for root user and normal users
- Error indicator - Symbol with different colors to indicate if the last comment was successful
- Git repo indicator
- Indicates if the current directory is a repo or a regular directory
- Branches indicated by different colors
- SSH indicator - Symbol to indicate if the current shell is in an SSH session
- Current directory
- Abbreviated if the path is too long
- Replaces the user's home directory with a
~
symbol - Show the repo's name if currently in a git repo
Screenshot
Planned Features
- Right-hand side prompt
- Configuration file
- Choose only the components you need
- Change appearance
- symbols and texts
- colors
- order and position
- Etc.
- User-defined components
- Static sybols or strings
- Shell symbol
- Host name
- Etc.
- Dynamic components by running custom commands
- Time & date
- More
git
information - System stats
- Basically, anything you like
- Static sybols or strings
Current Limitations
- Not user-configurable, yet - any changes in the current stage require hard-coding.
- Exit code of the last command requires to be passed as a command-line argument.
Usage
The binary needs to be in your $PATH
. Place it somewhere like /usr/bin/
, or add the appropriate path to the $PATH
variable
The configuration depends on the shell and the configuration file location can vary according to your distro.
bash
System-wide: /etc/bash.bashrc
or User-specific: $HOME/.bashrc
:
PS1="" // PS1 is a fixed prompt variable.
PROMPT_COMMAND="prettyprompt $?" // This updates the prompt every time.
ion
User-specific: $HOME/.config/ion/initrc
:
# This is currently the only way to customize the prompt according to the docs
fn PROMPT
prettyprompt $?
end
Changes since the last version
- Updated Output String Type: Improved compatibility with other shells.
- Revamped Indicator Symbols: Enhanced the visual aspect of the prompt.
- Removed Shell Symbol: Determining the shell is practically not possible.
- Conditional Component Inclusion: A first step towards user-configuration expected in future versions.
- Code Improvements: readability and performance
- Refactoring: Modular structure for better readability and maintenance.
- Modularization: Separate modules for cleaner organization.
- Error Handling: Improved logic to exclude error messages from the prompt.
- Enhanced Documentation: Comments for better comprehension.