A maneira mais simples de resolver que encontrei foi criar um script de traço que armazena o registro em um arquivo de texto e exibe o valor usando notify-send
.
Eu usei source
para definir o local dos valores que eu queria manter um registro de:
#!/bin/sh
. /home/jesse/.scripts/tally
E o arquivo de registro tem apenas uma linha que diz:
written=0
Depois, criei funções para mostrar a contagem, limpar a contagem e adicionar à contagem.
Para mostrar a contagem necessária, comecei a recarregar o registro para ter certeza de que está atualizado. Então eu posso usar notify-send
assim:
show() {
. /home/jesse/.scripts/tally
notify-send -i "/home/jesse/.scripts/icon.png" \
"Total for this week:" "Written: $written"
}
Para adicionar ao registro que a função precisa ler da contagem, adicione 1 ao valor, reescreva o registro e, em seguida, chame a função show:
add() {
num=$(($written + 1))
printf "written=$num" > /home/jesse/.scripts/tally
show
}
A função clara é bastante autoexplicativa:
clear() {
printf "written=0" > /home/jesse/.scripts/tally
show
}
Finalmente, para chamar as funções individuais do script, eu precisava terminar o script com $@
para que os argumentos possam ser chamados textualmente. O script completo é:
#!/bin/sh
. /home/jesse/.scripts/tally
show() {
. /home/jesse/.scripts/tally
notify-send -i "/home/jesse/.scripts/icon.png" \
"Total for this week:" "Written: $written"
}
add() {
num=$(($written + 1))
printf "written=$num" > /home/jesse/.scripts/tally
show
}
clear() {
printf "written=0" > /home/jesse/.scripts/tally
show
}
$@
A partir daí, eu poderia atribuir atalhos de teclado para chamar funções individuais do script e gerenciar uma boa aparência que é exibida na janela de notificação apenas pressionando alguns botões.
Espero que isso ajude alguém. Este é meu primeiro roteiro e estou feliz com isso, mas certamente haverá maneiras mais limpas de conseguir isso.