
Me gustaría mostrar el tiempo de actividad en unidades comunes (no solo en minutos si es más de una hora; tampoco solo en segundos si es más de un minuto; por ejemplo, "1:02:30" durante 1 hora, 2 minutos y 30 segundos sería mi formato de tiempo ideal) en mi barra de estado i3. Ni siquiera he podido encontrar cómo mostrar el tiempo de actividad en la barra de estado de i3 en ninguna unidad. encontréeste repositorioen GitHub que parecía afirmar que hacía esto, pero copiar estas configuraciones me dio errores relacionados con la dificultad para ejecutar elstatus_command
línea en esteconfiguración del repositorio. Es decir, la status_command
línea es:
status_command ~/.i3/i3status.sh ~/.i3/i3status.conf
Supongo que sólo funciona con una versión anterior de i3. ¿Alguna idea de como hacer esto?aquíes mi ~/.i3status.conf
archivo actual. Mi distribución es Gentoo Linux.
Respuesta1
He encontrado la solución. Simplemente no entendí lo suficientemente bien su sintaxis. Solo tuve que editar mi ~/.i3/i3status.sh
archivo. Esto es ahora:
#!/bin/sh
/usr/bin/i3status -c $HOME/.i3status.conf | while :
do
read line
RAM=`free -kh | grep Mem | awk '{print $3}'`
TOTR=$(cat /proc/meminfo | grep MemT | sed 's/.*\://g' | sed 's/ *//g' | sed 's/kB//g')
TOT=$(octave --eval "$TOTR/1024^2" | sed 's/ans = *//g' | sed 's/$/G/g' )
# Put uptime
uptime=`uptime | awk '{print $3 " " $4}' | sed 's/,.*//'`
hour=$(echo $uptime | sed 's/\:.*//g')
min=$(echo $uptime | sed 's/.*\://g')
UP="$hour h $min m"
# Compile C++ CPU prog and run it
g++ -o cpu.o $HOME/.i3/cpu.cpp
CPU=$(./cpu.o)
printf "%s\n" "Up: $UP | CPU: $CPU% | RAM: $RAM/$TOT | $line"
done
Las líneas más relevantes para el tiempo de actividad están entre # Put uptime
y # Compile C++...
y la final.printf "%s\n"...
y el comando . Mis archivos de configuración completos de i3 se pueden encontrar eneste repositorio.
Respuesta2
Mi solución:
cree un script en cron.hourly para crearlo formateado /tmp/uptime
cada hora (no necesito más precisión que una hora) y utilícelo en i3status con readfile:
read_file uptime {
path = "/tmp/uptime"
}
Guion:
#!/bin/sh
awk '{printf("Up %dd:%02d\n",($1/60/60/24),($1/60/60%24),($1/60%60),($1%60))}' /proc/uptime > /tmp/uptime