Skip to content

feat(nvim): add rose-pine moon colorscheme#12

Merged
kunchenguid merged 2 commits into
mainfrom
fm/dfp-nvim-rosepine-m5
Jul 8, 2026
Merged

feat(nvim): add rose-pine moon colorscheme#12
kunchenguid merged 2 commits into
mainfrom
fm/dfp-nvim-rosepine-m5

Conversation

@kunchenguid

Copy link
Copy Markdown
Owner

Intent

Set Neovim's colorscheme to rose-pine-moon in this public dotfiles repo to match the private setup and existing WezTerm theme. The requested implementation is intentionally narrow: add a new lazy.nvim plugin spec at home/.config/nvim/lua/plugins/colorscheme.lua with the provided rose-pine setup, using dark_variant = 'moon', no italic, the conditional transparency expression, colorscheme rose-pine, and the SnacksPickerDir highlight override. Also add the rose-pine pin to home/.config/nvim/lazy-lock.json in alphabetical order with commit cf2a288696b03d0934da713d66c6d71557b5c997. Do not edit init.lua, plugin.lua, README, project memory files, generated files, or anything else. Do not run activation commands or launch the user's live Neovim config; validation should stay non-activating.

What Changed

  • Add a lazy.nvim colorscheme spec that installs rose-pine/neovim, configures the moon variant, disables italics, applies the existing conditional transparency behavior, and loads rose-pine.
  • Pin rose-pine in lazy-lock.json and document the Neovim rose-pine moon theme in the README.

Risk Assessment

✅ Low: The change is narrowly scoped to a new lazy.nvim colorscheme spec and lockfile pin, and I found no material correctness, security, performance, or compatibility issues.

Testing

Inspected the target diff and confirmed it stayed scoped to the two intended Neovim files, restored plugins through lazy.nvim in an isolated copied config, verified headless Neovim starts with rose-pine using the moon variant, no italics, Darwin transparency, the SnacksPickerDir override, and the pinned rose-pine commit, then generated and screenshot a rendered preview from the runtime highlight values; the worktree was clean at the end.

  • Evidence: Rose Pine Moon Neovim preview screenshot (local file: /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KX1HX74VMA9VG648P148FNYK/rose-pine-moon-preview.png)
Evidence: Rose Pine Moon Neovim preview HTML
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>rose-pine-moon Neovim preview</title>
<style>
  :root {
    color-scheme: dark;
    --bg: #232136;
    --fg: #e0def4;
    --muted: #6e6a86;
    --comment: #908caa;
    --keyword: #3e8fb0;
    --func: #ea9a97;
    --string: #f6c177;
    --constant: #f6c177;
    --identifier: #e0def4;
    --cursor: #393552;
    --status-fg: #908caa;
    --status-bg: #2a273f;
    --snacks-dir: #908caa;
    --foam: #9ccfd8;
    --iris: #c4a7e7;
    --overlay: #393552;
    --base: #232136;
    --surface: #2a273f;
  }
  * { box-sizing: border-box; }
  body {
    margin: 0;
    min-height: 100vh;
    background: #15131d;
    color: var(--fg);
    font: 15px/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    padding: 48px 32px;
  }
  main {
    width: min(980px, 100%);
    margin: 0 auto;
  }
  .editor {
    border: 1px solid var(--overlay);
    background: var(--bg);
    box-shadow: 0 18px 60px rgba(0,0,0,.35);
  }
  .topbar, .status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 9px 14px;
    background: var(--status-bg);
    color: var(--status-fg);
  }
  .topbar strong { color: var(--foam); font-weight: 700; }
  .meta { color: var(--muted); }
  .code {
    padding: 16px 0;
  }
  .row {
    display: grid;
    grid-template-columns: 4ch minmax(0, 1fr);
    padding: 0 18px;
  }
  .row.active { background: var(--cursor); }
  .ln { color: var(--muted); text-align: right; padding-right: 16px; user-select: none; }
  .src { white-space: pre; overflow-x: auto; }
  .comment { color: var(--comment); font-style: normal; }
  .keyword { color: var(--keyword); }
  .func { color: var(--func); }
  .string { color: var(--string); }
  .constant { color: var(--constant); }
  .identifier { color: var(--identifier); }
  .dir { color: var(--snacks-dir); }
  .panel {
    margin-top: 14px;
    border: 1px solid var(--overlay);
    background: var(--surface);
    padding: 14px 16px;
  }
  .panel-title { color: var(--foam); margin-bottom: 8px; font-weight: 700; }
  .kv { display: grid; grid-template-columns: 18ch minmax(0, 1fr); gap: 6px 14px; }
  .kv span:nth-child(odd) { color: var(--muted); }
  .kv span:nth-child(even) { color: var(--fg); overflow-wrap: anywhere; }
