{"id":13479648,"url":"https://github.com/vimpostor/vim-lumen","last_synced_at":"2025-04-06T07:11:01.237Z","repository":{"id":39740894,"uuid":"483248281","full_name":"vimpostor/vim-lumen","owner":"vimpostor","description":"Make vim follow your system-wide dark mode preference","archived":false,"fork":false,"pushed_at":"2025-03-06T17:30:50.000Z","size":131,"stargazers_count":105,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T06:08:20.524Z","etag":null,"topics":["colorscheme","dark-mode","neovim","neovim-plugin","nvim","vim","vim-plugin"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vimpostor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-19T13:01:27.000Z","updated_at":"2025-03-15T10:35:07.000Z","dependencies_parsed_at":"2023-10-15T20:10:03.034Z","dependency_job_id":"62959c2c-631c-4436-90e7-6be4bbb3ff1c","html_url":"https://github.com/vimpostor/vim-lumen","commit_stats":{"total_commits":83,"total_committers":4,"mean_commits":20.75,"dds":0.03614457831325302,"last_synced_commit":"ac13c32c3e309f6c6a84ff6cad8dbb135e75f0e4"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-lumen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-lumen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-lumen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimpostor%2Fvim-lumen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vimpostor","download_url":"https://codeload.github.com/vimpostor/vim-lumen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445669,"owners_count":20939958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["colorscheme","dark-mode","neovim","neovim-plugin","nvim","vim","vim-plugin"],"created_at":"2024-07-31T16:02:20.781Z","updated_at":"2025-04-06T07:11:01.192Z","avatar_url":"https://github.com/vimpostor.png","language":"Vim Script","readme":"# vim-lumen\n\nThis plugin enables vim to follow the global system-wide dark mode preference of your platform.\n\nhttps://user-images.githubusercontent.com/21310755/225781457-2a1e4f26-fbd5-4c08-a75e-2c2f931488b3.mp4\n\nSupported platforms are **Linux**, **MacOS** and **Windows**. All platform implementations are interrupt-based and do not use any resources in the background because they avoid polling and use the proper system APIs instead.\n\n# Installation\n\nWith `vim-plug` add the following line to your `.vimrc`:\n\n```vim\nPlug 'vimpostor/vim-lumen'\n```\n\nOnce a system dark mode preference change is detected, this plugin will set the `background` vim option accordingly, so make sure that your colorscheme supports reloading as described in `:h 'background'`.\n\n# Dependencies\n\n## Linux\n\nOn Linux it is required that you have `gdbus` installed together with **one** of the following options:\n\n- KDE Plasma 5.24 (or later) or\n- Gnome 42 (or later) or\n- [darkman](https://gitlab.com/WhyNotHugo/darkman) (Recommended for tiling WMs) or\n- [color-scheme-simulator](https://gitlab.gnome.org/exalm/color-scheme-simulator)\n\nMake sure that the `xdg-desktop-portal` is running.\n\n## MacOS\n\nIt is required that Swift is available on your system. Swift is shipped with Xcode for example.\n\n## Windows\n\nAt least Windows 10 1903 is required. No further installed components are needed.\nThis also works inside WSL2.\n\n# FAQ\n\n## Is this plugin still needed with latest Vim?\n\nWith Neovim [implementing support](https://github.com/neovim/neovim/pull/31350) for [DEC mode 2031](https://contour-terminal.org/vt-extensions/color-palette-update-notifications/) this plugin has become obsolete.\nYou can now use the native support for theme changes by reacting to `autocmd OptionSet background`, as long as the entire chain of your terminal emulator, terminal multiplexer and your version of vim support it.\n\n## How can I add custom callbacks?\n\nYou can use the `LumenLight` and `LumenDark` `User` autocommands:\n```vim\nau User LumenLight echom 'Entered light mode'\nau User LumenDark echom 'Entered dark mode'\n```\n\nNote that for the common usecase of switching the colorscheme, there are the `g:lumen_light_colorscheme` and `g:lumen_dark_colorscheme` variables.\n\n## What are some good light colorschemes?\n\nThere are not many colorschemes that work well both in light and dark mode.\nHere are some example colorschemes that I can personally recommend:\n\n- [everforest](https://github.com/sainnhe/everforest)\n- [papercolor](https://github.com/NLKNguyen/papercolor-theme)\n- [prism](https://github.com/vimpostor/vim-prism)\n- `retrobox` from the [default Vim colorschemes](https://github.com/vim/colorschemes)\n\n## Why not use the new SIGWINCH autocmd in neovim?\n\nNeovim recently merged [support for SIGWINCH autocmds](https://github.com/neovim/neovim/pull/18029). It is possible to hack together dark mode support by abusing the `SIGWINCH` autocmd, but this has quite a few disadvantages:\n\n- You require a terminal that sends `SIGWINCH` when the system-wide dark mode preference changes. At the moment, pretty much no terminal supports this besides `iTerm`\n- The `SIGWINCH` event is fired regularly for other events. For example while resizing the window, `SIGWINCH` can be emitted many times per second, which causes performance issues due to checking the system dark mode preference multiple times per second\n- `SIGWINCH` is not really intended for this usecase at all. You are abusing a signal that is originally only meant to be fired when the terminal size changes\n- There is only `SIGWINCH` support in `neovim`, whereas this plugin also supports regular vim\n","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimpostor%2Fvim-lumen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvimpostor%2Fvim-lumen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimpostor%2Fvim-lumen/lists"}