TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Focus timer for the Spotify Car Thing, with swappable designs. A bridgething webapp.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A focus timer for the Spotify Car Thing, with a shelf of swappable visual
designs. Turn the wheel to set the time, press to start, hold to stop. Sessions
are logged on the device so you can see today's focus, your streak, and the week
behind you.
The Car Thing runs it as a bridgething webapp: a small React app
served off the device, driven by its rotary encoder and buttons on an 800x480
screen.
Thirteen designs, switchable at any time from the design picker. They share one
timer and one history; only the presentation changes.README 전문 보기 ↗A focus timer for the Spotify Car Thing, with a shelf of swappable visual designs. Turn the wheel to set the time, press to start, hold to stop. Sessions are logged on the device so you can see today's focus, your streak, and the week behind you.
The Car Thing runs it as a bridgething webapp: a small React app served off the device, driven by its rotary encoder and buttons on an 800x480 screen.
Thirteen designs, switchable at any time from the design picker. They share one timer and one history; only the presentation changes.
| EmberWarm glow, Time Timer dial (default) | E-inkCalm paper, minute by minute | Terminal80x24 phosphor, block digits |
| Game BoyPixel battle against WORK | Split-flapDepartures board, flipping digits | NixieGlowing tubes, neon lamps |
| ASCII campfireText-art fire that burns down | DoomWalk the corridor to the exit | BackroomsFound footage, focus in Level 0 |
| MineshaftDig one block per minute | CockpitJetliner engine display, fly each focus as a leg | StarfieldWarp through the stars, recharge on breaks |
| JournalComputer Modern and TikZ |
The Car Thing has a rotary encoder (the wheel), a press-in knob, four buttons along the top, a mic button, and a back button.
| Input | Timer | Design picker | History |
|---|---|---|---|
| Turn wheel | Idle: set the duration. Running: add or remove whole minutes | Move through designs (live preview behind the picker) | Scroll days, clockwise toward today |
| Press knob | Start, pause, or resume | Apply the highlighted design | Back to the timer |
| Hold knob (0.7 s) | Stop the active phase, or skip a waiting break | — | — |
| Button 1 / 2 / 3 | Preset 15 / 25 / 45 min | — | — |
| Button 4 | Toggle history | — | Toggle history |
| Mic button | Open the design picker | Close | — |
| Back button | — | Close | Close |
A classic Pomodoro set is four focus sessions. After each focus session comes a short break; after the fourth, a long break, then the set starts over.
Every finished focus session, and any stopped one longer than a minute, is kept on the device (up to about a year of sessions). The history view shows a week at a time with daily focus totals, the busiest day, and the current streak of consecutive days with a finished session.
The Car Thing has no battery-backed real-time clock. A systemd guard saves the time every few minutes and restores it at boot, so after a power-off the clock resumes behind by however long the device was off. The app judges whether the clock is believable, strongest evidence first:
Designs surface this as an unobtrusive warning rather than silently logging sessions against a wrong time.
Timer logic and presentation are kept apart.
timer.ts is the pure state machine: press, turn, hold, complete, and
history encoding. No React, no device calls.model.ts derives a TimerView / HistoryView from that state: everything a
design needs to draw, already computed (countdown string, progress, schedule,
streak, today's totals).src/themes/<id>/ renders only that view model, plus a
matching history screen. Adding a design is a folder and one entry in
src/themes/index.ts; it never touches timer logic.App.tsx wires device input (wheel, knob, buttons) to the state machine,
runs the tick, and handles persistence.State is persisted through the bridgething daemon's per-app store, with
localStorage as a fallback for the moment before the socket settles and for
desktop development where there is no daemon. Keys:
pomodoro.v1 — timer state (debounced writes)pomodoro.history.v1 — session history, in a compact array formpomodoro.theme.v1 — selected designpomodoro.clock-trust.v1 — the boot id on which the clock was last confirmedCompletion chimes use whichever device earcon looks like a notification sound.
bridgething is a community platform
that turns the discontinued Spotify Car Thing into a programmable device. A
daemon runs on the device, serves small web apps, and exposes a typed client SDK
(@bridgething/client, MIT)
that a webapp uses to talk to the hardware over a local WebSocket. More at
bridgething.com.
This project is one such webapp. It ships a public/manifest.json (app id, name,
icon, permissions) and uses these SDK surfaces:
Deploying means pushing the built dist/ into
/var/bridgething/webapps/<app-id>/ over adb and restarting the bridgething
service; see scripts/deploy.sh.
npm install
npm run dev
The app is built for an 800x480 landscape screen; size the browser window to match, or use the device. Keyboard maps to the hardware for desktop testing: Enter or Space is the knob, 1-4 are the top buttons, M opens the design picker, Escape is back. A trackpad's horizontal scroll stands in for the wheel.
npm run build # type-check, then produce dist/
npm run deploy # build, push to the device over adb, restart bridgething
Deploy targets the Car Thing over adb. Override the device serial if needed:
DEVICE=<adb-serial> npm run deploy
The script pushes dist/ into the app's directory under
/var/bridgething/webapps/ on the device and restarts the bridgething service.
src/
main.tsx React entry
App.tsx device input, tick, persistence
timer.ts pure timer state machine
model.ts state -> view model for designs
clock.ts is the device clock believable?
Settings.tsx design picker
themes/
index.ts design registry
<id>/ one folder per design (Timer + History + CSS)
React 19, TypeScript, Vite, and @bridgething/client for the device store,
audio, time, and diagnostics surfaces.
This project's code is released under the MIT License.
It bundles open-source fonts licensed under the SIL Open Font License 1.1, which keep their own license: B612 and B612 Mono (the fonts Airbus made for cockpit displays), Press Start 2P, Oswald, Outfit, and Literata. All other runtime dependencies are MIT-licensed.