neovim theme using RWTH colors

It turns out I need a hobby, so I thought that official RWTH colors would work quite nicely for a minimalist(-ish) theme for Neovim, similar to a stellar Koda.nvim.

The whole theme is written in Lua; have a look at the screenshots below! Light extras and lualine-nvim theme are on the way.

Syntax — Dark
Syntax — Dark
Syntax — Light
Syntax — Light
mini-start — Dark
mini-start — Dark
mini-start — Light
mini-start — Light
mini-files — Dark
mini-files — Dark
mini-files — Light
mini-files — Light
telescope — Dark
telescope — Dark
telescope — Light
telescope — Light
Active Pmenu — Dark
Active Pmenu — Dark
Active Pmenu — Light
Active Pmenu — Light

Installation

Using vim.pack:

  vim.pack.add({ src =  "https://github.com/mryodo/rwth.nvim" })
  require("rwth").setup({
    transparent = false,
    minipickstyle = true,
    minifilesstyle = true,
  })
  vim.cmd("colorscheme rwth-dark")

Bug fix: if you encounter not loaded artifacts in Pmenu and statusline, add

later(function()
  vim.cmd("colorscheme rwth-dark")
end)

to reload the colorscheme again.

Features

The theme based its architecture entirely on the incredible koda.nvim. Please support @oskarnurm ! rwth.nvim was built for personal use on top on the MiniMax config. Please support @echasnowski !

  • light (rwth-light) and dark (rwth-dark) colorschemes based on the RWTH colors;
  • plugin support inherited from koda.nvim;
  • additional highlights for bento.nvim;
  • additional styling for mini.nvim
    • centered mini.pick with contrasting background;
    • mini.files at the bottom with contrasting background;
  • additional styling for telescope.nvim.


I am also using a keymap for light/dark switch:

  vim.keymap.set(
    'n',
    '\\b',
    function()
      if vim.o.background == "light" then
        vim.o.background = "dark"
        vim.cmd.colorscheme("rwth-dark")
        vim.cmd("RWTHFetch")
        vim.cmd("set guicursor=n-v-c:block-Cursor/lCursor,i-ci-ve:ver25-Cursor/lCursor,r-cr:hor20,o:hor50")
      else
        vim.o.background = "light"
        vim.cmd.colorscheme("rwth-light")
        vim.cmd("RWTHFetch")
        vim.cmd("set guicursor=n-v-c:block-Cursor/lCursor,i-ci-ve:ver25-Cursor/lCursor,r-cr:hor20,o:hor50")
      end
    end,
    { desc = "new Toggle 'background'" }
  )

Known artifacts

  • preview for mini.pick uses contrasting background and destroys the text. should be changed in accordance with telescope
  • literally everything is horrible, please push problems!

Extras

Extra color configs for Ghostty, Lazygit, and Kitty can be found in extras. To use them, refer to their respective documentation.