Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oneko.nvim

oneko.nvim brings the oneko cat into Neovim.

oneko.nvim preview

Features

  • 8-Directional Movement: Smooth running animations for Movements.
  • Cursor & Typing Tracking: Follows your active cursor.
  • Smart Typing Offset: Stays at a comfortable distance on the side when you type so your code is never hidden.
  • Idle States: Alert, sit, scratch, yawn, sleep, and wake.
  • Lightweight: Pure Lua, zero dependencies.

Installation

{
  "diggingforce/oneko.nvim",
  event = "VeryLazy",
  opts = {
    style = "pixel",
    skin = "white",
    speed = 1.5,
  },
  keys = {
    { "<leader>ok", "<cmd>OnekoToggle<cr>", desc = "Toggle Oneko Cat" },
    { "<leader>op", "<cmd>OnekoPet<cr>",    desc = "Pet Oneko Cat" },
  },
}

Configuration

require("oneko").setup({
  fps = 20,                -- Animation frame rate (ticks per second)
  speed = 1.5,             -- Movement speed 
  follow_distance = 6,     -- Resting stop distance from cursor
  typing_distance = 14,    -- Extra offset distance during typing
  style = "pixel",         -- "pixel" | "block" | "classic" | "kaomoji" | "compact"
  skin = "white",          -- "white" | "black" | "orange" | "pink" | "calico" | "cyan" | "green"
  follow = "cursor",       -- Target to follow ("cursor")
  idle_timeout = 2500,     -- Time before yawning (in ms)
  sleep_timeout = 8000,    -- Time before falling asleep (in ms)
  scratch_chance = 0.45,   -- Probability of scratch animation
  yawn_chance = 0.35,      -- Probability of yawn animation
  typing_frenzy = true,    -- Trigger excited animation on fast typing
  typing_threshold = 4,    -- Characters per second to trigger frenzy
  emotes_enabled = true,   -- Show speech bubbles
  emote_duration = 2500,   -- Default bubble duration (in ms)
  zindex = 150,            -- Floating window z-index
  sound = false,           -- Terminal bell on alert
  highlights = {           -- Custom highlight overrides (optional)
    OnekoNormal = { link = "Normal" },
    OnekoCat = { fg = "#ffffff", bold = true },
    OnekoEmote = { fg = "#ffffff", bold = true, italic = true },
    OnekoHeart = { fg = "#ffffff", bold = true },
    OnekoZzz = { fg = "#ffffff", italic = true },
    OnekoAlert = { fg = "#ffffff", bold = true },
  },
})

Commands

  • :OnekoStart — Start the Oneko companion
  • :OnekoStop — Stop and hide Oneko
  • :OnekoToggle — Toggle Oneko on / off
  • :OnekoPet — Pet your cat (hearts & purring)
  • :OnekoEmote <text> — Display a speech bubble or preset (nya, heart, coffee, bug, etc.)
  • :OnekoSkin <name> — Change cat skin (white, black, orange, pink, calico, cyan, green)
  • :OnekoStyle <name> — Change cat visual style (pixel, block, classic, kaomoji, compact)
  • :OnekoSpeed <num> — Change movement speed
  • :OnekoStatus — Show current status, coordinates, state, and active style

And that's all!

Releases

Packages

Contributors

Languages