Omahub
← All plugins
B

Focusd

by Bibek Bhusal

A pomodoro timer for the Omarchy bar with features like streak, daily goal, sessions, stats, history, and session progress visualization.

Security review

Review recommended · 1 finding

Deterministic scan — not a security guarantee

Medium
Risk level
Medium
Analyzed commit
0abacb9
Scanned
3 weeks ago
  • medium sudo Panel.qml:461

    Command runs with sudo, elevating the process beyond the plugin environment.

    sudo mv \"" + tmpPath + "\" \"$INSTALLED_PATH\" && sudo chmod +x \"$INSTALLED_PATH\" && " + "focusd --stop-daemon && focusd -d && echo 'Done! Press Enter to close.' && read";

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
0abacb9
Reviewed
3 weeks ago

The plugin is a pomodoro bar widget that integrates with the Focusd CLI. It auto-installs Focusd on first use by downloading a pinned, SHA256-verified binary and moving it into place with sudo. The sudo elevation is intentional and user-triggered, and no obfuscation or malicious behavior was found.

  • The plugin runs sudo to install the Focusd binary system-wide (likely /usr/local/bin) when the user clicks the install button, which is an elevation of privilege that users may not fully expect.
  • The SHA256 hash and version are hardcoded, mitigating supply-chain risk, but a compromised plugin could silently alter them; the update path also uses sudo via yay or the same download-and-install flow.
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/BibekBhusal0/omarchy-focusd --enable
Productivity #bar #quickshell

Omarchy Shell Plugin for Focusd

A beautiful Focusd pomodoro timer for the Omarchy bar. Shows the current session and remaining time with a state icon, and opens a control panel with pause, skip, and stop actions plus your streak, sessions, history, and daily goal.

Focusd preview

Why Another Pomodoro Timer

At the time of making this there are already two, similar plugin for omarchy in marketplace, but what does focusd do different than other plugins. First thing focusd is not just omarchy plugin, it's a TUI with features like streak, history, stats, and more. This plugin is just integration of omarchy with focusd. And to answer the question of how this differs from other plugin, focusd has TUI which is in-sync with bar, and other lovely features like goal, history, streak.

Features

  • Bar widget showing session state and remaining time
  • Control panel with pause, skip, reset, and add 5 minutes
  • Session progress dots showing current position in the pomodoro cycle
  • Info page with links to GitHub, settings TUI, and stats TUI
  • Automatic update checking for AUR installations
  • Streak, daily goal, and sessions today from Focusd history
  • Customizable state icons
  • Switchable popup style (linear hero or circular face)
  • Full keyboard navigation support

Requirements

  • Omarchy quattro
  • Focusd v0.2.1+ (auto-installed on first use with SHA256 verification, or install from AUR: yay -S focusd)

Install

omarchy plugin add https://github.com/BibekBhusal0/omarchy-focusd.git --enable

Demo

Focusd Demo

Usage

Click the bar widget to open the control panel. Right-click skips to the next session, middle-click resets the current timer. The info button (i icon) at the bottom opens settings and stats access. You can also bind it to a key (~/.config/hypr/bindings.lua):

o.bind("CTRL", "T", "exec, omarchy-shell shell summon bibek.focusd")

Start the timer with focusd start. Press Escape in the info page to return to the timer page.

Configuration

Durations and presets are set in Focusd itself (focusd settings). The plugin's options live in ~/.config/omarchy/focusd.json (watched live, so edits apply instantly).

Default configuration:

{
  "progressBarStyle": "linear",
  "icons": {
    "work": "",
    "work-paused": "󰏤",
    "short-break": "",
    "short-break-paused": "󰏤",
    "long-break": "󰒲",
    "long-break-paused": "󰏤"
  }
}

progressBarStyle switches the popup between the linear and circular:

{ "progressBarStyle": "circular" }

icons overrides the per-state bar icons. Any of the keys above can be replaced:

"bar": {
  "layout": {
    "right": [
      {
        "id": "bibek.focusd",
        "icons": {
          "work": "🍅",
          "work-paused": "",
          "short-break": "☕",
          "short-break-paused": "",
          "long-break": "🏖️",
          "long-break-paused": ""
        }
      }
    ]
  }
}

Alternatives per state (pick the ones you like; -paused variants reuse the same pause icon or keep it same because the opacity is decreased):

Key Suggestions
work 󰅐, 󰀠, 🍅, 
short-break ☕, 🍪, , 
long-break 🏖️, ⏳, 🌴, 󰒲
paused 󰏦, 󰏥, , 󰏤

Uninstall

omarchy plugin remove bibek.focusd

Credits

Bar widget and panel design adapted from Omadoro by Brian Blakely, licensed under the MIT License.

Session progress dots visualization inspired by omarchy-pomodoro by rodrigojacarei, licensed under the MIT License.

This plugin is licensed under the MIT License.

Others

Here are my other Omarchy plugins:

Please give a star if you find them useful!