/auto-dark-mode.nvim

A Neovim plugin for macOS, Linux & Windows that automatically changes the editor appearance based on system settings.

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

auto-dark-mode.nvim

A Neovim plugin for macOS, Linux, and Windows that automatically changes the editor appearance based on system settings.

macOS demo
Linux demo
Linux demo
Windows demo
Windows demo

Installation

Using vim-plug

Plug 'f-person/auto-dark-mode.nvim'

Requirements

Configuration

You need to call setup for initialization. setup accepts a table with options – set_dark_mode function, set_light_mode function, and update_interval integer.

set_dark_mode is called when the system appearance changes to dark mode, and set_light_mode is called when it changes to light mode. By default, they just change the background option, but you can do whatever you like.

update_interval is how frequently the system appearance is checked. The value is stored in milliseconds. Defaults to 3000.

local auto_dark_mode = require('auto-dark-mode')

auto_dark_mode.setup({
	update_interval = 1000,
	set_dark_mode = function()
		vim.api.nvim_set_option('background', 'dark')
		vim.cmd('colorscheme gruvbox')
	end,
	set_light_mode = function()
		vim.api.nvim_set_option('background', 'light')
		vim.cmd('colorscheme gruvbox')
	end,
})

Using lazy

return {
  "f-person/auto-dark-mode.nvim",
  config = {
    update_interval = 1000,
    set_dark_mode = function()
      vim.api.nvim_set_option("background", "dark")
      vim.cmd("colorscheme gruvbox")
    end,
    set_light_mode = function()
      vim.api.nvim_set_option("background", "light")
      vim.cmd("colorscheme gruvbox")
    end,
  },
}

Disable

You can disable auto-dark-mode.nvim at runtime via lua require('auto-dark-mode').disable().

Thanks To

Support

If you enjoy the plugin and want to support what I do

Buy Me A Coffee