How to configure 3rd party prompts
nerdfonts
nerdfonts are not required but they make the presentation much better.
oh-my-posh
If you like oh-my-posh, you can use oh-my-posh with rsh with a few steps. It works great with rsh. How to setup oh-my-posh with rsh:
- Install Oh My Posh and download oh-my-posh's themes following guide.
- Download and install a nerd font.
-
Generate the .oh-my-posh.rsh file. By default it will be
generated to your home directory. You can use
--config
to specify a theme, other wise, oh-my-posh comes with a default theme. -
Initialize oh-my-posh prompt by adding in
~/.config/rsh/config.rsh(or the path output by
$rsh.config-path
) to source ~/.oh-my-posh.rsh.
# Generate the .oh-my-posh.rsh file
> oh-my-posh init rsh --config ~/.poshthemes/M365Princess.omp.json
# Initialize oh-my-posh.rsh at shell startup by adding this line in your config.rsh file
> source ~/.oh-my-posh.rsh
For MacOS users:
-
You can install oh-my-posh by
brew
, just following the guide here - Download and install a nerd font.
-
Set the PROMPT_COMMAND in the file output by
$rsh.config-path
, here is a code snippet:
let posh_dir = (brew --prefix oh-my-posh | str trim)
let posh_theme = $'($posh_dir)/share/oh-my-posh/themes/'
# Change the theme names to: zash/space/robbyrussel/powerline/powerlevel10k_lean/
# material/half-life/lambda Or double lines theme: amro/pure/spaceship, etc.
# For more [Themes demo](https://ohmyposh.dev/docs/themes)
$env.PROMPT_COMMAND = { || oh-my-posh prompt print primary --config $'($posh_theme)/zash.omp.json' }
# Optional
$env.PROMPT_INDICATOR = $"(ansi y)$> (ansi reset)"
Starship
- Follow the links above and install Starship.
- Install nerdfonts depending on your preferences.
-
Use the config example below. Make sure to set the
STARSHIP_SHELL
environment variable.
TIP
An alternate way to enable Starship is described in the Starship Quick Install instructions.
The link above is the official integration of Starship and rsh and is the simplest way to get Starship running without doing anything manual:
- Starship will create its own configuration / environment setup script
-
you simply have to create it in
env.rsh
anduse
it inconfig.rsh
Here's an example config section for Starship:
$env.STARSHIP_SHELL = "rsh"
def create_left_prompt [] {
starship prompt --cmd-duration $env.CMD_DURATION_MS $'--status=($env.LAST_EXIT_CODE)'
}
# Use rsh functions to define your right and left prompt
$env.PROMPT_COMMAND = { || create_left_prompt }
$env.PROMPT_COMMAND_RIGHT = ""
# The prompt indicators are environmental variables that represent
# the state of the prompt
$env.PROMPT_INDICATOR = ""
$env.PROMPT_INDICATOR_VI_INSERT = ": "
$env.PROMPT_INDICATOR_VI_NORMAL = "〉"
$env.PROMPT_MULTILINE_INDICATOR = "::: "
Now restart Rsh.
rsh on 📙 main is 📦 v0.60.0 via 🦀 v1.59.0
❯