## Features
- Light and unobtrusive
- No Python/Node providers (or CoC) required
- Cross-platform support: macOS, nixOS, Linux
Windows, WSL
- Startup time is fast(er than other Rich Presence plugins, by
[kind of a lot](https://github.com/jiriks74/presence.nvim/wiki/Plugin-Comparisons))
- Written in Lua and [highly configurable](#configuration) in Lua
(but also configurable in VimL if you want)
- Manages Rich Presence across multiple Neovim instances in various environments
(tmux panes/windows, ssh sessions, terminal tabs/windows, etc.)
- Now with Flatpak support!
## Installation
> [!Note]
>
> Requires [Neovim 0.5](https://github.com/neovim/neovim/releases/tag/v0.5.0)
> or higher
Use your favorite plugin manager
- [vim-plug](https://github.com/junegunn/vim-plug): `Plug 'jiriks74/presence.nvim'`
- [packer.nvim](https://github.com/wbthomason/packer.nvim): `use 'jiriks74/presence.nvim'`
- [lazy.nvim](https://github.com/folke/lazy.nvim):
```lua
{
"jiriks74/presence.nvim",
event = "UIEnter",
},
```
Rich Presence should work automatically after installation
> [!Important]
>
> If you're using WSL1 there's additional setup needed.
> WSL2 **is not supported** but ***may*** work.
> [**See Wiki**](https://github.com/jiriks74/presence.nvim/wiki/Rich-Presence-in-WSL))
## Configuration
Configuration is not necesary unless you want to override the default config.
If you want to change the default config here are your options in Lua and VimL:
### Lua
Require the plugin and call `setup` with a config table with one or more of the
following keys:
```lua
-- The setup config table shows all available config options with their default values:
require("presence").setup({
-- General options
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
main_image = "neovim", -- Main image display (either "neovim" or "file")
client_id = "1172122807501594644", -- Use your own Discord application client id (not recommended)
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`)
enable_line_number = false, -- Displays the current line number instead of the current project
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "