108 lines
3.2 KiB
Nix
108 lines
3.2 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
btop-colors-file = pkgs.writeTextFile {
|
|
name = "btop-colors";
|
|
text = with config.scheme.withHashtag; ''
|
|
# Credit to https://github.com/catppuccin/btop
|
|
# Main background, empty for terminal default, need to be empty if you want transparent background
|
|
theme[main_bg]="${base00}"
|
|
|
|
# Main text color
|
|
theme[main_fg]="${base05}"
|
|
|
|
# Title color for boxes
|
|
theme[title]="${base05}"
|
|
|
|
# Highlight color for keyboard shortcuts
|
|
theme[hi_fg]="${base0D}"
|
|
|
|
# Background color of selected item in processes box
|
|
theme[selected_bg]="${base02}"
|
|
|
|
# Foreground color of selected item in processes box
|
|
theme[selected_fg]="${base0D}"
|
|
|
|
# Color of inactive/disabled text
|
|
theme[inactive_fg]="${base03}"
|
|
|
|
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
|
theme[graph_text]="${base06}"
|
|
|
|
# Background color of the percentage meters
|
|
theme[meter_bg]="${base02}"
|
|
|
|
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
|
theme[proc_misc]="${base06}"
|
|
|
|
# CPU, Memory, Network, Proc box outline colors
|
|
theme[cpu_box]="${base0E}" #Mauve
|
|
theme[mem_box]="${base0B}" #Green
|
|
theme[net_box]="${base12}" #Maroon
|
|
theme[proc_box]="${base0D}" #Blue
|
|
|
|
# Box divider line and small boxes line color
|
|
theme[div_line]="${base03}"
|
|
|
|
# Temperature graph color (Green -> Yellow -> Red)
|
|
theme[temp_start]="${base0B}"
|
|
theme[temp_mid]="${base0A}"
|
|
theme[temp_end]="${base08}"
|
|
|
|
# CPU graph colors (Teal -> Lavender)
|
|
theme[cpu_start]="${base0C}"
|
|
theme[cpu_mid]="${base16}"
|
|
theme[cpu_end]="${base07}"
|
|
|
|
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
|
theme[free_start]="${base0E}"
|
|
theme[free_mid]="${base07}"
|
|
theme[free_end]="${base0D}"
|
|
|
|
# Mem/Disk cached meter (Sapphire -> Lavender)
|
|
theme[cached_start]="${base16}"
|
|
theme[cached_mid]="${base0D}"
|
|
theme[cached_end]="${base07}"
|
|
|
|
# Mem/Disk available meter (Peach -> Red)
|
|
theme[available_start]="${base09}"
|
|
theme[available_mid]="${base12}"
|
|
theme[available_end]="${base08}"
|
|
|
|
# Mem/Disk used meter (Green -> Sky)
|
|
theme[used_start]="${base0B}"
|
|
theme[used_mid]="${base0C}"
|
|
theme[used_end]="${base15}"
|
|
|
|
# Download graph colors (Peach -> Red)
|
|
theme[download_start]="${base09}"
|
|
theme[download_mid]="${base12}"
|
|
theme[download_end]="${base08}"
|
|
|
|
# Upload graph colors (Green -> Sky)
|
|
theme[upload_start]="${base0B}"
|
|
theme[upload_mid]="${base0C}"
|
|
theme[upload_end]="${base15}"
|
|
|
|
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
|
theme[process_start]="${base16}"
|
|
theme[process_mid]="${base07}"
|
|
theme[process_end]="${base0E}"
|
|
'';
|
|
destination = "/nixos.theme";
|
|
};
|
|
|
|
batConfigDir = pkgs.runCommand "mergedConfig" { } ''
|
|
mkdir -p $out/themes
|
|
cp -r ${btop-colors-file}/nixos.theme $out/themes/nixos.theme
|
|
'';
|
|
in
|
|
{
|
|
home.file.".config/btop" = {
|
|
source = batConfigDir;
|
|
recursive = true;
|
|
};
|
|
}
|