auto-dark-mode.nvim
auto-dark-mode.nvim copied to clipboard
A Neovim plugin for macOS, Linux & Windows that automatically changes the editor appearance based on system settings.
auto-dark-mode.nvim
A Neovim plugin for macOS, Linux, and Windows that automatically changes the editor appearance based on system settings.
Linux demo
Windows demo
Installation
Using vim-plug
Plug 'f-person/auto-dark-mode.nvim'
Requirements
- macOS, a Linux environment that implements
org.freedesktop.appearance.color-scheme, Windows 10+ or WSL - Neovim
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('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
- @nekowinston for implementing Linux support and other contributions! <3
- @adityamwagh for implementing Windows support
Support
If you enjoy the plugin and want to support what I do