From 03b064b03d1f94b20d80da5a7fb71a1dd95370f9 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 15 Jul 2023 02:51:45 -0400 Subject: customize starship config per host and user --- .gitignore | 1 + Makefile | 8 ++- config/starship.toml | 5 +- config/starship.toml.PL | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 config/starship.toml.PL diff --git a/.gitignore b/.gitignore index 2440f41..79c3b35 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /config/alacritty/alacritty.yml +/config/starship.toml /config/darksky/api /hammerspoon/hs /local/share/fortune/*.dat diff --git a/Makefile b/Makefile index 56c0449..ad84719 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,8 @@ BUILD := \ $(addsuffix .dat,$(filter-out %.dat,$(wildcard local/share/fortune/*))) \ $(addsuffix tags,$(wildcard vim/pack/*/start/*/doc/)) \ vim/spell/en.utf-8.add.spl \ - less + less \ + config/starship.toml INSTALLED_SYMLINKS := \ $(patsubst %,$(INTO)/%,$(INSTALL)) \ @@ -150,4 +151,7 @@ local/share/fortune/%.dat : local/share/fortune/% @vim -u NONE -c':mkspell! $< | :q' less : lesskey - lesskey -o $@ $< + @lesskey -o $@ $< + +config/starship.toml : config/starship.toml.PL + @perl $< $$USER $$(hostname) > $@ diff --git a/config/starship.toml b/config/starship.toml index 548dfed..31fdc63 100644 --- a/config/starship.toml +++ b/config/starship.toml @@ -111,7 +111,6 @@ vimcmd_symbol = '[\[NOR\]](bright-yellow)' [palettes.local] bg = 'bright-black' -host = 'red' -user = 'bright-blue' -root = 'bright-red' git = 'green' +user = 'bright-blue' +host = 'red' diff --git a/config/starship.toml.PL b/config/starship.toml.PL new file mode 100644 index 0000000..54532dd --- /dev/null +++ b/config/starship.toml.PL @@ -0,0 +1,136 @@ +#!/usr/bin/env perl +use 5.014; +use warnings; + +my $char = $ARGV[0] eq 'root' ? '#' : '$'; +my $host = { + 'mz-doy1' => 'bright-white', + 'tozt' => 'bright-yellow', + 'partofme' => 'magenta', + 'mail' => 'green', + 'hornet' => 'red', +}->{$ARGV[1]} // 'yellow'; + +while () { + s/\@\@CHAR\@\@/$char/; + s/\@\@HOST\@\@/$host/; + print; +} + +__DATA__ +format = """ + [\\(](host)$directory([|](host)$git_branch$git_commit$git_status([|](host)$git_state))[\\)](host)( $aws)( $kubernetes)( $pulumi) $fill ($cmd_duration )($battery )$username[@](bg)$hostname [\\[](host)$time[\\]](host) $line_break\ +$status [\\@@CHAR@@](user) +""" +right_format = '$character' +add_newline = false +palette = 'local' + +[directory] +format = '[$path]($style)[$read_only]($read_only_style)' +style = 'bg' +repo_root_format = '[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style)' +repo_root_style = 'git' +fish_style_pwd_dir_length = 1 + +[git_state] +format = '[$state(:$progress_current/$progress_total)]($style)' +style = 'git' +rebase = 'r' +merge = 'm' +revert = 'v' +cherry_pick = 'c' +bisect = 'b' +am = 'a' +am_or_rebase = 'r' + +[git_branch] +format = '[$branch(:$remote_branch)]($style)' +style = 'git' +ignore_branches = ['main', 'master'] + +[git_commit] +format = '[$hash$tag]($style)' +style = 'git' + +[git_status] +format = '[$all_status$ahead_behind]($style)' +modified = '*' +stashed = '' +diverged = '+$ahead_count-$behind_count' +ahead = '+$count' +behind = '-$count' + +[aws] +format = '[$symbol$profile]($style)' +symbol = '☁️' +style = 'bg' + +[kubernetes] +disabled = false +format = '[$symbol$context]($style)' +symbol = '☸' +style = 'bg' + +[pulumi] +format = '[$symbol$stack]($style)' +symbol = '' +style = 'bg' + +[fill] +symbol = '─' +style = 'bg' + +[cmd_duration] +format = '[\($duration\)]($style)' +style = 'bg' + +[battery] +format = '[$percentage]($style)' + +[[battery.display]] +threshold = 5 +style = 'bright-red' + +[[battery.display]] +threshold = 15 +style = 'red' + +[[battery.display]] +threshold = 40 +style = 'yellow' + +[username] +disabled = false +format = '[$user]($style)' +style_user = 'user' +show_always = true + +[hostname] +disabled = false +format = '[$hostname]($style)' +style = 'host' +ssh_only = false + +[time] +disabled = false +format = '[$time]($style)' +style = 'bg' + +[line_break] + +[status] +disabled = false +format = '[$status]($style)' + +[character] +format = '$symbol' +success_symbol = '' +error_symbol = '' +vimcmd_symbol = '[\[NOR\]](bright-yellow)' + +[palettes.local] +bg = 'bright-black' +git = 'green' +user = 'bright-blue' +host = '@@HOST@@' -- cgit v1.2.3-54-g00ecf