powerline-rs
is a rewrite of powerline-shell, inspired by powerline-go.
Speed! I haven't done any extensive benchmarks, but it appears like
even the debug version of powerline-rs
is about 20 milliseconds faster than powerline-go
.
The Rust language is perfect for fast applications, since copying large structures isn't implicit.
cargo install powerline-rs
It's also available on Nix and the AUR (not officially maintained).
In order to use optional features, add something like --features "feature1,feature2,etc"
to the end of the command.
To disable default features, add --no-default-features
(and manually readd features you want to keep).
Optional features:
Default features:
Then add the following code to your shell:
Bash
Fish
Zsh
Well, the default modules have changed to not include the username and hostname. I feel like most people already know that. But you can always enable it, of course!
libgit2
over calling and parsing git
output (Thanks tbodt for suggesting it!)libgit2
can be disabled at compile time if you don't plan on using git functionality.key=value
scripts. No JSON overhead or similar.powerline-rs
is slightly smaller than the 2 alternatives I mentioned. To be honest, I have no idea why.Most of the service-specific modules are deleted. I am very lazy.
Pull requests are welcome, though.
Also, the jobs
module won't work with --shell bare
.
Bash
prompt() {
PS1="$(powerline-rs --shell bash $?)"
}
PROMPT_COMMAND=prompt
Zsh
prompt() {
PS1="$(powerline-rs --shell zsh $?)"
}
precmd_functions+=(prompt)
Fish
function fish_prompt
powerline-rs --shell bare $status
end
We can't display the success status because ion now forbids the use $?
from
functions as a bi-product of the new namespacing
system. This will
of course eventually be resolved.
Ion
fn PROMPT
powerline-rs --shell bare
end