Como exibir o tempo de atividade na barra i3status?

2

Gostaria de exibir o tempo de atividade em unidades comuns (portanto, não apenas em minutos, se for mais de uma hora; também não apenas em segundos, se for mais de um minuto; por exemplo, "1:02:30" por 1 hora, 2 minutos e 30 segundos seria o meu formato de hora ideal) na minha barra i3status. Eu nem consegui descobrir como mostrar o tempo de atividade na barra do i3status em qualquer unidade. Eu encontrei este repositório no GitHub que parecia reivindicar isso, mas copiar essas configurações me deu erros relacionados à dificuldade de executar o status_command de linha nesta configuração do repo . Ou seja, a linha status_command é:

status_command ~/.i3/i3status.sh ~/.i3/i3status.conf

adivinhando que só funciona com uma versão mais antiga do i3. Alguma idéia de como fazer isso? aqui é o meu arquivo ~/.i3status.conf atual. Minha distribuição é o Gentoo Linux.

    
por Brenton Horne 19.05.2017 / 10:19

1 resposta

3

Eu encontrei a solução. Eu simplesmente não entendi sua sintaxe bem o suficiente. Acabei de editar meu arquivo ~/.i3/i3status.sh . Agora é:

#!/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

As linhas mais relevantes para o tempo de atividade estão entre # Put uptime e # Compile C++... e o comando final printf "%s\n"... . Meus arquivos de configuração completos do i3 podem ser encontrados em este repositório .

    
por 19.05.2017 / 20:48

Tags