diff options
| author | John Titor <50095635+JohnRTitor@users.noreply.github.com> | 2024-05-10 12:16:30 +0530 |
|---|---|---|
| committer | John Titor <50095635+JohnRTitor@users.noreply.github.com> | 2024-05-10 12:16:30 +0530 |
| commit | 4cd64ff0b907f8d8d6503bcb7c858ca25494d1cb (patch) | |
| tree | ba7419e774eed9bf687545d257d6709d1ed02ba3 /config/hypr | |
| parent | 4b44f8eceb31ed13453a5ba5f0a735d52d92e065 (diff) | |
hyprlock: use UptimeNixOS script to get the output if uptime -p not available
Diffstat (limited to 'config/hypr')
| -rw-r--r-- | config/hypr/hyprlock.conf | 3 | ||||
| -rw-r--r-- | config/hypr/scripts/UptimeNixOS.sh | 33 |
2 files changed, 35 insertions, 1 deletions
diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf index f41d646a..eec6d31f 100644 --- a/config/hypr/hyprlock.conf +++ b/config/hypr/hyprlock.conf @@ -4,6 +4,7 @@ # Sourcing colors generated by wallust source = $HOME/.config/hypr/wallust/wallust-hyprland.conf +$Scripts = $HOME/.config/hypr/scripts general { grace = 1 @@ -99,7 +100,7 @@ label { # uptime label { monitor = - text = cmd[update:60000] echo "<b> "$(uptime -p)" </b>" + text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>" color = $color12 font_size = 24 font_family = JetBrains Mono Nerd Font 10 diff --git a/config/hypr/scripts/UptimeNixOS.sh b/config/hypr/scripts/UptimeNixOS.sh new file mode 100644 index 00000000..654ae2c8 --- /dev/null +++ b/config/hypr/scripts/UptimeNixOS.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Script parses /proc/uptime to get the system uptime +# and prints it in a human-readable format +# This is a workaround for system where `uptime` command is taken from coreutils +# where `uptime -p` is not supported + +if [[ -r /proc/uptime ]]; then + s=$(< /proc/uptime) + s=${s/.*} +else + echo "Error UptimeNixOS.sh: Uptime could not be determined." >&2 + exit 1 +fi + +d="$((s / 60 / 60 / 24)) days" +h="$((s / 60 / 60 % 24)) hours" +m="$((s / 60 % 60)) minutes" + +# Remove plural if < 2. +((${d/ *} == 1)) && d=${d/s} +((${h/ *} == 1)) && h=${h/s} +((${m/ *} == 1)) && m=${m/s} + +# Hide empty fields. +((${d/ *} == 0)) && unset d +((${h/ *} == 0)) && unset h +((${m/ *} == 0)) && unset m + +uptime=${d:+$d, }${h:+$h, }$m +uptime=${uptime%', '} +uptime=${uptime:-$s seconds} + +echo "up $uptime" |
