Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

nushell/modules/akku.nu

Raw
# Print information about the battery on this device
export def main [] {
	let device_directory = '/sys/class/power_supply/BAT0'
	if ( not ($device_directory | path exists) ) {
		print --stderr $"Could not find ($device_directory). Does this device have a battery? Maybe under another path?"
		return
	}
	let energy_full = (open ([$device_directory energy_full] | path join) | into int)
	let energy_now = (open ([$device_directory energy_now] | path join) | into int)
	let current_energy = $energy_now / $energy_full
	let current_energy_percent = $current_energy * 100 | into int
	let icon = battery_icon $current_energy_percent
	print $"($icon) ($current_energy_percent)%"
}

def battery_icon [
	percent: int
] {
	let index = ( ($percent | math ceil) / 10 | math floor | into int)
	let icons = [
		'󰁺 '
		'󰁻 '
		'󰁼 '
		'󰁽 '
		'󰁾 '
		'󰁿 '
		'󰂀 '
		'󰂁'
		'󰂂 '
		'󰁹 '
	]
	return ($icons | get $index)
}