56 lines
1.4 KiB
Nix
56 lines
1.4 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib;
|
|
with builtins; let
|
|
presets = {
|
|
nerdFontSymbols = pkgs.fetchurl {
|
|
url = "https://starship.rs/presets/toml/nerd-font-symbols.toml";
|
|
hash = "sha256-JKX+DKY4IPQwNj3znkhMUReNqbKBxdJyBZW+WCdKwuU=";
|
|
};
|
|
};
|
|
# -------------------------------- F U N C T I O N S --------------------------------
|
|
|
|
/*
|
|
Gonna be honest, I have no idea how this works, although it seems to work
|
|
Stolen from https://gist.github.com/pdalpra/daf339f59288201a6c8ba7dc84e9060e
|
|
*/
|
|
# Takes a list of attrSets and merges them
|
|
mergeAllAttrSets = attrsSets:
|
|
foldl' recursiveUpdate {} attrsSets;
|
|
|
|
# Reads a TOML file and parses it
|
|
readTomlPreset = file: (fromTOML (readFile file));
|
|
in {
|
|
programs.starship = {
|
|
enable = true;
|
|
settings = mergeAllAttrSets [
|
|
(readTomlPreset presets.nerdFontSymbols)
|
|
{
|
|
nix_shell = {
|
|
disabled = false;
|
|
heuristic = true;
|
|
};
|
|
os = {
|
|
disabled = false;
|
|
};
|
|
directory = {
|
|
disabled = false;
|
|
truncation_length = 6;
|
|
truncation_symbol = ".../";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
# The catppuccin module only works for home-manager, so this
|
|
# sets up starship with home-manager using the system config
|
|
home-manager.users.toast = {osConfig, ...}: {
|
|
programs.starship = {
|
|
enable = true;
|
|
catppuccin.enable = true;
|
|
settings = osConfig.programs.starship.settings;
|
|
};
|
|
};
|
|
}
|