Skip to content

tgienger/stm.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

stm.nvim

Neovim plugin for STM (Simple Task Manager) - launch the TUI directly from Neovim.

Requirements

  • Neovim >= 0.8.0
  • STM installed and available in your $PATH

Installation

lazy.nvim

{
  "tgienger/stm.nvim",
  opts = {},
  keys = {
    { "<leader>tm", "<cmd>STM<cr>", desc = "Toggle Task Manager" },
  },
}

packer.nvim

use {
  "tgienger/stm.nvim",
  config = function()
    require("stm").setup()
  end,
}

Usage

Commands

Command Description
:STM Toggle STM with default layout (float)
:STM float Toggle STM in a floating window
:STM vsplit Toggle STM in a vertical split
:STM tab Toggle STM in a new tab

Lua API

local stm = require("stm")

stm.toggle()         -- Toggle with default layout
stm.toggle("float")  -- Toggle floating window
stm.toggle("vsplit") -- Toggle vertical split
stm.toggle("tab")    -- Toggle in new tab

stm.open()           -- Open (focus if already open)
stm.close()          -- Close if open
stm.is_open()        -- Check if STM is open

Default Keymap

<leader>tm - Toggle Task Manager (configurable, see below)

Configuration

require("stm").setup({
  -- Path to stm binary (default: "stm" from $PATH)
  cmd = "stm",

  -- Default layout when running :STM without arguments
  -- Options: "float", "vsplit", "tab"
  default_layout = "float",

  -- Floating window options
  float = {
    width = 0.5,         -- 50% of editor width (or absolute number)
    height = 0.5,        -- 50% of editor height (or absolute number)
    border = "rounded",  -- "none", "single", "double", "rounded", "shadow"
  },

  -- Vertical split options
  vsplit = {
    size = 47,           -- Width in columns
    position = "right",  -- "left" or "right"
  },

  -- Behavior
  close_on_exit = true,  -- Auto-close window when STM exits
  start_insert = true,   -- Start in terminal insert mode

  -- Default keymap (set to false to disable)
  keymap = "<leader>tm",
})

Disable Default Keymap

To disable the default keymap and set your own:

require("stm").setup({
  keymap = false,
})

-- Set your own keymap
vim.keymap.set("n", "<leader>t", "<cmd>STM<cr>", { desc = "Task Manager" })

License

MIT

About

neovim plugin to use with stm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages