53 lines
1.2 KiB
Nix
53 lines
1.2 KiB
Nix
{ pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
with builtins;
|
|
|
|
let
|
|
catppuccinFlavour = "mocha";
|
|
catppuccinStarship = pkgs.catppuccin + /starship/${catppuccinFlavour}.toml;
|
|
|
|
presets = {
|
|
nerdFontSymbols = pkgs.fetchurl {
|
|
url = "https://starship.rs/presets/toml/nerd-font-symbols.toml";
|
|
hash = "sha256-BVe5JMSIa3CoY2Wf9pvcF1EUtDVCWCLhW3IyKuwfHug=";
|
|
};
|
|
};
|
|
# -------------------------------- 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)
|
|
(readTomlPreset catppuccinStarship)
|
|
{
|
|
nix_shell = {
|
|
disabled = false;
|
|
heuristic = true;
|
|
};
|
|
os = {
|
|
disabled = false;
|
|
};
|
|
directory = {
|
|
disabled = false;
|
|
truncation_length = 6;
|
|
truncation_symbol = ".../";
|
|
};
|
|
palette = "catppuccin_${catppuccinFlavour}";
|
|
}
|
|
];
|
|
};
|
|
}
|