Для моей работы я должен сделать повторяющиеся задачи с еженедельными крайними сроками. Мне нравится знать, как близко я к окончанию этих задач, таким образом, я склонен сохранять счет на листке бумаги. К сожалению, я путешествую много и не всегда имею перо или ноутбук. Это прекрасно, потому что я просто gedit как альтернатива, но иногда я забываю сохранять gedit, когда я завершаю работу и теряю след своего счета.
Что я действительно хочу, хотя способ установить ярлык так, чтобы каждый раз я выполнил задачу, это зарегистрировано где-нибудь и сохранено немедленно. Это также должно быть быстро и легко отображено так или иначе.
Самый простой способ решить это, которое я нашел, состоял в том, чтобы создать сценарий тире, который хранит счет в текстовом файле и отображает использование значения notify-send
.
Я использовал source
для установки местоположения для значений, я хотел сохранить счет:
#!/bin/sh
. /home/jesse/.scripts/tally
И файл счета просто имеет одну строку, которая читает:
written=0
Затем я создал функции для показа счета, очистки счета и добавления к счету.
Для показа счета, я должен был запустить путем перезагрузки счета, чтобы удостовериться, что это актуально. Затем я могу использовать notify-send
как это:
show() {
. /home/jesse/.scripts/tally
notify-send -i "/home/jesse/.scripts/icon.png" \
"Total for this week:" "Written: $written"
}
Для добавления к счету, функция должна читать из счета, добавить 1 к значению, переписать счет и затем вызвать выставочную функцию:
add() {
num=$(($written + 1))
printf "written=$num" > /home/jesse/.scripts/tally
show
}
Ясная функция довольно очевидна:
clear() {
printf "written=0" > /home/jesse/.scripts/tally
show
}
Наконец, для вызывания отдельных функций из сценария, я должен был закончить сценарий с $@
так, чтобы аргументы можно было назвать дословными. Полный сценарий:
#!/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
}
$@
Оттуда я мог присвоить сочетания клавиш, чтобы вызвать отдельные функции из сценария и управлять красивым счетом, который отображен в окне уведомления только путем нажатия нескольких кнопок.
Надежда это помогает кому-то. Это - мой первый сценарий тире, и я доволен им, но там обязан быть более чистыми способами достигнуть этого.
Возможно, можно использовать emacs с org-режимом. Это намного более мощно, чем просто простой, управляют Вашими задачами, но мог бы стоить для рытья в.