</style>
</head>
<body>
<main>
  <section class="editor" aria-label="Neovim rose-pine-moon preview">
    <div class="topbar">
      <strong>rose-pine moon</strong>
      <span class="meta">active colorscheme: rose-pine</span>
    </div>
    <div class="code" role="img" aria-label="Lua buffer rendered with colors collected from Neovim highlight groups">
      <div class="row"><span class="ln">1</span><span class="src"><span class="comment">-- Rose Pine Moon visual smoke sample</span></span></div>
      <div class="row"><span class="ln">2</span><span class="src"><span class="keyword">local</span> palette = <span class="func">require</span>(<span class="string">'rose-pine.palette'</span>)</span></div>
      <div class="row"><span class="ln">3</span><span class="src"></span></div>
      <div class="row active"><span class="ln">4</span><span class="src"><span class="keyword">local function</span> <span class="func">describe_theme</span>(name)</span></div>
      <div class="row"><span class="ln">5</span><span class="src">  <span class="keyword">if</span> name ~= <span class="string">'rose-pine'</span> <span class="keyword">then</span></span></div>
      <div class="row"><span class="ln">6</span><span class="src">    <span class="func">error</span>(<span class="string">'unexpected colorscheme'</span>)</span></div>
      <div class="row"><span class="ln">7</span><span class="src">  <span class="keyword">end</span></span></div>
      <div class="row"><span class="ln">8</span><span class="src">  <span class="keyword">return</span> { variant = <span class="string">'moon'</span>, subtle = palette.subtle }</span></div>
      <div class="row"><span class="ln">9</span><span class="src"><span class="keyword">end</span></span></div>
    </div>
    <div class="status">
      <span>SnacksPickerDir <span class="dir">~/github/kunchenguid/dotfiles/home/.config/nvim</span></span>
      <span>commit cf2a288696b0</span>
    </div>
  </section>
  <section class="panel" aria-label="Runtime verification facts">
    <div class="panel-title">Runtime facts from isolated Neovim</div>
    <div class="kv">
      <span>dark_variant</span><span>moon</span>
      <span>italic</span><span>false</span>
      <span>transparency</span><span>true</span>
      <span>SnacksPickerDir</span><span>#908caa</span>
      <span>palette.subtle</span><span>#908caa</span>
    </div>
  </section>
</main>
</body>
</html>
Evidence: Headless Neovim runtime verification
nvim_version: 0.12.0
uname_sysname: Darwin
uname_release: 25.5.0
colors_name: rose-pine
rose_pine_dark_variant: moon
rose_pine_styles_italic: false
rose_pine_styles_transparency: true
rose_pine_dim_inactive_windows: false
rose_pine_extend_background_behind_borders: false
lazy_plugin_present: true
lazy_plugin_name: rose-pine
lazy_plugin_lazy: false
lazy_plugin_priority: 1000
palette_subtle: #908caa
SnacksPickerDir_fg_hex: #908caa
rose_pine_installed_commit: cf2a288696b03d0934da713d66c6d71557b5c997
result: PASS
Evidence: lazy.nvim rose-pine restore excerpt
lockfile_entry:   "rose-pine": { "branch": "main", "commit": "cf2a288696b03d0934da713d66c6d71557b5c997" },
installed_head: cf2a288696b03d0934da713d66c6d71557b5c997
installed_commit: cf2a288 feat: respect transparency for `PmenuExtra` (#378)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • git diff --name-only 18489ad7c73d3cd0476e7495b80f05e794462856..4f004c381c40da023b53ba4b534b8eea550fe90d
  • sed -n '1,220p' home/.config/nvim/lua/plugins/colorscheme.lua
  • sed -n '1,80p' home/.config/nvim/lazy-lock.json
  • cp -R home/.config/nvim /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KX1HX74VMA9VG648P148FNYK/locked-run/xdg-config/nvim
  • env HOME=... XDG_CONFIG_HOME=... XDG_DATA_HOME=... XDG_STATE_HOME=... XDG_CACHE_HOME=... nvim --headless '+Lazy! restore' '+qa' > .../lazy-restore.log 2>&1
  • git -C .../locked-run/xdg-data/nvim/lazy/rose-pine rev-parse HEAD
  • env EVIDENCE_DIR=... HOME=... XDG_CONFIG_HOME=... XDG_DATA_HOME=... XDG_STATE_HOME=... XDG_CACHE_HOME=... nvim --headless '+luafile .../verify-rose-pine.lua'
  • env EVIDENCE_DIR=... HOME=... XDG_CONFIG_HOME=... XDG_DATA_HOME=... XDG_STATE_HOME=... XDG_CACHE_HOME=... nvim --headless '+luafile .../render-rose-pine-preview.lua'
  • CHROME_DEVTOOLS_AXI_SESSION=no-mistakes-rosepine chrome-devtools-axi open file:///var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KX1HX74VMA9VG648P148FNYK/rose-pine-moon-preview.html
  • CHROME_DEVTOOLS_AXI_SESSION=no-mistakes-rosepine chrome-devtools-axi screenshot /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KX1HX74VMA9VG648P148FNYK/rose-pine-moon-preview.png
  • Manual visual inspection of /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KX1HX74VMA9VG648P148FNYK/rose-pine-moon-preview.png
  • git status --short
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@github-actions github-actions Bot closed this Jul 8, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking an interest in these dotfiles.
This repo is public so you can read it, learn from it, and fork it freely, but it is Kun's personal setup and does not accept pull requests or feature requests.
If you want to adapt something, please fork the repo and make it yours.
If you found a bug, please open a bug report issue instead of sending a patch.
Pull requests are auto-closed here so the repo can stay personal and predictable.

@kunchenguid kunchenguid reopened this Jul 8, 2026
@kunchenguid
kunchenguid merged commit 20007ac into main Jul 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant