- Published on
I ran a weekend IRL experiment with a “focus lantern”
Jigar Patel
3 min read
I wanted a signal I could trust when I keep saying “just 10 minutes more.” So I built a tiny IRL experiment:
- a desk lamp that changes color with my focus state,
- a shell script that tracks session state,
- a cheap local stream I can glance at from the phone.
No dashboards, no SaaS, no analytics noise. Just a visible reminder loop.
The setup
I kept it stupidly simple:
- a USB smart bulb that accepts local commands,
- a bash script with three states (
work,break,offline), - one
cronjob to keep stale sessions from getting stuck.
# states map to simple colors
default: offline -> blue
work: full focus -> amber
break: recovery -> green
I wanted the workflow to be readable at 10pm when I am tired and still know what to do.
Command-driven behavior
# start a 25-minute session
./focus.sh start 25m
# switch to break mode immediately
./focus.sh break
# force offline when work is done
./focus.sh stop
The script logs each transition to a local file:
tail -f .focus/state.log
I also added a backup check:
# if the script crashes, clear stale focus state
pkill -f focus.sh && echo "offline" > .focus/current
What I observed in practice
The system did not make me more productive by magic. It made me more aware of drift:
- I stopped chaining 3-minute tasks without real breaks.
- I stopped pretending I was “in flow” while checking random tabs.
- I started ending sessions on time because the light made it visible.
The experiment also exposed a weakness: color-only signals get annoying in shared spaces. For weekends with visitors, I added a phone vibration companion and stopped the light after 2 sessions.
Checklist I kept after each week
- Did the session timer match the actual work window?
- Did I take at least one off-screen break?
- Did I write a one-line summary for each
worksession? - Did the system recover from accidental script crashes?
Learning outcomes
- Tangible rituals are often more effective than new apps.
- Visibility beats intentions for habit loops.
- Tiny hardware+script experiments are cheap and reversible.
What to improve next
- Replace ad-hoc logging with a tiny SQLite file so trends are searchable.
- Add a “skip to next” rule when a meeting drops in unexpectedly.
- Add a Sunday reset script to archive logs and remove stale timer state.