1 { pkgs, lib, config, ... }:
5 enableBashIntegration = config.programs.bash.enable;
6 # DOC: https://starship.rs/config/
10 continuation_prompt = "[↳](bright-black) ";
11 format = "$username$hostname$localip$shlvl$git_branch$git_commit$git_state$git_metrics$git_status$c$container$ocaml$purescript$nix_shell$haskell$memory_usage$sudo$cmd_duration$time$line_break$jobs$battery$directory$status$character";
16 format = "[$symbol$percentage]($style) ";
17 charging_symbol = " ";
18 discharging_symbol = " ";
21 unknown_symbol = " ";
32 vicmd_symbol = "[❮](bold green)";
34 success_symbol = "[➜](bold green)";
35 error_symbol = "[✗](bold red)";
39 format = "[($duration )]($style)";
40 style = "bright-black bold";
41 show_milliseconds = false;
43 show_notifications = false;
44 min_time_to_notify = 45000;
47 format = "[$symbol [$name]]($style) ";
49 style = "red bold dimmed";
54 fish_style_pwd_dir_length = 0;
55 format = "[$path]($style)[$read_only]($read_only_style) ";
57 #before_repo_root_style = "bold gray";
58 #repo_root_style = "bold cyan";
60 #read_only_style = "orange";
61 #repo_root_format = "[$before_root_path]($style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) ";
63 truncate_to_repo = true;
64 truncation_length = 3;
65 truncation_symbol = "…/";
66 use_logical_path = true;
67 use_os_path_sep = true;
69 directory.substitutions = {
70 ## Here is how you can shorten some long paths by text replacement;
71 ## similar to mapped_locations in Oh My Posh:;
76 ## Keep in mind that the order matters. For example:;
77 ## "Important Documents" = " ";
78 ## will not be replaced, because "Documents" was already substituted before.;
79 ## So either put "Important Documents" before "Documents" or use the substituted version:;
80 ## "Important " = " ";
81 #"Important " = " ";
85 format = "[$symbol($env_value )]($style)";
86 style = "bright-black bold italic dimmed";
90 default = "unknown shell";
93 format = "[$symbol($env_value )]($style)";
94 style = "bright-black bold italic dimmed";
97 default = "unknown user";
100 style = "bold black";
105 format = "[$symbol$branch(:$remote_branch)]($style) ";
107 style = "bold purple bg:0xFCA17D";
108 truncation_length = 9223372036854775807;
109 truncation_symbol = "…";
110 only_attached = false;
111 always_show_remote = false;
112 ignore_branches = [ ];
116 commit_hash_length = 7;
117 format = "[($hash$tag)]($style) ";
118 style = "green bold";
119 only_detached = true;
125 added_style = "bold green";
126 deleted_style = "bold red";
127 only_nonzero_diffs = true;
128 format = "([+$added]($added_style) )([-$deleted]($deleted_style) )";
133 am_or_rebase = "AM/REBASE";
134 bisect = "BISECTING";
135 cherry_pick = "🍒PICKING(bold red)";
137 format = "([$state( $progress_current/$progress_total)]($style)) ";
140 revert = "REVERTING";
141 style = "bold yellow";
144 format = "([$all_status( $ahead_behind)]($style) )";
145 style = "purple bold";
146 ahead = "⇡\${count}";
147 diverged = "⇡\${ahead_count}⇣\${behind_count}";
148 behind = "⇣\${count}";
156 format = "([$all_status$ahead_behind]($style) )";
157 ignore_submodules = false;
160 staged = "[++($count)](green)";
162 style = "red bold bg:0xFCA17D";
168 format = "[$symbol($version )]($style)";
169 version_format = "v$raw";
171 style = "yellow bold";
173 detect_extensions = [
183 detect_folders = [ ];
187 format = "[$hostname]($style) ";
189 style = "red dimmed bold";
194 symbol_threshold = 1;
195 number_threshold = 1;
196 format = "[$symbol$number]($style) ";
198 style = "yellow bold";
206 format = "[@$localipv4]($style) ";
208 style = "yellow bold";
212 format = "$symbol[$ram( | $swap)]($style) ";
213 style = "white bold dimmed";
219 format = "[$symbol]($style) ";
220 #format = "[$symbol$state( \\($name\\))]($style)";
223 #impure_msg = "[impure](bold red)";
224 pure_msg = "[pure](bold green)";
230 format = "[$symbol($version )(($switch_indicator$switch_name) )]($style)";
231 global_switch_indicator = "";
232 local_switch_indicator = "*";
233 style = "bold yellow";
235 version_format = "v$raw";
237 detect_extensions = [
257 format = "[$symbol($version )]($style)";
258 version_format = "v$raw";
260 style = "bold white";
262 detect_extensions = [ "purs" ];
263 detect_files = [ "spago.dhall" ];
264 detect_folders = [ ];
267 format = "[$symbol($version )]($style)";
268 version_format = "v$raw";
272 detect_extensions = [
279 detect_files = [ ".Rprofile" ];
280 detect_folders = [ ".Rproj.user" ];
284 format = "[$symbol$shlvl]($style) ";
287 style = "bold yellow";
291 format = "[$symbol$status]($style) ";
293 not_executable_symbol = "🚫";
294 not_found_symbol = "🔍";
296 pipestatus_format = "[$pipestatus] => [$symbol$common_meaning$signal_name$maybe_int]($style)";
297 pipestatus_separator = "|";
298 recognize_signal_code = true;
300 style = "bold red bg:blue";
301 success_symbol = "🟢 SUCCESS";
306 format = "[as $symbol]($style)";
309 allow_windows = false;
313 format = "[\\[$time\\]]($style)";
314 style = "bright-black bold";
317 utc_time_offset = "local";
318 # time_format = "%R"; # Hour:Minute Format;
319 time_format = "%T"; # Hour:Minute:Seconds Format;
323 format = "[$user]($style) ";
325 style_root = "red bold bg:0x9A348E";
326 style_user = "bright-black bold bg:0x9A348E";
334 function set_win_title(){
335 echo -ne "\033]0;Term: $USER@$HOSTNAME: $PWD\007"
337 starship_precmd_user_func="set_win_title"