TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Focus on work
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A mobile-first ambient sound mixer and focus timer, built with Next.js and installable as a PWA.
/?mix=light-rain:55,cafe:45).Shortcuts are ignored while you're typing in the search box. With a slider focused, the arrow keys adjust that slider instead.
| Key | Action |
|---|---|
| Space | Play / pause |
| V | Open or close focus mode |
| F | Full screen (opens focus mode if needed); press again to exit |
| M | Mute / unmute |
| Esc | Close focus mode or the open sheet |
| 1 2 3 | Switch to Mix, Sounds or Timer |
| ← → ↑ ↓ | Focused slider: ±5% |
| Page Up / Page Down | Focused slider: ±10% |
| Home / End | Focused slider: 0% / 100% |
npm install
npm run dev # http://localhost:3000 (service worker disabled in dev)
npm run build && npm start # serves out/ locally, service worker enabled
next build writes a fully static site to out/ (output: "export"). Installing and testing offline need that production build, served over HTTPS or on localhost.
The site runs on Cloudflare as a static-assets Worker on https://focuship.app. The custom domain is declared in wrangler.jsonc; on deploy Cloudflare creates its DNS record and certificate. The workers.dev URL is turned off so the app has one origin, since installs and offline caches are per-origin.
npx wrangler login # once
npm run deploy # next build && wrangler deploy → focuship.app
npm run deploy:redirect # the 301 Worker for focus.aminurislam.me, focusship.app and www hosts
A second, tiny Worker (workers/redirect/) answers every old or alternative hostname with a 301 to the same path and query on https://focuship.app.
focuship.app and focusship.app (Cloudflare Registrar puts them in the same account).focuship.app zone, turn off Block AI bots, AI Labyrinth and Managed robots.txt; the site ships its own robots.txt and llms.txt.npm run deploy, then check https://focuship.app loads and curl -A GPTBot -I https://focuship.app returns 200. Point the API's FRONTEND_URL and Google's consent-screen home page and privacy links back to focuship.app.wrangler.focus.jsonc and deploy:focus script, then the old let-me-focus Worker (npx wrangler delete --name let-me-focus) to free focus.aminurislam.me.npm run deploy:redirect, then check curl -I https://focus.aminurislam.me/timer?x=1 returns a 301 to https://focuship.app/timer?x=1.https://focuship.app/sitemap.xml.wrangler.jsonc points Cloudflare at out/. Response headers (caching, the service worker's no-cache rule, security headers) live in public/_headers, since headers() in next.config.ts doesn't apply to static exports. Sounds are served from the same CDN with a one-year immutable cache, and only changed files are re-uploaded on each deploy.
| Path | What it does |
|---|---|
src/lib/catalog.ts | Sounds, categories and presets |
src/lib/audio/engine.ts | Web Audio engine: sync(layers, playing, volume) fades voices in and out. Recordings loop gaplessly by crossfading two media elements. |
src/lib/audio/noise.ts | Seamless white, pink and brown noise buffers |
src/lib/store.ts | App state (useSyncExternalStore), persistence, share links, Media Session, timer |
src/lib/pwa.ts | Service worker registration, install prompt, offline downloads |
public/sw.js | Caches the app shell, hashed assets and sounds; offline fallback for the page |
src/app/manifest.ts | Web app manifest, including shortcuts |
scripts/generate-icons.mjs | Renders the icon set (npm run icons) |
wrangler.jsonc, public/_headers | Cloudflare deployment and response headers |
Sound files are fetched whole and played from memory, so the service worker can cache them. They're saved as you play them, or all at once from About & offline.
Recordings come from Moodist by remvze (MIT). Its sounds are under the Pixabay Content License or CC0. The visual style follows the dark, mono-accented look of superset.sh.
MIT © Md. Aminur Islam. Sound recordings keep their own licenses (see Credits).