{
  lib,
  config,
  pkgs,
  ...
}: let
  cfg = config.myConfig.shell.btop;
in {
  options.myConfig.shell.btop = {
    enable = lib.mkEnableOption "btop, a system monitor";
  };

  config = lib.mkIf cfg.enable {
    programs.btop = {
      enable = true;
      settings = {
        color_theme = "${pkgs.btop}/share/btop/themes/adapta.theme";
        theme_background = true;
        rounded_corners = true;
        graph_symbol = "braille";
        shown_boxes = "proc cpu mem net";
        update_ms = 1000;
        proc_sorting = "cpu lazy";
        proc_colors = true;
        proc_gradient = true;
        proc_per_core = true;
        proc_mem_bytes = true;
        cpu_graph_upper = "total";
        cpu_single_graph = true;
        show_uptime = true;
        check_temp = true;
        cpu_sensor = "Auto";
        show_coretemp = true;
        temp_scale = "celsius";
        base_10_sizes = false;
        show_cpu_freq = true;
        clock_format = "%H:%M";
        background_update = true;
        mem_graphs = true;
        show_swap = true;
        show_io_stat = true;
        net_download = 128;
        net_upload = 128;
        net_auto = false;
        show_battery = true;
        selected_battery = "Auto";
        gpu_mirror_graph = false;
        custom_gpu_name0 = "Internal";
      };
    };
  };
}
