UP | HOME

YALMS - Yet Another Lua ModuleS

Table of Contents

YALMS

A library of reusable Lua modules and Neovim plugins for developer experience.

Quick Start

Install via LuaRocks:

luarocks install yalms

Or use as a Neovim plugin – Use your favorite plugin manager, example is using LazyVim:

{
  "anomalyco/yalms",
  dependencies = {
    "folke/snacks.nvim",
    "nvim-orgmode/orgmode",
  },
  opts = {
    nvm = {
      dir = vim.fn.stdpath("data") .. "/nvm",
      nixvims = { ... }
    }
  }
}

Alternatively, enable plugins with sensible defaults by passing true:

{
  "anomalyco/yalms",
  dependencies = {
    "folke/snacks.nvim",
    "nvim-orgmode/orgmode",
  },
  opts = {
    orgonomics = true,  -- enable pickers, capture window, and clock with defaults
    dev = true,         -- enable dev scratchpads with defaults
    nvm = true,         -- enable Nixvim manager with defaults
  },
}

Or use as a Neovim plugin (with Nixvim):

require('yalms.nvm').setup({
  dir = vim.fn.stdpath("data") .. "/nvm",
  nixvims = { ... }
})

Install via Nix

Prerequisites

1. Flake Input

Add YALMS to your flake inputs:

{
  inputs = {
    yalms.url = "github:anomalyco/yalms";
    # ... other inputs
  };
}

Reference the package in your outputs:

outputs = { self, yalms, ... }: {
  # Access the package
  packages.x86_64-linux.default = yalms.packages.x86_64-linux.default;
};

2. Overlay

Use the overlay to add YALMS to your package set:

{
  nixpkgs.overlays = [
    (import yalms.overlays.yalms)
  ];

  environment.systemPackages = with pkgs;
    [ vimPlugins.yalms ];
}

3. Nixvim Module Import

Import the Nixvim module in your Nixvim configuration:

{
  imports = [
    inputs.yalms.nixvimModules.yalms
  ];

  opts.plugins.yalms.enable = true;
}

4. Options

When using the Nixvim module, available options:

Option Type Default Description
opts.plugins.yalms.enable bool false Enable YALMS plugin
opts.plugins.yalms.settings YalmsOpts {} Options passed to Yalms.setup()

The settings option accepts a YalmsOpts table matching the Lua setup options:

opts.plugins.yalms.settings = {
  nvm = {
    dir = "~/.config/nvim/nvm";
    force_rebuild = false;
  };
  orgonomics = true;  # enable all features with defaults
  # or for finer control:
  # orgonomics = {
  #   pickers = true;
  #   clock = {
  #     breaks_file = "~/org/breaks.org";
  #   };
  # };
};

See YALMS Library Documentation for available modules and their options.

Modules

Plugins

License

GNU General Public License v3.0 or later

Copyright (C) 2026 Ahmad Raza

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Disclaimer

Some parts of this project, such as unit tests, may be AI generated.