{ setting, util, ... }: {
	text = util.trimTabs ''
		#? Config file for btop v. 1.3.0

		#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
		#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
		color_theme = "/usr/share/btop/themes/gruvbox_material_dark.theme"

		#* If the theme set background should be shown, set to False if you want terminal background transparency.
		theme_background = False

		#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
		truecolor = True

		#* Set to true to force tty mode regardless if a real tty has been detected or not.
		#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
		force_tty = False

		#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
		#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
		#* Use whitespace " " as separator between different presets.
		#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
		presets = ""

		#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
		#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
		vim_keys = True

		#* Rounded corners on boxes, is ignored if TTY mode is ON.
		rounded_corners = True

		#* Default symbols to use for graph creation, "braille", "block" or "tty".
		#* "braille" offers the highest resolution but might not be included in all fonts.
		#* "block" has half the resolution of braille but uses more common characters.
		#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
		#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
		graph_symbol = "braille"

		# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
		graph_symbol_cpu = "default"

		# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
		graph_symbol_gpu = "default"

		# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
		graph_symbol_mem = "default"

		# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
		graph_symbol_net = "default"

		# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
		graph_symbol_proc = "default"

		#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
		shown_boxes = "cpu mem net proc"

		#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
		update_ms = ${toString setting.top.refresh.ms}

		#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
		#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
		proc_sorting = "memory"

		#* Reverse sorting order, True or False.
		proc_reversed = False

		#* Show processes as a tree.
		proc_tree = False

		#* Use the cpu graph colors in the process list.
		proc_colors = True

		#* Use a darkening gradient in the process list.
		proc_gradient = True

		#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
		proc_per_core = False

		#* Show process memory as bytes instead of percent.
		proc_mem_bytes = True

		#* Show cpu graph for each process.
		proc_cpu_graphs = True

		#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
		proc_info_smaps = False

		#* Show proc box on left side of screen instead of right.
		proc_left = True

		#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
		proc_filter_kernel = True

		#* In tree-view, always accumulate child process resources in the parent process.
		proc_aggregate = False

		#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
		#* Select from a list of detected attributes from the options menu.
		cpu_graph_upper = "total"

		#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
		#* Select from a list of detected attributes from the options menu.
		cpu_graph_lower = "total"

		#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
		show_gpu_info = "Auto"

		#* Toggles if the lower CPU graph should be inverted.
		cpu_invert_lower = True

		#* Set to True to completely disable the lower CPU graph.
		cpu_single_graph = False

		#* Show cpu box at bottom of screen instead of top.
		cpu_bottom = False

		#* Shows the system uptime in the CPU box.
		show_uptime = True

		#* Show cpu temperature.
		check_temp = True

		#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
		cpu_sensor = "Auto"

		#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
		show_coretemp = True

		#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
		#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
		#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
		#* Example: "4:0 5:1 6:3"
		cpu_core_map = ""

		#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
		temp_scale = "celsius"

		#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
		base_10_sizes = True

		#* Show CPU frequency.
		show_cpu_freq = True

		#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
		#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
		clock_format = "%X"

		#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
		background_update = True

		#* Custom cpu model name, empty string to disable.
		custom_cpu_name = ""

		#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
		#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
		disks_filter = "exclude=/boot /boot/efi"

		#* Show graphs instead of meters for memory values.
		mem_graphs = True

		#* Show mem box below net box instead of above.
		mem_below_net = False

		#* Count ZFS ARC in cached and available memory.
		zfs_arc_cached = True

		#* If swap memory should be shown in memory box.
		show_swap = True

		#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
		swap_disk = False

		#* If mem box should be split to also show disks info.
		show_disks = True

		#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
		only_physical = True

		#* Read disks list from /etc/fstab. This also disables only_physical.
		use_fstab = True

		#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
		zfs_hide_datasets = False

		#* Set to true to show available disk space for privileged users.
		disk_free_priv = False

		#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
		show_io_stat = True

		#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
		io_mode = False

		#* Set to True to show combined read/write io graphs in io mode.
		io_graph_combined = False

		#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
		#* Example: "/mnt/media:100 /:20 /boot:1".
		io_graph_speeds = ""

		#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
		net_download = 100

		net_upload = 100

		#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
		net_auto = True

		#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
		net_sync = True

		#* Starts with the Network Interface specified here.
		net_iface = ""

		#* Show battery stats in top right if battery is present.
		show_battery = True

		#* Which battery to use if multiple are present. "Auto" for auto detection.
		selected_battery = "Auto"

		#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
		#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
		log_level = "WARNING"

		#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
		nvml_measure_pcie_speeds = True

		#* Horizontally mirror the GPU graph.
		gpu_mirror_graph = True

		#* Custom gpu0 model name, empty string to disable.
		custom_gpu_name0 = ""

		#* Custom gpu1 model name, empty string to disable.
		custom_gpu_name1 = ""

		#* Custom gpu2 model name, empty string to disable.
		custom_gpu_name2 = ""

		#* Custom gpu3 model name, empty string to disable.
		custom_gpu_name3 = ""

		#* Custom gpu4 model name, empty string to disable.
		custom_gpu_name4 = ""

		#* Custom gpu5 model name, empty string to disable.
		custom_gpu_name5 = ""
	'';
}