Como posso criar um atalho que atua como um registro

0

Para o meu trabalho eu tenho que fazer tarefas repetitivas com prazos semanais. Eu gosto de saber o quão perto estou de terminar essas tarefas, então eu costumo manter um registro em um pedaço de papel. Infelizmente eu viajo muito e nem sempre tenho uma caneta ou um caderno. Isso é bom porque eu apenas gedit como uma alternativa, mas às vezes eu esqueço de salvar o gedit quando eu desligar e perder o controle do meu registro.

O que eu realmente quero, porém, é uma maneira de definir um atalho para que, toda vez que eu concluir uma tarefa, ela seja registrada em algum lugar e salva instantaneamente. Ele também precisa ser exibido de maneira rápida e fácil de alguma forma.

    
por jessenorton 06.07.2015 / 15:45

2 respostas

0

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.

    
por jessenorton 10.11.2015 / 23:35
1

Talvez você possa usar o emacs com o modo de organização. É muito mais poderoso do que simplesmente gerenciar suas tarefas, mas pode valer a pena cavar.

    
por frlan 06.07.2015 / 16:17