mirror of
https://github.com/starship/starship.git
synced 2024-11-26 18:24:28 +01:00
on Zsh, battery percentage character would print % this PR fixes print %{ -> %
This commit is contained in:
parent
feb737190e
commit
08aef016cd
@ -167,8 +167,8 @@ if [[ $preexec_functions ]]; then
|
|||||||
preexec_functions+=(starship_preexec)
|
preexec_functions+=(starship_preexec)
|
||||||
precmd_functions+=(starship_precmd)
|
precmd_functions+=(starship_precmd)
|
||||||
else
|
else
|
||||||
# We want to avoid destroying an existing DEBUG hook. If we detect one, create
|
# We want to avoid destroying an existing DEBUG hook. If we detect one, create
|
||||||
# a new function that runs both the existing function AND our function, then
|
# a new function that runs both the existing function AND our function, then
|
||||||
# re-trap DEBUG to use this new function. This prevents a trap clobber.
|
# re-trap DEBUG to use this new function. This prevents a trap clobber.
|
||||||
dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')"
|
dbg_trap="$(trap -p DEBUG | cut -d' ' -f3 | tr -d \')"
|
||||||
if [[ -z "$dbg_trap" ]]; then
|
if [[ -z "$dbg_trap" ]]; then
|
||||||
@ -255,4 +255,5 @@ function fish_prompt
|
|||||||
set -l starship_duration (math --scale=0 "$CMD_DURATION / 1000")
|
set -l starship_duration (math --scale=0 "$CMD_DURATION / 1000")
|
||||||
## STARSHIP ## prompt --status=$exit_code --cmd-duration=$starship_duration --jobs=(count (jobs -p))
|
## STARSHIP ## prompt --status=$exit_code --cmd-duration=$starship_duration --jobs=(count (jobs -p))
|
||||||
end
|
end
|
||||||
|
export STARSHIP_SHELL="fish"
|
||||||
"##;
|
"##;
|
||||||
|
@ -8,6 +8,13 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
const BATTERY_CHARGING: &str = "⇡";
|
const BATTERY_CHARGING: &str = "⇡";
|
||||||
const BATTERY_DISCHARGING: &str = "⇣";
|
const BATTERY_DISCHARGING: &str = "⇣";
|
||||||
const BATTERY_THRESHOLD: f32 = 10.0;
|
const BATTERY_THRESHOLD: f32 = 10.0;
|
||||||
|
// TODO: Update when v1.0 printing refactor is implemented to only
|
||||||
|
// print escapes in a prompt context.
|
||||||
|
let shell = std::env::var("STARSHIP_SHELL").unwrap_or_default();
|
||||||
|
let percentage_char = match shell.as_str() {
|
||||||
|
"zsh" => "%%", // % is an escape in zsh, see PROMPT in `man zshmisc`
|
||||||
|
_ => "%",
|
||||||
|
};
|
||||||
|
|
||||||
let battery_status = get_battery_status()?;
|
let battery_status = get_battery_status()?;
|
||||||
let BatteryStatus { state, percentage } = battery_status;
|
let BatteryStatus { state, percentage } = battery_status;
|
||||||
@ -42,7 +49,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
let mut percent_string = Vec::<String>::with_capacity(2);
|
let mut percent_string = Vec::<String>::with_capacity(2);
|
||||||
// Round the percentage to a whole number
|
// Round the percentage to a whole number
|
||||||
percent_string.push(percentage.round().to_string());
|
percent_string.push(percentage.round().to_string());
|
||||||
percent_string.push("%".to_string());
|
percent_string.push(percentage_char.to_string());
|
||||||
module.new_segment("percentage", percent_string.join("").as_ref());
|
module.new_segment("percentage", percent_string.join("").as_ref());
|
||||||
|
|
||||||
Some(module)
|
Some(module)
|
||||||
|
Loading…
Reference in New Issue
Block a user