A Neovim plugin written (mostly) in Lua that implements the Pomodoro technique. This implemenation is derived from https://github.com/wthollingsworth/pomodoro.nvim
When a timer goes off, a menu is displayed to prompt you to take a break (or start the next pomodoro) with the option to stop the Pomodoro session.
When these prompts are displayed, you can also press b
to take a break (if applicable), p
to start the next pomodoro (if applicable), or q
to stop the Pomodoro session.
- Neovim >= 0.8.0
- A patched font
- MunifTanjim/nui.nvim
Install the plugin with your preferred package manager.
require("lazy").setup({
"orumin/pomodoro.nvim",
lazy = true
dependencies = "MunifTanjim/nui.nvim",
cmd = { "PomodoroStart", "PomodoroStatus", "PomodoroStop" },
config = true
})
You can configure the length of the pomodoro, the length of a short break, the length of a long break, and the number of pomodoros that must be completed in order to take a longer break. Also, status icon, popup menu window style and popup menu keymaps is configurable The values shown below are the defaults.
require("pomodoro").setup({
time_work = 25,
time_break_short = 5,
time_break_long = 20,
timers_to_long_break = 4,
icons = {
stopped = "",
started = "",
breaking = "",
},
ui = {
border = {
style = "rounded",
text = {
top_align = "left",
},
padding = { 1, 3 },
},
position = "50%",
size = {
width = "25%",
},
opacity = 1,
},
keymap = {
focus_next = { "j", "<Down>", "<Tab>" },
focus_prev = { "k", "<Up>", "<S-Tab>" },
close = { "<Esc>", "<C-c>" },
submit = { "<CR>", "<Space>" },
}
})
Three Ex commands are provided.
Command | Description |
---|---|
:PomodoroStart | Starts the timer. |
:PomodoroStatus | Displays the status of the timer in the message area. |
:PomodoroStop | Stops the Pomodoro session. |
For hoob3rt/lualine.nvim, you can do something like:
require('lualine').setup({
sections = {
lualine_c = { 'filename', require('pomodoro').statusline }
}
})
- mnick/vim-pomodoro and adelarsq/vim-pomodoro are Vimscript plugins similar to this one with a few more bells and whistles.
- rbong/pimodoro is a Vimscript plugin similar to this one that encourages you to track your tasks in another file.
- ukui00a/denops-pomodoro.vim is written in Typescript and provides desktop notifictions.
- mkropat/vim-tt allows you to implement your own task tracking method.