f-person/auto-dark-mode.nvim

github github
colorschemecolorscheme-switchers
stars 301
issues 7
subscribers 4
forks 23
CREATED

2022-02-08

UPDATED

2 months ago


auto-dark-mode.nvim

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

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 needs to be larger than whatever time your system takes to query dark mode. Otherwise you risk freezing neovim on shutdown. 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_value('background', 'dark', {})
        vim.cmd('colorscheme gruvbox')
    end,
    set_light_mode = function()
        vim.api.nvim_set_option_value('background', 'light', {})
        vim.cmd('colorscheme gruvbox')
    end,
})

Using lazy

return {
  "f-person/auto-dark-mode.nvim",
  opts = {
    update_interval = 1000,
    set_dark_mode = function()
      vim.api.nvim_set_option_value("background", "dark", {})
      vim.cmd("colorscheme gruvbox")
    end,
    set_light_mode = function()
      vim.api.nvim_set_option_value("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