xscreensaver-watch
pomodoro
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
si estoy con auriculares, estoy en un pomodoro
Hace años que utilizo la técnica pomodoro=
1 y no
es fácil llevarla adelante, por un lado requiere de cierta
auto-disciplina y el entorno que me rodea no siempre contribuye, pero
recuerdo que en un momento de auge había convencido a mis pares que si
estaba con auriculares y con una notificación con un tomate, significaba
que debían esperar en el peor de los casos 25 minutos para «molestarme».
soy mi peor enemigo
Es fácil tirar culpas, pero la verdad, es probable que yo mismo haya sido quién interrumpió un pomodoro o me puse a hacer otra cosa, o ni siquiera inicié el pomodoro o lo inicié sin una definición precisa de la tarea que estaba por realizar.
Mucho peor, es ignorar las advertencias y continuar trabajando, sin realizar una pausa de 5 minutos, muchas veces sucede eso y es terrible porque no alejarse unos minutos del teclado hace mal en todo sentido, no te permite repensar un poco que estabas haciendo, porqué no funcionaba o porqué te estas frustrando con eso que no te sale, tal vez simplemente te dejaste llevar y te fuiste por las ramas.
la pausa son 5 minutos obligatorios!
Algo que le faltaba a mi script pomodoro
2 era obligarme
a pausar 5 minutos, luego de 25 minutos de trabajo intenso y enfocado,
asi que estuve dándole vueltas a esa idea hace unos días, ya que estoy
intentando ser un poco mas estricto con mis pomodoros y buscando por
la web, caí en un foro 3 donde había un ejemplo para escuchar
los eventos de xscreensaver
y en función de esos estados disparar
acciones!
xscreensaver-watch
Mi primer versión del script xscreensaver-watch
se ocupa de
registrar en un log cada vez que se bloquea (LOCK
) o desbloquea
(UNBLANK
) y en función de la fecha y hora, verificar si todavía no
pasaron 5 minutos, vuelve a activar xscreensaver
y por más que vuelva
a intentar desactivarlo ingresando mi contraseña, si no pasaron 5
minutos, me deja fuera de mi notebook :P
Falta pulir un poco, pero va queriendo bloquear correctamente :)
#!/bin/bash # This script comes with ABSOLUTELY NO WARRANTY, use at own risk # Copyright (C) 2021 Osiris Alejandro Gomez <osiux@osiux.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # based on https://bbs.archlinux.org/viewtopic.php?pid=1182514 LOG="$HOME/log/xscreensaver-watch.log" lock() { exec xscreensaver-command -lock & } last_lock() { local LOCK LOCK="$(grep LOCK "$LOG" | tail -1 | cut -d' ' -f2)" [[ -z "$LOCK" ]] && echo "$DATE $TIME LOCK" >> "$LOG" echo "$LOCK" } watch_lock() { LOCK=$(last_lock) DATE="$(date +'%F')" TIME="$(date +'%H:%M')" DIFF="$(timediff "$LOCK" "$TIME")" MINUTES="$(time2minutes "$DIFF")" [[ "$MINUTES" -ge 5 ]] && echo "$DATE $TIME LOCK" >> "$LOG" } watch_unblank() { LOCK=$(last_lock) DATE="$(date +'%F')" TIME="$(date +'%H:%M')" DIFF="$(timediff "$LOCK" "$TIME")" MINUTES="$(time2minutes "$DIFF")" [[ "$MINUTES" -lt 5 ]] && lock echo "$DATE $TIME UNBLANK" >> "$LOG" } watch_while() { while read -r LINE do case "$LINE" in UNBLANK*) watch_unblank;; LOCK*) watch_lock;; esac done } /usr/bin/xscreensaver-command -watch | watch_while
ChangeLog
2022-11-13 20:39
agregar y actualizar tags OpenGraph2021-03-07 23:02
agregarxscreensaver-watch
pomodoro