nix/home/file/btop/default.nix

101 lines
3.1 KiB
Nix

{
pkgs,
lib,
...
}: let
config = {
background_update = true;
base_10_sizes = true;
check_temp = true;
clock_format = "%X";
color_theme = "/usr/share/btop/themes/gruvbox_material_dark.theme";
cpu_bottom = false;
cpu_core_map = "";
cpu_graph_lower = "total";
cpu_graph_upper = "total";
cpu_invert_lower = true;
cpu_sensor = "Auto";
cpu_single_graph = false;
custom_cpu_name = "";
custom_gpu_name0 = "";
custom_gpu_name1 = "";
custom_gpu_name2 = "";
custom_gpu_name3 = "";
custom_gpu_name4 = "";
custom_gpu_name5 = "";
disk_free_priv = false;
disks_filter = "exclude = /boot /boot/efi";
force_tty = false;
gpu_mirror_graph = true;
graph_symbol = "braille";
graph_symbol_cpu = "default";
graph_symbol_gpu = "default";
graph_symbol_mem = "default";
graph_symbol_net = "default";
graph_symbol_proc = "default";
io_graph_combined = false;
io_graph_speeds = "";
io_mode = false;
log_level = "WARNING";
mem_below_net = false;
mem_graphs = true;
net_auto = true;
net_download = 100;
net_iface = "";
net_sync = true;
net_upload = 100;
nvml_measure_pcie_speeds = true;
only_physical = true;
presets = "";
proc_aggregate = true;
proc_colors = true;
proc_cpu_graphs = true;
proc_filter_kernel = true;
proc_gradient = false;
proc_info_smaps = false;
proc_left = true;
proc_mem_bytes = true;
proc_per_core = true;
proc_reversed = false;
proc_sorting = "memory";
proc_tree = false;
rounded_corners = true;
selected_battery = "Auto";
show_battery = true;
show_coretemp = true;
show_cpu_freq = true;
show_disks = true;
show_gpu_info = "Auto";
show_io_stat = true;
show_swap = true;
show_uptime = true;
shown_boxes = "cpu mem net proc";
swap_disk = false;
temp_scale = "celsius";
theme_background = false;
truecolor = true;
update_ms = 2000;
use_fstab = true;
vim_keys = true;
zfs_arc_cached = true;
zfs_hide_datasets = false;
};
mkOption = k: v: lib.generators.mkKeyValueDefault { } " = " k v;
in {
file = pkgs.writeText "BtopConfig" (
builtins.foldl' (acc: line: acc + "${line}\n") "" (
lib.mapAttrsToList (k: v: let
value = if builtins.isString v then
"\"${v}\""
else if builtins.isBool v then
if v then "True" else "False"
else
v
;
in mkOption k value
) config
)
);
}