nix-stuff/roles/common/programs/starship.nix
Toast 6f82fb26bd Common/starship: remove catppuccin preset
The catpuccin nix module already does this
2024-08-05 12:53:29 +02:00

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;
};
};
}