Skip to content

lutfizp/Cigarette-Status

Repository files navigation

Cigarette Status

A retro pixel-art cigarette consumption tracker for developers, right inside VS Code.

Click the status bar to log a cigarette. Watch a tiny chunky progress bar fill up over the day. Open the dashboard for a CRT-styled summary with money burned and a 7-day chart. Get random one-liners after some cigarettes, and gentle warnings when you blow past your daily target.

Logo

Just for fun — does not endorse smoking, and the messages will give you some side-eye when you really overdo it.


Features

Status bar — three one-click buttons

  • Counter $(flame) [███░░] 12/20 — click to add +1 immediately, no menu in the way.
  • Menu icon $(list-unordered) — quick pick of every action (undo, reset, dashboard, refresh, currency, price).
  • Dashboard icon $(graph) — jump straight to the CRT dashboard.

The progress bar fills with chunky Unicode blocks. The icon and color escalate ($(flame)$(zap)$(error)) as you cross half-target and target.

Sidebar tree

Five live stat rows, each clickable:

Row Description Click
Today gDailySmoked / dailyTarget with flame icon adds +1
Lifetime total ever logged opens dashboard
Money burned currency × cost × total opens dashboard
Last smoke relative time (2h ago)
Daily progress Unicode progress bar

Title bar has +, , Dashboard, Refresh, Reset icons — no Command Palette needed.

Dashboard (webview)

Retro CRT terminal with scanlines, blinking cursor, four stat cards, a 7-day ASCII chart of cigarettes per day, and arcade-style buttons. Auto-switches between dark CRT (phosphor green on black) and light CRT (sepia on paper) following your VS Code theme. Force one or the other with the cigarette-status.dashboardTheme setting.

Notifications

  • Milestone messages — random one-liner from a library of 70+ developer jokes after some cigarettes. Frequency is configurable (default ~30% per stick).
  • Excess warnings — fires when you hit and exceed the daily target, with a separate set of concerned-but-still-funny messages.
  • Idle reminder — pings you if no cigarette has been logged for timerInterval minutes (default 20).

All three streams can be toggled / tuned in settings.


How to use

  1. Install the extension. The status bar shows the counter immediately.
  2. Click the flame counter for +1. Click again for +2. That's it.
  3. Click the $(list-unordered) icon for the action menu.
  4. Click the $(graph) icon (or any sidebar item, or run Cigarette: Open Dashboard) to see the full CRT dashboard.
  5. Run Cigarette: Change Currency from the Command Palette or the menu icon to switch to IDR, EUR, GBP, JPY, and 8 other presets (or enter a custom symbol).
  6. Run Cigarette: Set Price per Cigarette to update the per-stick cost.

Configuration

Setting Default Description
cigarette-status.dailyTarget 20 Daily target. Triggers warning notifications when exceeded.
cigarette-status.timerInterval 20 Minutes of inactivity before an idle reminder fires. 0 disables.
cigarette-status.costPerCigarette 1.5 Price per cigarette used for money-burned calculation.
cigarette-status.currencySymbol $ Currency symbol shown in dashboard and tree.
cigarette-status.enableMilestoneMessages true Random funny one-liners after some cigarettes.
cigarette-status.enableExcessWarnings true Warnings when daily target is hit / exceeded.
cigarette-status.messageFrequency 0.3 Probability (0-1) of a milestone message per cigarette.
cigarette-status.dashboardTheme auto auto follows VS Code, or pick dark / light.

Commands

All commands are available from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) under the Cigarette category, and most are also reachable via the status bar or sidebar.

  • Cigarette: Add Cigarette (+1)
  • Cigarette: Undo Last Cigarette (-1)
  • Cigarette: Open Dashboard
  • Cigarette: Quick Actions Menu
  • Cigarette: Show Count
  • Cigarette: Reset Cigarette Counter
  • Cigarette: Refresh Cigarette View
  • Cigarette: Change Currency
  • Cigarette: Set Price per Cigarette

Persistence

All counts and history live in VS Code's global state (globalState), so they're synced across windows on the same machine and survive restarts. The daily counter resets automatically on a new local day. The dashboard's weekly chart is built from the last 7 days of recorded history.


Issues, ideas, suggestions

Open an issue at github.com/lutfizp/Cigarette-Status/issues.

License

MIT — see LICENSE.md.

About

This extension is just for fun and serves little 'functional' use, except to see how addicted to cigarettes you are :D

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors