199 lines
5.1 KiB
Nix
199 lines
5.1 KiB
Nix
{ pkgs, lib, ... }:
|
|
let
|
|
replace =
|
|
from: to: current:
|
|
if current == from then to else current;
|
|
toSingleLine =
|
|
with lib.strings;
|
|
s: concatMapStrings (stringAsChars (replace "\n" "")) (splitString "n" s);
|
|
theme = import ../theme.nix;
|
|
in
|
|
{
|
|
programs = {
|
|
fish = {
|
|
enable = true;
|
|
plugins = [
|
|
{
|
|
# !! to get the previous command
|
|
name = "fishbang";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "BrewingWeasel";
|
|
repo = "fishbang";
|
|
rev = "50389667eb9ac79edcff9b987c83e1de8ac93921";
|
|
hash = "sha256-IneNWyfo29C7FDA5b6pTZRX3HpP6y/dRM6GXuLq2+zc=";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
# TODO catppuccin colours on all parts
|
|
starship = {
|
|
enable = true;
|
|
settings = {
|
|
format = toSingleLine ''
|
|
[](#${theme.mantleAlpha})
|
|
$os
|
|
$username
|
|
[](bg:#${theme.lavenderAlpha} fg:#${theme.mantleAlpha})
|
|
$directory
|
|
[](fg:#${theme.lavenderAlpha} bg:#${theme.blueAlpha})
|
|
$git_branch
|
|
$git_status
|
|
[](fg:#${theme.blueAlpha} bg:#86BBD8)
|
|
$c
|
|
$elixir
|
|
$elm
|
|
$golang
|
|
$gradle
|
|
$haskell
|
|
$java
|
|
$julia
|
|
$nodejs
|
|
$nim
|
|
$rust
|
|
$scala
|
|
[](fg:#86BBD8 bg:#06969A)
|
|
$docker_context
|
|
[](fg:#06969A bg:#33658A)
|
|
$time
|
|
[ ](fg:#33658A)
|
|
'';
|
|
|
|
# Disable the blank line at the start of the prompt
|
|
# add_newline = false
|
|
|
|
# You can also replace your username with a neat symbol like or disable this
|
|
# and use the os module below
|
|
username = {
|
|
show_always = false;
|
|
style_user = "bg:#${theme.crustAlpha}";
|
|
style_root = "bg:#${theme.mantleAlpha}";
|
|
format = "[$user]($style) in ";
|
|
disabled = false;
|
|
};
|
|
|
|
os = {
|
|
style = "bg:#${theme.mantleAlpha}";
|
|
disabled = false;
|
|
};
|
|
|
|
directory = {
|
|
style = "bg:#${theme.lavenderAlpha} fg:#${theme.baseAlpha}";
|
|
format = "[ $path ]($style)";
|
|
truncation_length = 3;
|
|
truncation_symbol = "…/";
|
|
};
|
|
|
|
# Here is how you can shorten some long paths by text replacement
|
|
# similar to mapped_locations in Oh My Posh:
|
|
directory.substitutions = {
|
|
"Documents" = " ";
|
|
"Downloads" = " ";
|
|
"Music" = " ";
|
|
"Pictures" = " ";
|
|
};
|
|
# Keep in mind that the order matters. For example:
|
|
# "Important Documents" = " "
|
|
# will not be replaced, because "Documents" was already substituted before.
|
|
# So either put "Important Documents" before "Documents" or use the substituted version:
|
|
# "Important " = " "
|
|
|
|
c = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
docker_context = {
|
|
symbol = " ";
|
|
style = "bg:#06969A";
|
|
format = "[ $symbol $context ]($style)";
|
|
};
|
|
|
|
elixir = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
elm = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
git_branch = {
|
|
symbol = " ";
|
|
style = "bg:#${theme.blueAlpha} fg:#${theme.baseAlpha}";
|
|
format = "[ $symbol $branch ]($style)";
|
|
};
|
|
|
|
git_status = {
|
|
style = "bg:#${theme.blueAlpha} fg:#${theme.baseAlpha}";
|
|
format = "[$all_status$ahead_behind ]($style)";
|
|
};
|
|
|
|
golang = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
gradle = {
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
haskell = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
java = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
julia = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
nodejs = {
|
|
symbol = "";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
nim = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
rust = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
scala = {
|
|
symbol = " ";
|
|
style = "bg:#86BBD8";
|
|
format = "[ $symbol ($version) ]($style)";
|
|
};
|
|
|
|
time = {
|
|
disabled = false;
|
|
time_format = "%R"; # Hour:Minute Format
|
|
style = "bg:#33658A";
|
|
format = "[ $time ]($style)";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|