Eric Bower
·
2025-10-24
estatus
1#!/usr/bin/env fish
2
3function display_status
4 # Date and Time
5 set -l time_str (date "+%I:%M")
6 set -l date_str (date "+%m-%d")
7
8 # Network
9 set -l network_info "N/A"
10 set -l ssid (iwgetid -r) # pacman -S wireless_tools
11 if test $status -eq 0
12 set network_info "WiFi: $ssid"
13 else
14 set -l eth_device (ip route get 1.1.1.1 | awk '{print $5}')
15 if test -n "$eth_device"
16 set network_info "Eth: $eth_device"
17 end
18 end
19
20 # Battery
21 set -l battery_info "N/A"
22 set -l battery_paths (/bin/ls /sys/class/power_supply/ 2>/dev/null | /bin/grep '^BAT')
23 if test -n "$battery_paths"
24 set -l battery_path $battery_paths[1]
25 set -l capacity (cat "/sys/class/power_supply/$battery_path/capacity")
26 set battery_info "$capacity%"
27 end
28
29 # Volume
30 set -l volume_info "N/A"
31 set -l volume_output (wpctl get-volume @DEFAULT_AUDIO_SINK@ 2>/dev/null)
32 if test $status -eq 0
33 set -l volume_str (echo "$volume_output" | /usr/bin/awk '{print $2}')
34 set -l volume_percent (math -s0 "$volume_str * 100")
35 set volume_info "$volume_percent%"
36 end
37
38 # Brightness
39 set -l brightness_info "N/A"
40 set -l backlight_dirs (/bin/ls /sys/class/backlight/ 2>/dev/null)
41 if test -n "$backlight_dirs"
42 set -l backlight_dir $backlight_dirs[1]
43 set -l brightness (cat "/sys/class/backlight/$backlight_dir/brightness")
44 set -l max_brightness (cat "/sys/class/backlight/$backlight_dir/max_brightness")
45 if test $max_brightness -gt 0
46 set -l brightness_percent (math -s0 "$brightness * 100 / $max_brightness")
47 set brightness_info "$brightness_percent%"
48 end
49 end
50
51 notify-send "Status" "$date_str $time_str | $network_info | Bat: $battery_info | Vol: $volume_info | Bri: $brightness_info"
52end
53
54display_status