Browse Source

hyprlock: use UptimeNixOS script to get the output if uptime -p not available

pull/253/head
John Titor 2 years ago
parent
commit
4cd64ff0b9
No known key found for this signature in database
GPG Key ID: 29B0514F4E3C1CC0
  1. 3
      config/hypr/hyprlock.conf
  2. 33
      config/hypr/scripts/UptimeNixOS.sh

3
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

33
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"
Loading…
Cancel
Save