Omahub
← All plugins
N

Deadline Timer

by Nik

Shows the active schedule task and its remaining time

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
f0a1e18
Scanned
8 hours ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

Review recommended

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
review
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
f0a1e18
Reviewed
7 hours ago

The plugin is a straightforward QML bar widget that parses a user-configured Markdown schedule and shows countdowns; no obfuscation, network access, credential handling, or install-time commands were found. The main concern is that it automatically rewrites the schedule file, including deleting checklist items every Sunday at 18:00, which is documented in the README but could cause unexpected data loss. The deterministic scan found nothing, and I agree there is no malicious code, but this file-modifying behavior warrants a quick human look.

  • Panel.qml's clearWeeklyPriorities() automatically rewrites the configured schedule file on Sunday after 18:00, removing every checklist line under day headings; this is documented but is destructive to user data if the file contains unrelated checklist items.
  • The widget writes to the user-configured schedulePath for task edits and priority completion, so pointing it at an unintended file would let the plugin modify that file.
  • Only a partial sample of Panel.qml was provided; the remaining write/edit paths were not fully inspected, though nothing suspicious appears in the sampled code.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/nikbos/Deadline-Timer --enable
Productivity #quickshell

Deadline Timer

An Omarchy 4 bar widget that applies Parkinson's Law and The Deadline Effect to a Markdown schedule. The status bar shows only the active task and its remaining time. The popup contains the full timeline for the current day.

<img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/4111683a-2499-4d8c-91f2-4d5b0c9aec9b" />

Install

omarchy plugin add https://github.com/nikbos/deadlineTimer --enable
omarchy restart shell

For local development:

mkdir -p ~/.config/omarchy/plugins/deadline-timer
cp manifest.json Panel.qml ScheduleModel.js README.md ~/.config/omarchy/plugins/deadline-timer/
omarchy plugin validate ~/.config/omarchy/plugins/deadline-timer
omarchy plugin enable deadline-timer
omarchy restart shell

Copying files into the plugin directory does not hot-reload this widget; run omarchy restart shell after every change while developing.

Schedule

The default schedule path is ~/.config/omarchy/schedule.md. Configure another path through the bar widget settings. The parser reads detailed sections in the following format:

### Monday: 

| Time | Activity |
|------|----------|
| **7:15-8:00 AM** | Deep Work #1 |
| **8:00-8:30 AM** | Breakfast |

The timeline reloads when the file changes. Top-priority checklist updates are written back to the configured Markdown file.

Controls

  • Click the bar text to open or close the timeline.
  • h / l or left/right arrows change day.
  • j / k or up/down arrows select the previous/next event in the timeline (highlighted row).
  • t returns to today.
  • r reloads the Markdown file.
  • n opens the new-task form and scrolls to it.
  • d completes the top (first open) priority.
  • Enter edits the selected event (falls back to the active slot if nothing is selected).
  • Escape closes the popup.

The popup includes a Top Priorities checklist for the selected day. Press n or click + New task to add an untimed priority; click its checkbox when complete. Priorities are stored beneath each ### Day: heading in the Markdown schedule. Every Sunday at 18:00, all top-priority checklists are cleared for the new week.

Timed schedule items such as the midday checkpoint (12:20-12:30) and lunch (12:30-13:30) belong in the Markdown schedule and appear in the normal timeline.

Creating Tasks

With the widget open, press n or click + New task. Enter a priority name and press Enter or click Save. Escape cancels the form.

New priorities are written to the selected day in the configured Markdown schedule. Add timed schedule entries directly as Markdown table rows. Times are always displayed and written back in 24-hour format; the parser still accepts 12-hour (AM/PM) entries in the Markdown file.

Editing Timeline Slots

Click a timeline row (or select it with j/k and press Enter) to edit its title and start/end times in the popup form; Enter saves, Escape cancels; invalid times show an inline error; blank end infers the next slot's start (or +30 minutes); a row's formatting (bold, en-dash separators) is preserved on save while times are normalized to 24-hour format; equal start/end times mean overnight-to-next-day.

The bar shows only the active task, for example:

Deep Work #2  01:12:34

License

MIT