Skip to content
lcfd edited this page Oct 12, 2026 · 1 revision

NaryaVim ships with a few home-made modules in lua/custom/. They don't need extra plugins, and they stay out of the way until you use them.

🎵 MPD music player

A complete client for the Music Player Daemon. It speaks the MPD protocol directly over TCP or a unix socket, so you don't need mpc or Telescope.

  • Command center (<leader>mm): a searchable queue with cover thumbnails, song details, every action with its shortcut, and a now-playing bar with progress and volume.
  • Playlists (<leader>ml): create, rename, delete, reorder and play stored playlists.
  • Quick actions: add songs (<leader>ms) or albums (<leader>ma), play/pause (<leader>mp), next/previous (<leader>mn / <leader>mb).
  • Statusline: the playing song shows in lualine.
  • Cover art in terminals that support the kitty graphics protocol (kitty, Ghostty). ImageMagick shrinks the queue thumbnails.

It connects to $MPD_HOST / $MPD_PORT, or 127.0.0.1:6600 if they're not set. Full documentation: lua/custom/mpd/README.md.

🎲 Solo RPG toolkit

Random tables and a dice roller for solo tabletop RPGs, inspired by solo-toolkit.

It only turns on when Neovim's working directory contains an rpg.toml file. Run :RpgInit to create one, then open the toolkit with :Rpg or <leader>R.

tables_dir = "Tables"                                   # folder of Markdown random tables
dice = ["d4", "d6", "d8", "d10", "d12", "d20", "d100"]  # optional quick dice
  • Random tables: every .md file in tables_dir is a table, and subfolders are categories. A roll returns a random line. Templates in the front matter can combine sections and other tables, e.g. loves: "{name} loves {food}".
  • Dice roller: expressions like 2d10 + 3d6 - 2, with d%, fudge dice (dF), exploding dice (!), keep highest/lowest (kh2, kl1), and advantage/disadvantage (/a, /d).
  • Results and roll history are kept for the whole session.

Other small utilities

  • :CopyPath copies the absolute path of the current file to the clipboard.
  • <leader>tc opens a picker to convert the word or selection to another case (snake, camel, kebab, …).

Clone this wiki locally