{"id":16697022,"url":"https://github.com/eatgrass/obsidian-pomodoro-timer","last_synced_at":"2025-06-10T17:10:15.329Z","repository":{"id":209263277,"uuid":"723225036","full_name":"eatgrass/obsidian-pomodoro-timer","owner":"eatgrass","description":"A pomodoro timer that helps manage your daily focus","archived":false,"fork":false,"pushed_at":"2024-06-20T14:25:00.000Z","size":166,"stargazers_count":175,"open_issues_count":34,"forks_count":22,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-11T17:51:10.917Z","etag":null,"topics":["obsidian-plugin","pomodoro","time-management","timer"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eatgrass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-25T01:51:19.000Z","updated_at":"2025-04-07T23:44:24.000Z","dependencies_parsed_at":"2023-11-26T09:22:28.116Z","dependency_job_id":"da87edb0-0eab-420c-92cb-3b3d167b224f","html_url":"https://github.com/eatgrass/obsidian-pomodoro-timer","commit_stats":null,"previous_names":["eatgrass/obsidian-pomodoro-timer"],"tags_count":24,"template":false,"template_full_name":"obsidianmd/obsidian-sample-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eatgrass%2Fobsidian-pomodoro-timer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eatgrass%2Fobsidian-pomodoro-timer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eatgrass%2Fobsidian-pomodoro-timer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eatgrass%2Fobsidian-pomodoro-timer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eatgrass","download_url":"https://codeload.github.com/eatgrass/obsidian-pomodoro-timer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eatgrass%2Fobsidian-pomodoro-timer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259114577,"owners_count":22807252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["obsidian-plugin","pomodoro","time-management","timer"],"created_at":"2024-10-12T17:45:50.859Z","updated_at":"2025-06-10T17:10:15.302Z","avatar_url":"https://github.com/eatgrass.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/eatgrass"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003ePomodoro Timer for Obsidian\u003c/h1\u003e\n\n![image](https://github.com/eatgrass/obsidian-pomodoro-timer/assets/2351076/f2f4f339-ba66-423f-b6a5-79fe91e13ef0)\n\n## Introduction\n\nThis plugin integrates a customizable Pomodoro timer into your Obsidian workspace, helping you focus and manage your time effectively.\n\n## Features\n\n-   **Customizable Timer**: Set your work and break intervals to suit your productivity style.\n-   **Audible Alerts**: Stay on track with audio notifications signaling the end of each session.\n-   **Status Bar Display**: Monitor your progress directly from Obsidian's status bar to keep focusing.\n-   **Daily Note Integration**: Automatically log your sessions in your daily notes for better tracking.\n-   **Task Tracking**: Automatically refresh the 'actual time' field for the task in focus.\n\n## Notification\n\n### Custom Notification Sound\n\n1. Put the audio file into your vault.\n2. Set its path ralative to the vault's root.\n   For example: your audio file is in `AudioFiles` and named `notification.mp3`, your path would be `AudioFiles/notification.mp3`.\n   **Don't forget the file extension (like `.mp3`, `.wav` etc.).**\n3. Click the `play` button next to the path to verify the audio\n\n## Task Tracking\n\nTo activate this feature, first enable it in the settings. Then add pomodoros inline-field after your task's text description as below. The pomodoro timer will then automatically update the actual count at the end of each work session.\n\n**Important: Ensure to add this inline-field before the [Tasks](https://github.com/obsidian-tasks-group/obsidian-tasks) plugin's fields. Placing it elsewhere may result in incorrect rendering within the Tasks Plugin.**\n\n```markdown\n-   [ ] Task with specified expected and actual pomodoros fields [🍅:: 3/10]\n-   [ ] Task with only the actual pomodoros field [🍅:: 5]\n-   [ ] With Task plugin enabled [🍅:: 5] ➕ 2023-12-29 📅 2024-01-10\n```\n\n## Log\n\n### Log Format\n\nThe standard log formats are as follows\nFor those requiring more detailed logging, consider setting up a custom [log template](#Custom Log Template) as described below.\n\n**Simple**\n\n```\n**WORK(25m)**: 20:16 - 20:17\n**BREAK(25m)**: 20:16 - 20:17\n```\n\n**Verbose**\n\n```plain\n- 🍅 (pomodoro::WORK) (duration:: 25m) (begin:: 2023-12-20 15:57) - (end:: 2023-12-20 15:58)\n- 🥤 (pomodoro::BREAK) (duration:: 25m) (begin:: 2023-12-20 16:06) - (end:: 2023-12-20 16:07)\n```\n\n### Custom Log Template (Optional)\n\n1. Install the [Templater](https://github.com/SilentVoid13/Templater) plugin.\n2. Compose your log template script using the `log` object, which stores session information.\n\n```javascript\n// TimerLog\n{\n    duration: number,  // duratin in minutes\n    session: number,   // session length\n    finished: boolean, // if the session is finished?\n    mode: string,      // 'WORK' or 'BREAK'\n    begin: Moment,     // start time\n    end: Moment,       // end time\n    task: TaskItem,    // focused task\n}\n\n// TaskItem\n{\n    path: string,         // task file path\n    fileName: string,     // task file name\n    text: string,         // the full text of the task\n    name: string,         // editable task name (default: task description)\n    status: string,       // task checkbox symbol\n    blockLink: string,    // block link id of the task\n    checked: boolean,     // if the task's checkbox checked\n    done: string,         // done date\n    due: string,          // due date\n    created: string,      // created date\n    cancelled: string,    // cancelled date\n    scheduled: string,    // scheduled date\n    start: string,        // start date\n    description: string,  // task description\n    priority: string,     // task priority\n    recurrence: string,   // task recurrence rule\n    tags: string[],       // task tags\n\texpected: number,     // expected pomodoros\n\tactual: number        // actual pomodoros\n}\n```\n\nhere is an example\n\n```javascript\n\u003c%*\nif (log.mode == \"WORK\") {\n  if (!log.finished) {\n    tR = `🟡 Focused ${log.task.name} ${log.duration} / ${log.session} minutes`;\n  } else {\n    tR = `🍅 Focused ${log.task.name} ${log.duration} minutes`;\n  }\n} else {\n  tR = `☕️ Took a break from ${log.begin.format(\"HH:mm\")} to ${log.end.format(\n    \"HH:mm\"\n  )}`;\n}\n%\u003e\n```\n\n## Examples of Using with DataView\n\n### Log Table\n\nThis DataView script generates a table showing Pomodoro sessions with their durations, start, and end times.\n\n![image](https://github.com/eatgrass/obsidian-pomodoro-timer/assets/2351076/ebcf33ac-291e-4659-ab03-93bfbe1c79d3)\n\n\u003cpre\u003e\n```dataviewjs\nconst pages = dv.pages()\nconst table = dv.markdownTable(['Pomodoro','Duration', 'Begin', 'End'],\npages.file.lists\n.filter(item=\u003eitem.pomodoro)\n.sort(item =\u003e item.end, 'desc')\n.map(item=\u003e {\n\n    return [item.pomodoro, `${item.duration.as('minutes')} m`, item.begin, item.end]\n})\n)\ndv.paragraph(table)\n\n```  \n\u003c/pre\u003e\n\n### Summary View\n\nThis DataView script presents a summary of Pomodoro sessions, categorized by date.\n\n![image](https://github.com/eatgrass/obsidian-pomodoro-timer/assets/2351076/84119bb0-c78e-4716-9a76-ffa72d94a587)\n\n\u003cpre\u003e\n```dataviewjs\nconst pages = dv.pages();\nconst emoji = \"🍅\";\ndv.table(\n  [\"Date\", \"Pomodoros\", \"Total\"],\n  pages.file.lists\n    .filter((item) =\u003e item?.pomodoro == \"WORK\")\n    .groupBy((item) =\u003e {\n      if (item.end \u0026\u0026 item.end.length \u003e= 10) {\n        return item.end.substring(0, 10);\n      } else {\n        return \"Unknown Date\";\n      }\n    })\n    .map((group) =\u003e {\n      let sum = 0;\n      group.rows.forEach((row) =\u003e (sum += row.duration.as(\"minutes\")));\n      return [\n        group.key,\n        group.rows.length \u003e 5\n          ? `${emoji}  ${group.rows.length}`\n          : `${emoji.repeat(group.rows.length)}`,\n        `${sum} min`,\n      ];\n    })\n)\n```\n\u003c/pre\u003e\n\n## CSS Variables\n\n| Variable                       | Default            |\n| ------------------------------ | ------------------ |\n| --pomodoro-timer-color         | var(--text-faint)  |\n| --pomodoro-timer-elapsed-color | var(--color-green) |\n| --pomodoro-timer-text-color    | var(--text-normal) |\n| --pomodoro-timer-dot-color     | var(--color-ted)   |\n\n## FAQ\n\n1. How to Switch the Session\n\nTo switch sessions, simply click on the `Work/Break` label displayed on the timer.\n\n2. How to completely disable `Break` sessions\n\nYou can adjust the break interval setting to `0`, this will turn off `Break` sessions.\n\n---\n\n[\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"BuyMeACoffee\" width=\"150\"\u003e](https://www.buymeacoffee.com/eatgrass)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Featgrass%2Fobsidian-pomodoro-timer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Featgrass%2Fobsidian-pomodoro-timer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Featgrass%2Fobsidian-pomodoro-timer/lists"}