Bambu Bar
Monitor Bambu Lab printers from your Mac menu bar: print progress, the live camera, AMS filament, alerts and desktop widgets. Bambu Bar for macOS 26+.
Plan your day, record what actually happened, and compare both against your weekly goals.
ProductivityTypeScript · HTMLGitHub @9shreyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Time-block your day, record what actually happened, and track weekly goals. Local-first desktop app (Tauri 2 + React).
Loading the full README.
Read the full README ↗Plan your day. Log what really happened. See how it stacks up against your weekly goals.
Download · Features · Shortcuts · Development · Changelog
Timeblock is a local-first desktop app. Your data is a SQLite file on your machine:
no account needed and no telemetry. Optional sync between your computers uses a server you host (server/).
| 🗓️ Plan | Actual day view | Drag to create, move and resize blocks. Shift snaps to 5 minutes, Ctrl copies. Overlapping blocks sit side by side. |
| 👻 Ghosts | Every plan block shows up dashed in the Actual lane until you confirm it (a) or skip it (s). Drag a ghost to log it at a different time. Confirm rest of day (Shift+A) logs every past ghost around whatever you already logged. Unconfirmed time never counts as actual, so your numbers stay honest. |
| 📅 Week view | Plan | Actual split for past days; drag blocks across days. |
| 🎯 Goals | Weekly targets, either at least (Thesis ≥ 15 h) or at most (Social ≤ 3 h), measured by time or by tasks done. Targets carry forward until you change them; past weeks never change. Each goal has a weekly outcome checklist with carry-over. |
| 📊 Budget and review | A week budget panel (Ctrl+B) and a weekly review: target vs plan vs actual, status per goal, outcomes and a reflection note. |
| 📈 Trends | Planned vs actual per goal over 4, 12 or 26 weeks, streaks, and plan-accuracy stats (i). |
| 🛟 Safe by default | Undo/redo for everything, command palette (Ctrl+K), daily automatic backups, JSON export/import. |
| Keys | Action |
|---|---|
d w g r i | Day, Week, Goals, Review, Trends |
t, [, ] | Today, previous, next |
Ctrl+K | Command palette |
Ctrl+Z / Ctrl+Shift+Z | Undo / redo |
Ctrl+B | Week budget panel |
Enter | Edit the selected block |
Delete | Delete the selected block (skips a ghost) |
↑ ↓ / Shift+↑ Shift+↓ | Nudge / resize the selected block |
1–9 | Set the selected block's goal |
a / s | Confirm / skip the selected plan block or ghost |
Shift+A | Confirm the rest of the day as planned |
Esc | Cancel a drag, close the editor, clear the selection |
? | Show all shortcuts |
Download the file for your system from the Releases page. Builds are not code-signed yet.
.rpm (Fedora), .deb (Debian/Ubuntu) or .AppImage. The AppImage needs
glibc 2.39 or newer (Fedora 40+, Ubuntu 24.04+); use the .rpm/.deb on older systems..dmg and drag Timeblock to Applications. The first launch is
blocked because the app isn't notarized: open System Settings → Privacy & Security
and click Open Anyway..msi or -setup.exe. If SmartScreen warns about an
unrecognized app, click More info → Run anyway.Only one copy of Timeblock runs at a time: launching it again brings the open window to the front.
From 0.2.0 on, Timeblock looks for a new release on launch and once a day (turn this off in
Settings → Updates). Nothing installs until you click Install and restart: your data is
backed up first, and the update is checked against Timeblock's signing key before it runs.
All install types update in place. On Linux, .deb and .rpm installs ask for your system
password, the same as installing the package by hand. Version 0.1.0 has no updater, so
download 0.2.0 from Releases once.
| OS | Folder |
|---|---|
| Linux | ~/.local/share/com.shreysingh.timeblock/ |
| macOS | ~/Library/Application Support/com.shreysingh.timeblock/ |
| Windows | %APPDATA%\com.shreysingh.timeblock\ |
data.sqlite3 holds everything. Settings → Open data folder opens it.backups/ gets a copy at most once a day, before every import and before schema
upgrades; the newest 14 are kept. To restore one, quit Timeblock and copy it over
data.sqlite3.WebKitGTK and the proprietary NVIDIA driver don't always get along. Timeblock already
sets WEBKIT_DISABLE_DMABUF_RENDERER=1 when the NVIDIA kernel module is loaded (unless
you set it yourself). If the window is still blank or flickers, try these one at a time:
WEBKIT_DISABLE_COMPOSITING_MODE=1 timeblock
__NV_DISABLE_EXPLICIT_SYNC=1 timeblock
GDK_BACKEND=x11 timeblock
Prerequisites: Node 22+, Rust (stable), and the Tauri system dependencies. On Fedora:
sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel libxdo-devel openssl-devel gcc make
npm install
npm run dev # browser mode on http://localhost:1420 (sql.js, data in localStorage)
npm run tauri dev # native app
npm run lint # ESLint + tsc
npm test # Vitest (domain, data layer, store, components)
npm run test:tz # domain tests under UTC and Pacific/Chatham
This is the beginning of the README. Read the rest at the original. Read the full README ↗