pomodoro.sh

Letöltés

A pomodoro egy módszer, ami segíthet az idő hatékonyabb kihasználásában. Irodai, kreatív munka során különösen hasznos lehet. A lényege, hogy a munkákat rövidebb - alapvetően 25 perces - szakaszokra bontva végezzük el, minden szakasz között rövidebb szünetet tartva. A legfontosabb, hogy egy pomodoro menetben kizárólag az adott feladattal foglalkozzunk. A kizárólag főleg azt jelenti, hogy nem olvasunk e-mailt, mi nem kapcsolódik a témához, nem chat-elünk, nem szólunk senkihez, nem kalandozunk feladataink véget nem érő listájában, hanem csak azt az egy kiválasztott munkát végezzük. Ha letelt az idő, akkor pedig dobjunk el mindent, akkor muszáj bármi mást csinálni, e-mailezni, kismacskát simogatni is. A koncentrált munkavégzés miatt a produktivitásunk hatalmasat nőhet, a szünetek pedig megakadályozzák, hogy idő előtt elfáradjunk.

Mondanom sem kell, a legnehezebb figyelmen kívül hagyni azt a rengeteg ingert. Chat, e-mail, kolléga a másik asztalnál nem ismer viccet.

Természetesen a nagy analóg csörgőóra mellett rengeteg program létezik, ami mást sem tesz, mint visszaszámol, esetleg letilt értesítéseket. Éppen ilyen természetes, hogy nekem egyik sem felel meg tökéletesen és különben is egy igazán egyszerű igényről van szó, amit élvezet mégegyszer megoldani.

Volt nekem erre már IRC/Slack botom (https://github.com/Ajnasz/hubot-pomodoro). Ezekről gyakran lemaradtam, mert az irc másik tmux sessionben fut és hangot sem ad. Hónapokkal ezelőtt kezdtem el csinálni az egyszerűbb megoldást, amit shellben meg tudok pattintani.

sleep 10 && aplay /usr/share/sounds/purple/alert.wav

10 másodperc után egy hangfile lejátszása. A tmux is kiemeli az ablakot, mert változás történt.

sleep $(echo "1 * 5" | bc) && aplay /usr/share/sounds/purple/alert.wav

Itt azt próbáltam, hogy milyen volna bc paranccsal lehetne kiszámolni, hogy meddig tartson a sleep.

sleep $((25 * 60)) && aplay /usr/share/sounds/purple/alert.wav

Látszik, hogy mennyivel szebb, ha a bc sincs bevonva.

i=0;while [ $i -lt $((1 * 1)) ];do sleep 1; i=$(($i + 1)); echo $i;done; aplay /usr/share/sounds/purple/alert.wav

Na itt már látszik, hogy nem fog egy sorban megállni. Csak illene tudni, hogy mennyi idő telt el. Egymás alá írogatja a másodperceket.

i=0;while [ $i -lt $((1 * 5)) ];do sleep 1; i=$(($i + 1)); echo -n "\r$i";done;echo; aplay /usr/share/sounds/purple/alert.wav

Itt pedig az utolsó egy soros, ahol helyben frissítjük a kiírt eltelt időt.

Nagyjából ezután került be minden egy file-ba és lett a neve pomodoro.sh.

Ha pedig már shell script, akkor igyekeztem mindent konfigurálhatóvá tenni. A minden kimerült abban, hogy lehessen másik hangot játszani és tetszőleges időt beállítani. Aztán, ahogy az evolúció megkívánta, a desktop notification is megjelent, hogy már nagyon biztosan lássam, ha véget ért a pomodoro session. Ezzel kapcsolatos, hogy notification daemonként a dunstot használom, majd a notify-send-et is lecseréltem dunstify-ra.

Ez volt a pont, ami után már hetekig hozzá sem kellett nyúlni a scripthez, nem volt ötletem, amitől még fantasztikusabb lehetne. Viszont felismertem, hogy Slack üzenetek még mindig csak jönnek és jönnek, én meg nézem őket, ami a fókusz elvesztésével jár. Nosza, több se kellett, feltúrtam a Slack API dokumentációját, hogy megtudjam, miképpen lehetne scriptből roppant elfoglalttá beállítani magam. Így történt az, hogy a ha van SLACK_TOKEN, akkor a pomodoro menet kezdetekor beállítja a "ne zavarj" státuszt és még egy pofás paradicsom ikont is elhelyez a nevünk mellé, a session végén ezeket természetesen törli. Sőt, újabban nem csak törli, hanem visszaállítja a korábban beállítottra.

Korábban egy gistbe küldtem a változásokat, de a projekt érettsége nyomán úgy döntöttem, hogy egy saját Github repositoryt is megérdemel.

Hozzászóláshoz a Disqus szolgáltatását használom, korábbi vélemények elovlasásához és új hozzászólás írásához engedélyezd a Disqus-tól származó JavaScripteteket.