четверг, 21 августа 2014 г.

"Xfce typing break" - перерыв в работе | ч.2

Собственно сам скрипт, с иконкой в области уведомлений, сделанной с помощью yad (аналога zenity). Левый клик мышки - команда сделать перерыв немедленно. Ну то есть не совсем вот прямо щас, по умолчанию скринсейвер будет запущен в пределах 30 секунд после клика.
Правый клик не используется, а средний просто прибьет иконку, но процесс останется запущен (!), только уже без индикатора. Наверно такое поведение можно изменить, но мне лениво.

  1. #!/bin/bash
  2. # Xbreak - Xfce Typing Break
  3. gnomesu -c "physlock -l" || exit
  4. ### Параметры ###
  5. let idle=1*60*1000  # const
  6. let ptime=10*60     # время переыва, сек
  7. let wtime=60*60     # время работы, сек
  8. let ntime=2         # время до оповещения о перерыве, МИН
  9. let etime=$wtime-$ntime*60
  10. a=30                # const
  11. ### Иконка ###
  12. LOCK=~/.xbreak_state
  13. make_break () {
  14. echo 1 > ~/.xbreak_state
  15. echo Manual lock
  16. }
  17. export -f make_break
  18. yad --notification --image="system-lock-screen" --text="Xbreak running" --command="bash -c make_break" &
  19. screensaver() {
  20. xlock -mode clock -size 650 -cpasswd 65xps0fiOLxT6
  21. # xlock -mode dclock -led
  22. # openssl passwd -crypt <пароль>
  23. }
  24. warn() {
  25. notify-send 'Внимание!' "До перерыва осталось меньше $ntime минут"
  26. }
  27. while true
  28. do
  29.     killall xlock
  30.     i=0
  31.     echo 0 > $LOCK
  32.     while [ $i -lt $wtime ]
  33.     do
  34.         if [ $(cat $LOCK) = 1 ] # Блокировать сейчас
  35.         then break
  36.         fi
  37.         sleep $a
  38.         if [ $(xprintidle) -lt $idle ] # если клавиатура используется
  39.         then
  40.             let i=$i+$a
  41.         fi
  42.         if [ $i -gt $etime ]
  43.         then warn
  44.         fi
  45.     done
  46.     (
  47.     screensaver
  48.     ) &
  49.     sleep $ptime    # Перерыв
  50. done

версия 0.2, которая вроде бы работает.

версия 0.2.1:
 warn внутрь предыдущего цикла, а то зверушка задолбает напоминаниями

0 коммент. :

Отправить комментарий

Следующее Предыдущее Главная страница

Blogger Template by Blogcrowds